From 308588bbc65cafdb9470de7b37dec370ca674a45 Mon Sep 17 00:00:00 2001 From: Mahmoud Date: Fri, 17 Nov 2023 12:53:59 +0200 Subject: [PATCH] add auh to tx-creation --- package-lock.json | 90 ++++++++------------ package.json | 2 +- src/app/hooks/useStxTransactionRequest.ts | 10 ++- src/app/screens/transactionRequest/index.tsx | 5 +- 4 files changed, 46 insertions(+), 61 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2b6c93ca4..de9518ba1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "@ledgerhq/hw-transport-webusb": "^6.27.13", "@phosphor-icons/react": "^2.0.10", "@react-spring/web": "^9.6.1", - "@secretkeylabs/xverse-core": "2.3.2-1de4d4c", + "@secretkeylabs/xverse-core": "2.3.2-af6b0b6", "@stacks/connect": "7.4.1", "@stacks/stacks-blockchain-api-types": "6.1.1", "@stacks/transactions": "6.9.0", @@ -3132,7 +3132,7 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@noble/curves/node_modules/@noble/hashes": { + "node_modules/@noble/hashes": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", @@ -3143,17 +3143,6 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@noble/hashes": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz", - "integrity": "sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA==", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/@noble/secp256k1": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", @@ -3423,9 +3412,9 @@ } }, "node_modules/@secretkeylabs/xverse-core": { - "version": "2.3.2-1de4d4c", - "resolved": "https://npm.pkg.github.com/download/@secretkeylabs/xverse-core/2.3.2-1de4d4c/cfd820f0c8afc323afa131fbb27489e8d5411cbc", - "integrity": "sha512-xfRzEKJbNNY4Bt+cZntQdbWqarRTxEXTUq4y7Rh9uobS0ddj5nn+JWhCNJkpFHwrqZWbSLxNsN/GjDh/30wcEg==", + "version": "2.3.2-af6b0b6", + "resolved": "https://npm.pkg.github.com/download/@secretkeylabs/xverse-core/2.3.2-af6b0b6/f5d5b3da93de8d7317ad7c599bafb692c1889077", + "integrity": "sha512-lvLlakjI49HoO2+ECCYPqCCm2OP92tpa4tLzcylfCbyXLX3zU7M/LZTazpiVIDRqscRxRU9n3OMc52VIScii6A==", "license": "ISC", "dependencies": { "@bitcoinerlab/secp256k1": "^1.0.2", @@ -3465,6 +3454,11 @@ "react": ">18.0.0" } }, + "node_modules/@secretkeylabs/xverse-core/node_modules/@types/node": { + "version": "11.11.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz", + "integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==" + }, "node_modules/@secretkeylabs/xverse-core/node_modules/axios": { "version": "0.27.2", "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", @@ -3485,11 +3479,6 @@ "randombytes": "^2.0.1" } }, - "node_modules/@secretkeylabs/xverse-core/node_modules/bip39/node_modules/@types/node": { - "version": "11.11.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz", - "integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==" - }, "node_modules/@sinonjs/commons": { "version": "1.8.6", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", @@ -4509,9 +4498,9 @@ } }, "node_modules/@types/sha.js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/sha.js/-/sha.js-2.4.1.tgz", - "integrity": "sha512-QHWKOJ4dkWB0OCfCoOFUZkhvpqUllcPs2WIhYFk7ugAprv3ts0z4nSuHtc0jlWBYLdPwfNRpVpv9pIpFSbYBYQ==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/sha.js/-/sha.js-2.4.4.tgz", + "integrity": "sha512-Qukd+D6S2Hm0wLVt2Vh+/eWBIoUt+wF8jWjBsG4F8EFQRwKtYvtXCPcNl2OEUQ1R+eTr3xuSaBYUyM3WD1x/Qw==", "dependencies": { "@types/node": "*" } @@ -6106,13 +6095,13 @@ } }, "node_modules/bitcoinjs-lib": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-6.1.3.tgz", - "integrity": "sha512-TYXs/Qf+GNk2nnsB9HrXWqzFuEgCg0Gx+v3UW3B8VuceFHXVvhT+7hRnTSvwkX0i8rz2rtujeU6gFaDcFqYFDw==", + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-6.1.5.tgz", + "integrity": "sha512-yuf6xs9QX/E8LWE2aMJPNd0IxGofwfuVOiYdNUESkc+2bHHVKjhJd8qewqapeoolh9fihzHGoDCB5Vkr57RZCQ==", "dependencies": { "@noble/hashes": "^1.2.0", "bech32": "^2.0.0", - "bip174": "^2.1.0", + "bip174": "^2.1.1", "bs58check": "^3.0.1", "typeforce": "^1.11.3", "varuint-bitcoin": "^1.1.2" @@ -20605,19 +20594,12 @@ "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", "requires": { "@noble/hashes": "1.3.2" - }, - "dependencies": { - "@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==" - } } }, "@noble/hashes": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz", - "integrity": "sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA==" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==" }, "@noble/secp256k1": { "version": "1.7.1", @@ -20781,9 +20763,9 @@ } }, "@secretkeylabs/xverse-core": { - "version": "2.3.2-1de4d4c", - "resolved": "https://npm.pkg.github.com/download/@secretkeylabs/xverse-core/2.3.2-1de4d4c/cfd820f0c8afc323afa131fbb27489e8d5411cbc", - "integrity": "sha512-xfRzEKJbNNY4Bt+cZntQdbWqarRTxEXTUq4y7Rh9uobS0ddj5nn+JWhCNJkpFHwrqZWbSLxNsN/GjDh/30wcEg==", + "version": "2.3.2-af6b0b6", + "resolved": "https://npm.pkg.github.com/download/@secretkeylabs/xverse-core/2.3.2-af6b0b6/f5d5b3da93de8d7317ad7c599bafb692c1889077", + "integrity": "sha512-lvLlakjI49HoO2+ECCYPqCCm2OP92tpa4tLzcylfCbyXLX3zU7M/LZTazpiVIDRqscRxRU9n3OMc52VIScii6A==", "requires": { "@bitcoinerlab/secp256k1": "^1.0.2", "@noble/secp256k1": "^1.7.1", @@ -20818,6 +20800,11 @@ "varuint-bitcoin": "^1.1.2" }, "dependencies": { + "@types/node": { + "version": "11.11.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz", + "integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==" + }, "axios": { "version": "0.27.2", "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", @@ -20836,13 +20823,6 @@ "create-hash": "^1.1.0", "pbkdf2": "^3.0.9", "randombytes": "^2.0.1" - }, - "dependencies": { - "@types/node": { - "version": "11.11.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz", - "integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==" - } } } } @@ -21713,9 +21693,9 @@ } }, "@types/sha.js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/sha.js/-/sha.js-2.4.1.tgz", - "integrity": "sha512-QHWKOJ4dkWB0OCfCoOFUZkhvpqUllcPs2WIhYFk7ugAprv3ts0z4nSuHtc0jlWBYLdPwfNRpVpv9pIpFSbYBYQ==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/sha.js/-/sha.js-2.4.4.tgz", + "integrity": "sha512-Qukd+D6S2Hm0wLVt2Vh+/eWBIoUt+wF8jWjBsG4F8EFQRwKtYvtXCPcNl2OEUQ1R+eTr3xuSaBYUyM3WD1x/Qw==", "requires": { "@types/node": "*" } @@ -22940,13 +22920,13 @@ } }, "bitcoinjs-lib": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-6.1.3.tgz", - "integrity": "sha512-TYXs/Qf+GNk2nnsB9HrXWqzFuEgCg0Gx+v3UW3B8VuceFHXVvhT+7hRnTSvwkX0i8rz2rtujeU6gFaDcFqYFDw==", + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-6.1.5.tgz", + "integrity": "sha512-yuf6xs9QX/E8LWE2aMJPNd0IxGofwfuVOiYdNUESkc+2bHHVKjhJd8qewqapeoolh9fihzHGoDCB5Vkr57RZCQ==", "requires": { "@noble/hashes": "^1.2.0", "bech32": "^2.0.0", - "bip174": "^2.1.0", + "bip174": "^2.1.1", "bs58check": "^3.0.1", "typeforce": "^1.11.3", "varuint-bitcoin": "^1.1.2" diff --git a/package.json b/package.json index 45ab3bf9f..acd101857 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "@ledgerhq/hw-transport-webusb": "^6.27.13", "@phosphor-icons/react": "^2.0.10", "@react-spring/web": "^9.6.1", - "@secretkeylabs/xverse-core": "2.3.2-1de4d4c", + "@secretkeylabs/xverse-core": "2.3.2-af6b0b6", "@stacks/connect": "7.4.1", "@stacks/stacks-blockchain-api-types": "6.1.1", "@stacks/transactions": "6.9.0", diff --git a/src/app/hooks/useStxTransactionRequest.ts b/src/app/hooks/useStxTransactionRequest.ts index d2e64ab3a..3597af09c 100644 --- a/src/app/hooks/useStxTransactionRequest.ts +++ b/src/app/hooks/useStxTransactionRequest.ts @@ -1,4 +1,4 @@ -import { txPayloadToRequest } from '@secretkeylabs/xverse-core/connect'; +import { txPayloadToRequest } from '@secretkeylabs/xverse-core'; import { deserializeTransaction } from '@stacks/transactions'; import { decodeToken } from 'jsontokens'; import { useLocation } from 'react-router-dom'; @@ -9,11 +9,12 @@ const useStxTransactionRequest = () => { const requestToken = params.get('request') ?? ''; const request = decodeToken(requestToken) as any; const tabId = params.get('tabId') ?? '0'; + const stacksTransaction = request.payload.txHex + ? deserializeTransaction(request.payload.txHex!) + : undefined; const getPayload = () => { - const isSignHex = Boolean(request.payload.txHex); - if (isSignHex) { - const stacksTransaction = deserializeTransaction(request.payload.txHex!); + if (stacksTransaction) { const txPayload = txPayloadToRequest( stacksTransaction, request.payload.stxAddress, @@ -31,6 +32,7 @@ const useStxTransactionRequest = () => { return { payload: txPayload, + stacksTransaction, tabId, requestToken, }; diff --git a/src/app/screens/transactionRequest/index.tsx b/src/app/screens/transactionRequest/index.tsx index 6eb1b3bf3..412bd0e4e 100644 --- a/src/app/screens/transactionRequest/index.tsx +++ b/src/app/screens/transactionRequest/index.tsx @@ -33,7 +33,7 @@ const LoaderContainer = styled.div((props) => ({ function TransactionRequest() { const { stxAddress, network, stxPublicKey, feeMultipliers, accountsList, selectedAccount } = useWalletSelector(); - const { payload, tabId, requestToken } = useStxTransactionRequest(); + const { payload, tabId, requestToken, stacksTransaction } = useStxTransactionRequest(); const navigate = useNavigate(); const selectedNetwork = useNetworkSelector(); const { switchAccount } = useWalletReducer(); @@ -55,6 +55,7 @@ function TransactionRequest() { feeMultipliers!, selectedNetwork, stxPendingTxData, + stacksTransaction?.auth, ); setUnsignedTx(unsignedSendStxTx); navigate('/confirm-stx-tx', { @@ -78,6 +79,7 @@ function TransactionRequest() { stxAddress, selectedNetwork, stxPublicKey, + stacksTransaction?.auth, ); setUnsignedTx(unSignedContractCall); setCoinsMetaData(coinMeta); @@ -109,6 +111,7 @@ function TransactionRequest() { stxPublicKey, feeMultipliers!, stxAddress, + stacksTransaction?.auth, ); setUnsignedTx(response.contractDeployTx); setCodeBody(response.codeBody);