From 13712b486580f8f500c0868d2eda00b6266cb1f1 Mon Sep 17 00:00:00 2001 From: Tim Man Date: Mon, 11 Dec 2023 12:43:35 +0800 Subject: [PATCH 1/4] fix: allow 404s when checking psbt utxos for ordinals --- src/app/hooks/useDetectOrdinalInSignPsbt.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/app/hooks/useDetectOrdinalInSignPsbt.ts b/src/app/hooks/useDetectOrdinalInSignPsbt.ts index f4d177820..66c56a16e 100644 --- a/src/app/hooks/useDetectOrdinalInSignPsbt.ts +++ b/src/app/hooks/useDetectOrdinalInSignPsbt.ts @@ -4,6 +4,7 @@ import { mapRareSatsAPIResponseToBundle, ParsedPSBT, } from '@secretkeylabs/xverse-core'; +import { isAxiosError } from 'axios'; import useWalletSelector from './useWalletSelector'; export type InputsBundle = (Pick & { @@ -21,10 +22,21 @@ const useDetectOrdinalInSignPsbt = () => { if (parsedPsbt) { const inputsRequest = parsedPsbt.inputs.map((input) => - getUtxoOrdinalBundle(network.type, input.txid, input.index), + getUtxoOrdinalBundle(network.type, input.txid, input.index).catch((e) => { + // we don't reject on 404s because if the UTXO is not found, + // it is likely this is a UTXO from an unpublished txn. + // this is required for gamma.io purchase flow + if (!isAxiosError(e) || e.response?.status !== 404) { + // rethrow error if response was not 404 + throw e; + } + }), ); const inputsResponse = await Promise.all(inputsRequest); inputsResponse.forEach((inputResponse, index) => { + if (!inputResponse) { + return; + } const bundle = mapRareSatsAPIResponseToBundle(inputResponse); if ( bundle.inscriptions.length > 0 || From 8338ee2ffd66b1e5542981daac8879e4c1346626 Mon Sep 17 00:00:00 2001 From: Tim Man Date: Mon, 11 Dec 2023 22:09:51 +0800 Subject: [PATCH 2/4] refactor: move detect ordinal if found logic to core --- src/app/hooks/useDetectOrdinalInSignPsbt.ts | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/src/app/hooks/useDetectOrdinalInSignPsbt.ts b/src/app/hooks/useDetectOrdinalInSignPsbt.ts index 66c56a16e..d4b552e69 100644 --- a/src/app/hooks/useDetectOrdinalInSignPsbt.ts +++ b/src/app/hooks/useDetectOrdinalInSignPsbt.ts @@ -1,10 +1,9 @@ import { Bundle, - getUtxoOrdinalBundle, + getUtxoOrdinalBundleIfFound, mapRareSatsAPIResponseToBundle, ParsedPSBT, } from '@secretkeylabs/xverse-core'; -import { isAxiosError } from 'axios'; import useWalletSelector from './useWalletSelector'; export type InputsBundle = (Pick & { @@ -22,15 +21,7 @@ const useDetectOrdinalInSignPsbt = () => { if (parsedPsbt) { const inputsRequest = parsedPsbt.inputs.map((input) => - getUtxoOrdinalBundle(network.type, input.txid, input.index).catch((e) => { - // we don't reject on 404s because if the UTXO is not found, - // it is likely this is a UTXO from an unpublished txn. - // this is required for gamma.io purchase flow - if (!isAxiosError(e) || e.response?.status !== 404) { - // rethrow error if response was not 404 - throw e; - } - }), + getUtxoOrdinalBundleIfFound(network.type, input.txid, input.index), ); const inputsResponse = await Promise.all(inputsRequest); inputsResponse.forEach((inputResponse, index) => { From e8cbfbdff1b60bd5491c234b3dacbccc2ba6df08 Mon Sep 17 00:00:00 2001 From: Tim Man Date: Mon, 11 Dec 2023 22:13:50 +0800 Subject: [PATCH 3/4] chore: use beta core version --- package-lock.json | 39 ++++++++++++--------------------------- package.json | 2 +- 2 files changed, 13 insertions(+), 28 deletions(-) diff --git a/package-lock.json b/package-lock.json index e25d47363..404a61769 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": "5.2.0", + "@secretkeylabs/xverse-core": "5.2.0-1489894", "@stacks/connect": "^6.10.2", "@stacks/encryption": "4.3.5", "@stacks/stacks-blockchain-api-types": "6.1.1", @@ -1727,9 +1727,9 @@ } }, "node_modules/@secretkeylabs/xverse-core": { - "version": "5.2.0", - "resolved": "https://npm.pkg.github.com/download/@secretkeylabs/xverse-core/5.2.0/f4d46eacac2b7be0b6fb70ce5184d1c10ed7bfa6", - "integrity": "sha512-DhDrTAFYPHf22ThYn+z9DIlxXN6M7jH5JEbAi5I58xE62RsEOcpxfRHDhfNzcNAyWKJEXzChkbOp7OpFHLIF1w==", + "version": "5.2.0-1489894", + "resolved": "https://npm.pkg.github.com/download/@secretkeylabs/xverse-core/5.2.0-1489894/ec450fefb437094b01a9cfc94fbbaa6bbbb4ae66", + "integrity": "sha512-0DBAC+ShYdQr/pLV2aUUsUHor3XHkxZ2lspFOwaHW0ALU4sdkgjO9nSixbVLankKayO+/yRUruT0j3fNipnDVQ==", "license": "ISC", "dependencies": { "@bitcoinerlab/secp256k1": "^1.0.2", @@ -1743,7 +1743,7 @@ "@stacks/transactions": "4.3.5", "@stacks/wallet-sdk": "^5.0.2", "@zondax/ledger-stacks": "^1.0.4", - "axios": "0.27.2", + "axios": "1.4.0", "base64url": "^3.0.1", "bip32": "^4.0.0", "bip39": "3.0.3", @@ -1763,6 +1763,9 @@ "uuidv4": "^6.2.13", "varuint-bitcoin": "^1.1.2" }, + "engines": { + "node": "^18.18.2" + }, "peerDependencies": { "bignumber.js": "^9.0.0", "react": ">18.0.0" @@ -1893,15 +1896,6 @@ "ieee754": "^1.1.13" } }, - "node_modules/@secretkeylabs/xverse-core/node_modules/axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - }, "node_modules/@secretkeylabs/xverse-core/node_modules/base-x": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", @@ -16046,9 +16040,9 @@ } }, "@secretkeylabs/xverse-core": { - "version": "5.2.0", - "resolved": "https://npm.pkg.github.com/download/@secretkeylabs/xverse-core/5.2.0/f4d46eacac2b7be0b6fb70ce5184d1c10ed7bfa6", - "integrity": "sha512-DhDrTAFYPHf22ThYn+z9DIlxXN6M7jH5JEbAi5I58xE62RsEOcpxfRHDhfNzcNAyWKJEXzChkbOp7OpFHLIF1w==", + "version": "5.2.0-1489894", + "resolved": "https://npm.pkg.github.com/download/@secretkeylabs/xverse-core/5.2.0-1489894/ec450fefb437094b01a9cfc94fbbaa6bbbb4ae66", + "integrity": "sha512-0DBAC+ShYdQr/pLV2aUUsUHor3XHkxZ2lspFOwaHW0ALU4sdkgjO9nSixbVLankKayO+/yRUruT0j3fNipnDVQ==", "requires": { "@bitcoinerlab/secp256k1": "^1.0.2", "@noble/secp256k1": "^1.7.1", @@ -16061,7 +16055,7 @@ "@stacks/transactions": "4.3.5", "@stacks/wallet-sdk": "^5.0.2", "@zondax/ledger-stacks": "^1.0.4", - "axios": "0.27.2", + "axios": "1.4.0", "base64url": "^3.0.1", "bip32": "^4.0.0", "bip39": "3.0.3", @@ -16184,15 +16178,6 @@ } } }, - "axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "requires": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - }, "base-x": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", diff --git a/package.json b/package.json index fea7cb2bf..1e8db2ab0 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": "5.2.0", + "@secretkeylabs/xverse-core": "5.2.0-1489894", "@stacks/connect": "^6.10.2", "@stacks/encryption": "4.3.5", "@stacks/stacks-blockchain-api-types": "6.1.1", From 01066690d695e66eb85202c86925b6f637f65af6 Mon Sep 17 00:00:00 2001 From: Tim Man Date: Tue, 12 Dec 2023 15:38:03 +0800 Subject: [PATCH 4/4] chore: bump core version to v5.3.0 --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index aea0f1fca..a23843935 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": "5.2.0-1489894", + "@secretkeylabs/xverse-core": "5.3.0", "@stacks/connect": "^6.10.2", "@stacks/encryption": "4.3.5", "@stacks/stacks-blockchain-api-types": "6.1.1", @@ -1727,9 +1727,9 @@ } }, "node_modules/@secretkeylabs/xverse-core": { - "version": "5.2.0-1489894", - "resolved": "https://npm.pkg.github.com/download/@secretkeylabs/xverse-core/5.2.0-1489894/ec450fefb437094b01a9cfc94fbbaa6bbbb4ae66", - "integrity": "sha512-0DBAC+ShYdQr/pLV2aUUsUHor3XHkxZ2lspFOwaHW0ALU4sdkgjO9nSixbVLankKayO+/yRUruT0j3fNipnDVQ==", + "version": "5.3.0", + "resolved": "https://npm.pkg.github.com/download/@secretkeylabs/xverse-core/5.3.0/368b6b101c6dd5d67497dc047a6305afe3812af3", + "integrity": "sha512-cVJJmDgT6d1urtYFugfo7MAHPLmqyk8kO2s81x/KFQhgU6kqhhfu2Oeu71lAAxRc71jvzCYtxF20zj+P6bqEgw==", "license": "ISC", "dependencies": { "@bitcoinerlab/secp256k1": "^1.0.2", @@ -16040,9 +16040,9 @@ } }, "@secretkeylabs/xverse-core": { - "version": "5.2.0-1489894", - "resolved": "https://npm.pkg.github.com/download/@secretkeylabs/xverse-core/5.2.0-1489894/ec450fefb437094b01a9cfc94fbbaa6bbbb4ae66", - "integrity": "sha512-0DBAC+ShYdQr/pLV2aUUsUHor3XHkxZ2lspFOwaHW0ALU4sdkgjO9nSixbVLankKayO+/yRUruT0j3fNipnDVQ==", + "version": "5.3.0", + "resolved": "https://npm.pkg.github.com/download/@secretkeylabs/xverse-core/5.3.0/368b6b101c6dd5d67497dc047a6305afe3812af3", + "integrity": "sha512-cVJJmDgT6d1urtYFugfo7MAHPLmqyk8kO2s81x/KFQhgU6kqhhfu2Oeu71lAAxRc71jvzCYtxF20zj+P6bqEgw==", "requires": { "@bitcoinerlab/secp256k1": "^1.0.2", "@noble/secp256k1": "^1.7.1", diff --git a/package.json b/package.json index 2d8ec4050..8ecb9e6ec 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": "5.2.0-1489894", + "@secretkeylabs/xverse-core": "5.3.0", "@stacks/connect": "^6.10.2", "@stacks/encryption": "4.3.5", "@stacks/stacks-blockchain-api-types": "6.1.1",