diff --git a/package-lock.json b/package-lock.json
index 5ffef2dde..9e1c039f2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,7 +9,7 @@
"version": "0.12.3",
"dependencies": {
"@react-spring/web": "^9.6.1",
- "@secretkeylabs/xverse-core": "1.1.2",
+ "@secretkeylabs/xverse-core": "1.4.0-1004b69",
"@stacks/connect": "^6.10.2",
"@stacks/encryption": "4.3.5",
"@stacks/stacks-blockchain-api-types": "^6.1.1",
@@ -712,6 +712,15 @@
"integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
"dev": true
},
+ "node_modules/@bitcoinerlab/secp256k1": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@bitcoinerlab/secp256k1/-/secp256k1-1.0.5.tgz",
+ "integrity": "sha512-8gT+ukTCFN2rTxn4hD9Jq3k+UJwcprgYjfK/SQUSLgznXoIgsBnlPuARMkyyuEjycQK9VvnPiejKdszVTflh+w==",
+ "dependencies": {
+ "@noble/hashes": "^1.1.5",
+ "@noble/secp256k1": "^1.7.1"
+ }
+ },
"node_modules/@discoveryjs/json-ext": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz",
@@ -1792,6 +1801,67 @@
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
},
+ "node_modules/@ledgerhq/devices": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-8.0.4.tgz",
+ "integrity": "sha512-dxOiWZmtEv1tgw70+rW8gviCRZUeGDUnxY6HUPiRqTAc0Ts2AXxiJChgAsPvIywWTGW+S67Nxq1oTZdpRbdt+A==",
+ "dependencies": {
+ "@ledgerhq/errors": "^6.12.7",
+ "@ledgerhq/logs": "^6.10.1",
+ "rxjs": "6",
+ "semver": "^7.3.5"
+ }
+ },
+ "node_modules/@ledgerhq/devices/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@ledgerhq/devices/node_modules/semver": {
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@ledgerhq/devices/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
+ "node_modules/@ledgerhq/errors": {
+ "version": "6.12.7",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-6.12.7.tgz",
+ "integrity": "sha512-1BpjzFErPK7qPFx0oItcX0mNLJMplVAm2Dpl5urZlubewnTyyw5sahIBjU+8LLCWJ2eGEh/0wyvh0jMtR0n2Mg=="
+ },
+ "node_modules/@ledgerhq/hw-transport": {
+ "version": "6.28.5",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-6.28.5.tgz",
+ "integrity": "sha512-xmw5RhYbqExBBqTvOnOjN/RYNIGMBxFJ+zcYNfkfw/E+uEY3L7xq8Z7sC/n7URTT6xtEctElqduBJnBQE4OQtw==",
+ "dependencies": {
+ "@ledgerhq/devices": "^8.0.4",
+ "@ledgerhq/errors": "^6.12.7",
+ "events": "^3.3.0"
+ }
+ },
+ "node_modules/@ledgerhq/logs": {
+ "version": "6.10.1",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-6.10.1.tgz",
+ "integrity": "sha512-z+ILK8Q3y+nfUl43ctCPuR4Y2bIxk/ooCQFwZxhtci1EhAtMDzMAx2W25qx8G1PPL9UUOdnUax19+F0OjXoj4w=="
+ },
"node_modules/@leichtgewicht/ip-codec": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz",
@@ -2085,33 +2155,47 @@
}
},
"node_modules/@secretkeylabs/xverse-core": {
+<<<<<<< HEAD
"version": "1.1.2",
"resolved": "https://npm.pkg.github.com/download/@secretkeylabs/xverse-core/1.1.2/d46450c9efbda848963099bc366d873b516d2ab2",
"integrity": "sha512-RI/riO+tH/Nd67XHSLNfO5ru0+1zLFkjc+Aw2mt8XivDOwz5t+8456soaQrSS1b5ZsJ6OrvBYEpnYsGuxD5YyA==",
+=======
+ "version": "1.4.0-1004b69",
+ "resolved": "https://npm.pkg.github.com/download/@secretkeylabs/xverse-core/1.4.0-1004b69/99b3ffc3a8e5106caf6aeaa56d0bc340afc3b267",
+ "integrity": "sha512-OtZL9c4wfCXmEgcj47YWOKG4uxiU1xaAWySrkkxZ4NwV7zF809VXEqeVyPy1MReVUixwi4Sgc3mVCT317wl0Cw==",
+>>>>>>> 8482196 (fix: bump xverse-core version and handle sponsor transaction error)
"license": "ISC",
"dependencies": {
+ "@bitcoinerlab/secp256k1": "^1.0.2",
"@noble/secp256k1": "^1.7.1",
"@scure/base": "^1.1.1",
"@scure/btc-signer": "^1.0.0",
+ "@stacks/auth": "^6.5.1",
"@stacks/encryption": "6.1.1",
"@stacks/network": "4.3.5",
"@stacks/storage": "^6.0.0",
"@stacks/transactions": "4.3.5",
"@stacks/wallet-sdk": "^5.0.2",
+ "@zondax/ledger-stacks": "^1.0.4",
"axios": "0.27.2",
+ "base64url": "^3.0.1",
"bignumber.js": "9.1.0",
- "bip32": "^2.0.6",
+ "bip32": "^4.0.0",
"bip39": "3.0.3",
"bitcoin-address-validation": "^2.2.1",
- "bitcoinjs-lib": "5.2.0",
+ "bitcoinjs-lib": "^6.1.3",
"bitcoinjs-message": "^2.2.0",
"bn.js": "^5.1.3",
+ "bs58check": "^3.0.1",
"buffer": "6.0.3",
"c32check": "^2.0.0",
+ "ecdsa-sig-formatter": "^1.0.11",
"ecpair": "^2.1.0",
"jsontokens": "^4.0.1",
+ "ledger-bitcoin": "^0.2.1",
"process": "^0.11.10",
"util": "^0.12.4",
+ "uuidv4": "^6.2.13",
"varuint-bitcoin": "^1.1.2"
}
},
@@ -2141,6 +2225,53 @@
"@scure/base": "~1.1.0"
}
},
+ "node_modules/@secretkeylabs/xverse-core/node_modules/@stacks/auth": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/@stacks/auth/-/auth-6.5.4.tgz",
+ "integrity": "sha512-8Zw+fdKMHdnyDv6EpNnXXTLMWQq31xUYDnFJtFlmr1AnZYPJUbquiqUNTS6Cf2Fk3FSZpsBRDNfWiqss1yGycw==",
+ "dependencies": {
+ "@stacks/common": "^6.5.2",
+ "@stacks/encryption": "^6.5.4",
+ "@stacks/network": "^6.5.4",
+ "@stacks/profile": "^6.5.4",
+ "cross-fetch": "^3.1.5",
+ "jsontokens": "^4.0.1"
+ }
+ },
+ "node_modules/@secretkeylabs/xverse-core/node_modules/@stacks/auth/node_modules/@stacks/common": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/@stacks/common/-/common-6.5.2.tgz",
+ "integrity": "sha512-tnkyEIA7YgX9GIkqlHocQPPax25uaboJ4aTX5wVs6kAGXY10+XI7VamRG4o+4DqnFVKwvIHR2fGcxdhtxNb/+Q==",
+ "dependencies": {
+ "@types/bn.js": "^5.1.0",
+ "@types/node": "^18.0.4"
+ }
+ },
+ "node_modules/@secretkeylabs/xverse-core/node_modules/@stacks/auth/node_modules/@stacks/encryption": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/@stacks/encryption/-/encryption-6.5.4.tgz",
+ "integrity": "sha512-osZGQXuY0BtqwiXZHMPgObg4QlqktDp2OYzbkln7A/7B1hwkjPruJ7yMK44wr0SprjaL9JCA8tKhpXxGd/tO8A==",
+ "dependencies": {
+ "@noble/hashes": "1.1.5",
+ "@noble/secp256k1": "1.7.1",
+ "@scure/bip39": "1.1.0",
+ "@stacks/common": "^6.5.2",
+ "@types/node": "^18.0.4",
+ "base64-js": "^1.5.1",
+ "bs58": "^5.0.0",
+ "ripemd160-min": "^0.0.6",
+ "varuint-bitcoin": "^1.1.2"
+ }
+ },
+ "node_modules/@secretkeylabs/xverse-core/node_modules/@stacks/auth/node_modules/@stacks/network": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/@stacks/network/-/network-6.5.4.tgz",
+ "integrity": "sha512-nONCBkTkYyH5yqO80Ith4QHC9PhipObKIGhlZETXd/csdRUkAYzE8/vJCx7LWPh4AiIVMjbEgBrGsjNR3YpGdw==",
+ "dependencies": {
+ "@stacks/common": "^6.5.2",
+ "cross-fetch": "^3.1.5"
+ }
+ },
"node_modules/@secretkeylabs/xverse-core/node_modules/@stacks/encryption": {
"version": "6.1.1",
"resolved": "https://registry.npmjs.org/@stacks/encryption/-/encryption-6.1.1.tgz",
@@ -2166,6 +2297,50 @@
"@types/node": "^18.0.4"
}
},
+ "node_modules/@secretkeylabs/xverse-core/node_modules/@stacks/profile": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/@stacks/profile/-/profile-6.5.4.tgz",
+ "integrity": "sha512-YEnt2ACOuPFydNKpxYmZ2c/+UrcuusrNHTChePLyXKmU9u3cX3uBNSvdl1H13H6b2CW3G7inxMerRgssXDzTEA==",
+ "dependencies": {
+ "@stacks/common": "^6.5.2",
+ "@stacks/network": "^6.5.4",
+ "@stacks/transactions": "^6.5.4",
+ "jsontokens": "^4.0.1",
+ "schema-inspector": "^2.0.2",
+ "zone-file": "^2.0.0-beta.3"
+ }
+ },
+ "node_modules/@secretkeylabs/xverse-core/node_modules/@stacks/profile/node_modules/@stacks/common": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/@stacks/common/-/common-6.5.2.tgz",
+ "integrity": "sha512-tnkyEIA7YgX9GIkqlHocQPPax25uaboJ4aTX5wVs6kAGXY10+XI7VamRG4o+4DqnFVKwvIHR2fGcxdhtxNb/+Q==",
+ "dependencies": {
+ "@types/bn.js": "^5.1.0",
+ "@types/node": "^18.0.4"
+ }
+ },
+ "node_modules/@secretkeylabs/xverse-core/node_modules/@stacks/profile/node_modules/@stacks/network": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/@stacks/network/-/network-6.5.4.tgz",
+ "integrity": "sha512-nONCBkTkYyH5yqO80Ith4QHC9PhipObKIGhlZETXd/csdRUkAYzE8/vJCx7LWPh4AiIVMjbEgBrGsjNR3YpGdw==",
+ "dependencies": {
+ "@stacks/common": "^6.5.2",
+ "cross-fetch": "^3.1.5"
+ }
+ },
+ "node_modules/@secretkeylabs/xverse-core/node_modules/@stacks/profile/node_modules/@stacks/transactions": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/@stacks/transactions/-/transactions-6.5.4.tgz",
+ "integrity": "sha512-yQhywPQ5cospYpVPbEMFRTUBZhVvyuI+meJ3fqHpu10IXX4CdURKLtW7N64c71YNXmE1tnsN7hWaPzrwjX0Dyw==",
+ "dependencies": {
+ "@noble/hashes": "1.1.5",
+ "@noble/secp256k1": "1.7.1",
+ "@stacks/common": "^6.5.2",
+ "@stacks/network": "^6.5.4",
+ "c32check": "^2.0.0",
+ "lodash.clonedeep": "^4.5.0"
+ }
+ },
"node_modules/@secretkeylabs/xverse-core/node_modules/@stacks/transactions": {
"version": "4.3.5",
"resolved": "https://registry.npmjs.org/@stacks/transactions/-/transactions-4.3.5.tgz",
@@ -2245,6 +2420,31 @@
"node": "*"
}
},
+ "node_modules/@secretkeylabs/xverse-core/node_modules/bip32": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/bip32/-/bip32-4.0.0.tgz",
+ "integrity": "sha512-aOGy88DDlVUhspIXJN+dVEtclhIsfAUppD43V0j40cPTld3pv/0X/MlrZSZ6jowIaQQzFwP8M6rFU2z2mVYjDQ==",
+ "dependencies": {
+ "@noble/hashes": "^1.2.0",
+ "@scure/base": "^1.1.1",
+ "typeforce": "^1.11.5",
+ "wif": "^2.0.6"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@secretkeylabs/xverse-core/node_modules/bip32/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/@secretkeylabs/xverse-core/node_modules/bip39": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/bip39/-/bip39-3.0.3.tgz",
@@ -2261,6 +2461,61 @@
"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/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==",
+ "dependencies": {
+ "@noble/hashes": "^1.2.0",
+ "bech32": "^2.0.0",
+ "bip174": "^2.1.0",
+ "bs58check": "^3.0.1",
+ "typeforce": "^1.11.3",
+ "varuint-bitcoin": "^1.1.2"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/@secretkeylabs/xverse-core/node_modules/bitcoinjs-lib/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/@secretkeylabs/xverse-core/node_modules/bs58check": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-3.0.1.tgz",
+ "integrity": "sha512-hjuuJvoWEybo7Hn/0xOrczQKKEKD63WguEjlhLExYs2wUBcebDC1jDNK17eEAD2lYfw82d5ASC1d7K3SWszjaQ==",
+ "dependencies": {
+ "@noble/hashes": "^1.2.0",
+ "bs58": "^5.0.0"
+ }
+ },
+ "node_modules/@secretkeylabs/xverse-core/node_modules/bs58check/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/@secretkeylabs/xverse-core/node_modules/schema-inspector": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/schema-inspector/-/schema-inspector-2.0.3.tgz",
+ "integrity": "sha512-Q9mpYxrP3w6CpHRfnh3QLOE1urkGTLvnl7xgVH7fsu0HYJUZenUASUr4j/pf7bAxShh+4R3Ta8ZgVKak1b2wyA==",
+ "dependencies": {
+ "async": "~2.6.3"
+ }
+ },
"node_modules/@sinonjs/commons": {
"version": "1.8.6",
"resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz",
@@ -3665,6 +3920,11 @@
"@types/jest": "*"
}
},
+ "node_modules/@types/uuid": {
+ "version": "8.3.4",
+ "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz",
+ "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw=="
+ },
"node_modules/@types/webextension-polyfill": {
"version": "0.9.2",
"resolved": "https://registry.npmjs.org/@types/webextension-polyfill/-/webextension-polyfill-0.9.2.tgz",
@@ -4083,6 +4343,17 @@
"integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
"dev": true
},
+ "node_modules/@zondax/ledger-stacks": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@zondax/ledger-stacks/-/ledger-stacks-1.0.4.tgz",
+ "integrity": "sha512-R8CB0CZ2poTzpcG0jhzzXZvXF7axIsmZFhp06aHCUjgz+1df63YbC4tUzyzmseekwqNWnaebWFejQKJ99WiHZA==",
+ "dependencies": {
+ "@babel/runtime": "^7.12.5",
+ "@ledgerhq/hw-transport": "^6.28.1",
+ "@stacks/transactions": "^4.1.0",
+ "varuint-bitcoin": "^1.1.2"
+ }
+ },
"node_modules/abab": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
@@ -5773,6 +6044,11 @@
"node": ">=6.0.0"
}
},
+ "node_modules/bip32-path": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/bip32-path/-/bip32-path-0.4.2.tgz",
+ "integrity": "sha512-ZBMCELjJfcNMkz5bDuJ1WrYvjlhEF5k6mQ8vUr4N7MbVRsXei7ZOg8VhhwMfNiW68NWmLkgkc6WvTickrLGprQ=="
+ },
"node_modules/bip32/node_modules/@types/node": {
"version": "10.12.18",
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz",
@@ -8611,7 +8887,6 @@
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
"integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
- "dev": true,
"engines": {
"node": ">=0.8.x"
}
@@ -12483,6 +12758,44 @@
"shell-quote": "^1.7.3"
}
},
+ "node_modules/ledger-bitcoin": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/ledger-bitcoin/-/ledger-bitcoin-0.2.2.tgz",
+ "integrity": "sha512-iZDuY+3tVmtEkJH6NbxCf8RElixKSEA8wt09c7IRvQj3SdJGc9g9oFUe/3bJotog0Ntzq69gDAKYJ4+srLpgHQ==",
+ "dependencies": {
+ "@ledgerhq/hw-transport": "^6.20.0",
+ "bip32-path": "^0.4.2",
+ "bitcoinjs-lib": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/ledger-bitcoin/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==",
+ "dependencies": {
+ "@noble/hashes": "^1.2.0",
+ "bech32": "^2.0.0",
+ "bip174": "^2.1.0",
+ "bs58check": "^3.0.1",
+ "typeforce": "^1.11.3",
+ "varuint-bitcoin": "^1.1.2"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/ledger-bitcoin/node_modules/bs58check": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-3.0.1.tgz",
+ "integrity": "sha512-hjuuJvoWEybo7Hn/0xOrczQKKEKD63WguEjlhLExYs2wUBcebDC1jDNK17eEAD2lYfw82d5ASC1d7K3SWszjaQ==",
+ "dependencies": {
+ "@noble/hashes": "^1.2.0",
+ "bs58": "^5.0.0"
+ }
+ },
"node_modules/leven": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
@@ -14915,6 +15228,22 @@
"queue-microtask": "^1.2.2"
}
},
+ "node_modules/rxjs": {
+ "version": "6.6.7",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
+ "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
+ "dependencies": {
+ "tslib": "^1.9.0"
+ },
+ "engines": {
+ "npm": ">=2.0.0"
+ }
+ },
+ "node_modules/rxjs/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ },
"node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
@@ -16627,11 +16956,19 @@
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
- "dev": true,
"bin": {
"uuid": "dist/bin/uuid"
}
},
+ "node_modules/uuidv4": {
+ "version": "6.2.13",
+ "resolved": "https://registry.npmjs.org/uuidv4/-/uuidv4-6.2.13.tgz",
+ "integrity": "sha512-AXyzMjazYB3ovL3q051VLH06Ixj//Knx7QnUSi1T//Ie3io6CpsPu9nVMOx5MoLWh6xV0B9J0hIaxungxXUbPQ==",
+ "dependencies": {
+ "@types/uuid": "8.3.4",
+ "uuid": "8.3.2"
+ }
+ },
"node_modules/v8-compile-cache": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
@@ -17844,6 +18181,15 @@
"integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
"dev": true
},
+ "@bitcoinerlab/secp256k1": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@bitcoinerlab/secp256k1/-/secp256k1-1.0.5.tgz",
+ "integrity": "sha512-8gT+ukTCFN2rTxn4hD9Jq3k+UJwcprgYjfK/SQUSLgznXoIgsBnlPuARMkyyuEjycQK9VvnPiejKdszVTflh+w==",
+ "requires": {
+ "@noble/hashes": "^1.1.5",
+ "@noble/secp256k1": "^1.7.1"
+ }
+ },
"@discoveryjs/json-ext": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz",
@@ -18677,6 +19023,60 @@
}
}
},
+ "@ledgerhq/devices": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-8.0.4.tgz",
+ "integrity": "sha512-dxOiWZmtEv1tgw70+rW8gviCRZUeGDUnxY6HUPiRqTAc0Ts2AXxiJChgAsPvIywWTGW+S67Nxq1oTZdpRbdt+A==",
+ "requires": {
+ "@ledgerhq/errors": "^6.12.7",
+ "@ledgerhq/logs": "^6.10.1",
+ "rxjs": "6",
+ "semver": "^7.3.5"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "semver": {
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ }
+ }
+ },
+ "@ledgerhq/errors": {
+ "version": "6.12.7",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-6.12.7.tgz",
+ "integrity": "sha512-1BpjzFErPK7qPFx0oItcX0mNLJMplVAm2Dpl5urZlubewnTyyw5sahIBjU+8LLCWJ2eGEh/0wyvh0jMtR0n2Mg=="
+ },
+ "@ledgerhq/hw-transport": {
+ "version": "6.28.5",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-6.28.5.tgz",
+ "integrity": "sha512-xmw5RhYbqExBBqTvOnOjN/RYNIGMBxFJ+zcYNfkfw/E+uEY3L7xq8Z7sC/n7URTT6xtEctElqduBJnBQE4OQtw==",
+ "requires": {
+ "@ledgerhq/devices": "^8.0.4",
+ "@ledgerhq/errors": "^6.12.7",
+ "events": "^3.3.0"
+ }
+ },
+ "@ledgerhq/logs": {
+ "version": "6.10.1",
+ "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-6.10.1.tgz",
+ "integrity": "sha512-z+ILK8Q3y+nfUl43ctCPuR4Y2bIxk/ooCQFwZxhtci1EhAtMDzMAx2W25qx8G1PPL9UUOdnUax19+F0OjXoj4w=="
+ },
"@leichtgewicht/ip-codec": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz",
@@ -18860,32 +19260,46 @@
}
},
"@secretkeylabs/xverse-core": {
+<<<<<<< HEAD
"version": "1.1.2",
"resolved": "https://npm.pkg.github.com/download/@secretkeylabs/xverse-core/1.1.2/d46450c9efbda848963099bc366d873b516d2ab2",
"integrity": "sha512-RI/riO+tH/Nd67XHSLNfO5ru0+1zLFkjc+Aw2mt8XivDOwz5t+8456soaQrSS1b5ZsJ6OrvBYEpnYsGuxD5YyA==",
+=======
+ "version": "1.4.0-1004b69",
+ "resolved": "https://npm.pkg.github.com/download/@secretkeylabs/xverse-core/1.4.0-1004b69/99b3ffc3a8e5106caf6aeaa56d0bc340afc3b267",
+ "integrity": "sha512-OtZL9c4wfCXmEgcj47YWOKG4uxiU1xaAWySrkkxZ4NwV7zF809VXEqeVyPy1MReVUixwi4Sgc3mVCT317wl0Cw==",
+>>>>>>> 8482196 (fix: bump xverse-core version and handle sponsor transaction error)
"requires": {
+ "@bitcoinerlab/secp256k1": "^1.0.2",
"@noble/secp256k1": "^1.7.1",
"@scure/base": "^1.1.1",
"@scure/btc-signer": "^1.0.0",
+ "@stacks/auth": "^6.5.1",
"@stacks/encryption": "6.1.1",
"@stacks/network": "4.3.5",
"@stacks/storage": "^6.0.0",
"@stacks/transactions": "4.3.5",
"@stacks/wallet-sdk": "^5.0.2",
+ "@zondax/ledger-stacks": "^1.0.4",
"axios": "0.27.2",
+ "base64url": "^3.0.1",
"bignumber.js": "9.1.0",
- "bip32": "^2.0.6",
+ "bip32": "^4.0.0",
"bip39": "3.0.3",
"bitcoin-address-validation": "^2.2.1",
- "bitcoinjs-lib": "5.2.0",
+ "bitcoinjs-lib": "^6.1.3",
"bitcoinjs-message": "^2.2.0",
"bn.js": "^5.1.3",
+ "bs58check": "^3.0.1",
"buffer": "6.0.3",
"c32check": "^2.0.0",
+ "ecdsa-sig-formatter": "^1.0.11",
"ecpair": "^2.1.0",
"jsontokens": "^4.0.1",
+ "ledger-bitcoin": "^0.2.1",
"process": "^0.11.10",
"util": "^0.12.4",
+ "uuidv4": "^6.2.13",
"varuint-bitcoin": "^1.1.2"
},
"dependencies": {
@@ -18903,6 +19317,55 @@
"@scure/base": "~1.1.0"
}
},
+ "@stacks/auth": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/@stacks/auth/-/auth-6.5.4.tgz",
+ "integrity": "sha512-8Zw+fdKMHdnyDv6EpNnXXTLMWQq31xUYDnFJtFlmr1AnZYPJUbquiqUNTS6Cf2Fk3FSZpsBRDNfWiqss1yGycw==",
+ "requires": {
+ "@stacks/common": "^6.5.2",
+ "@stacks/encryption": "^6.5.4",
+ "@stacks/network": "^6.5.4",
+ "@stacks/profile": "^6.5.4",
+ "cross-fetch": "^3.1.5",
+ "jsontokens": "^4.0.1"
+ },
+ "dependencies": {
+ "@stacks/common": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/@stacks/common/-/common-6.5.2.tgz",
+ "integrity": "sha512-tnkyEIA7YgX9GIkqlHocQPPax25uaboJ4aTX5wVs6kAGXY10+XI7VamRG4o+4DqnFVKwvIHR2fGcxdhtxNb/+Q==",
+ "requires": {
+ "@types/bn.js": "^5.1.0",
+ "@types/node": "^18.0.4"
+ }
+ },
+ "@stacks/encryption": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/@stacks/encryption/-/encryption-6.5.4.tgz",
+ "integrity": "sha512-osZGQXuY0BtqwiXZHMPgObg4QlqktDp2OYzbkln7A/7B1hwkjPruJ7yMK44wr0SprjaL9JCA8tKhpXxGd/tO8A==",
+ "requires": {
+ "@noble/hashes": "1.1.5",
+ "@noble/secp256k1": "1.7.1",
+ "@scure/bip39": "1.1.0",
+ "@stacks/common": "^6.5.2",
+ "@types/node": "^18.0.4",
+ "base64-js": "^1.5.1",
+ "bs58": "^5.0.0",
+ "ripemd160-min": "^0.0.6",
+ "varuint-bitcoin": "^1.1.2"
+ }
+ },
+ "@stacks/network": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/@stacks/network/-/network-6.5.4.tgz",
+ "integrity": "sha512-nONCBkTkYyH5yqO80Ith4QHC9PhipObKIGhlZETXd/csdRUkAYzE8/vJCx7LWPh4AiIVMjbEgBrGsjNR3YpGdw==",
+ "requires": {
+ "@stacks/common": "^6.5.2",
+ "cross-fetch": "^3.1.5"
+ }
+ }
+ }
+ },
"@stacks/encryption": {
"version": "6.1.1",
"resolved": "https://registry.npmjs.org/@stacks/encryption/-/encryption-6.1.1.tgz",
@@ -18930,6 +19393,52 @@
}
}
},
+ "@stacks/profile": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/@stacks/profile/-/profile-6.5.4.tgz",
+ "integrity": "sha512-YEnt2ACOuPFydNKpxYmZ2c/+UrcuusrNHTChePLyXKmU9u3cX3uBNSvdl1H13H6b2CW3G7inxMerRgssXDzTEA==",
+ "requires": {
+ "@stacks/common": "^6.5.2",
+ "@stacks/network": "^6.5.4",
+ "@stacks/transactions": "^6.5.4",
+ "jsontokens": "^4.0.1",
+ "schema-inspector": "^2.0.2",
+ "zone-file": "^2.0.0-beta.3"
+ },
+ "dependencies": {
+ "@stacks/common": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/@stacks/common/-/common-6.5.2.tgz",
+ "integrity": "sha512-tnkyEIA7YgX9GIkqlHocQPPax25uaboJ4aTX5wVs6kAGXY10+XI7VamRG4o+4DqnFVKwvIHR2fGcxdhtxNb/+Q==",
+ "requires": {
+ "@types/bn.js": "^5.1.0",
+ "@types/node": "^18.0.4"
+ }
+ },
+ "@stacks/network": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/@stacks/network/-/network-6.5.4.tgz",
+ "integrity": "sha512-nONCBkTkYyH5yqO80Ith4QHC9PhipObKIGhlZETXd/csdRUkAYzE8/vJCx7LWPh4AiIVMjbEgBrGsjNR3YpGdw==",
+ "requires": {
+ "@stacks/common": "^6.5.2",
+ "cross-fetch": "^3.1.5"
+ }
+ },
+ "@stacks/transactions": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/@stacks/transactions/-/transactions-6.5.4.tgz",
+ "integrity": "sha512-yQhywPQ5cospYpVPbEMFRTUBZhVvyuI+meJ3fqHpu10IXX4CdURKLtW7N64c71YNXmE1tnsN7hWaPzrwjX0Dyw==",
+ "requires": {
+ "@noble/hashes": "1.1.5",
+ "@noble/secp256k1": "1.7.1",
+ "@stacks/common": "^6.5.2",
+ "@stacks/network": "^6.5.4",
+ "c32check": "^2.0.0",
+ "lodash.clonedeep": "^4.5.0"
+ }
+ }
+ }
+ },
"@stacks/transactions": {
"version": "4.3.5",
"resolved": "https://registry.npmjs.org/@stacks/transactions/-/transactions-4.3.5.tgz",
@@ -18991,6 +19500,24 @@
"resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.0.tgz",
"integrity": "sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A=="
},
+ "bip32": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/bip32/-/bip32-4.0.0.tgz",
+ "integrity": "sha512-aOGy88DDlVUhspIXJN+dVEtclhIsfAUppD43V0j40cPTld3pv/0X/MlrZSZ6jowIaQQzFwP8M6rFU2z2mVYjDQ==",
+ "requires": {
+ "@noble/hashes": "^1.2.0",
+ "@scure/base": "^1.1.1",
+ "typeforce": "^1.11.5",
+ "wif": "^2.0.6"
+ },
+ "dependencies": {
+ "@noble/hashes": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz",
+ "integrity": "sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA=="
+ }
+ }
+ },
"bip39": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/bip39/-/bip39-3.0.3.tgz",
@@ -19008,6 +19535,50 @@
"integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ=="
}
}
+ },
+ "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==",
+ "requires": {
+ "@noble/hashes": "^1.2.0",
+ "bech32": "^2.0.0",
+ "bip174": "^2.1.0",
+ "bs58check": "^3.0.1",
+ "typeforce": "^1.11.3",
+ "varuint-bitcoin": "^1.1.2"
+ },
+ "dependencies": {
+ "@noble/hashes": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz",
+ "integrity": "sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA=="
+ }
+ }
+ },
+ "bs58check": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-3.0.1.tgz",
+ "integrity": "sha512-hjuuJvoWEybo7Hn/0xOrczQKKEKD63WguEjlhLExYs2wUBcebDC1jDNK17eEAD2lYfw82d5ASC1d7K3SWszjaQ==",
+ "requires": {
+ "@noble/hashes": "^1.2.0",
+ "bs58": "^5.0.0"
+ },
+ "dependencies": {
+ "@noble/hashes": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.1.tgz",
+ "integrity": "sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA=="
+ }
+ }
+ },
+ "schema-inspector": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/schema-inspector/-/schema-inspector-2.0.3.tgz",
+ "integrity": "sha512-Q9mpYxrP3w6CpHRfnh3QLOE1urkGTLvnl7xgVH7fsu0HYJUZenUASUr4j/pf7bAxShh+4R3Ta8ZgVKak1b2wyA==",
+ "requires": {
+ "async": "~2.6.3"
+ }
}
}
},
@@ -20238,6 +20809,11 @@
"@types/jest": "*"
}
},
+ "@types/uuid": {
+ "version": "8.3.4",
+ "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz",
+ "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw=="
+ },
"@types/webextension-polyfill": {
"version": "0.9.2",
"resolved": "https://registry.npmjs.org/@types/webextension-polyfill/-/webextension-polyfill-0.9.2.tgz",
@@ -20554,6 +21130,17 @@
"integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
"dev": true
},
+ "@zondax/ledger-stacks": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@zondax/ledger-stacks/-/ledger-stacks-1.0.4.tgz",
+ "integrity": "sha512-R8CB0CZ2poTzpcG0jhzzXZvXF7axIsmZFhp06aHCUjgz+1df63YbC4tUzyzmseekwqNWnaebWFejQKJ99WiHZA==",
+ "requires": {
+ "@babel/runtime": "^7.12.5",
+ "@ledgerhq/hw-transport": "^6.28.1",
+ "@stacks/transactions": "^4.1.0",
+ "varuint-bitcoin": "^1.1.2"
+ }
+ },
"abab": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
@@ -22018,6 +22605,11 @@
}
}
},
+ "bip32-path": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/bip32-path/-/bip32-path-0.4.2.tgz",
+ "integrity": "sha512-ZBMCELjJfcNMkz5bDuJ1WrYvjlhEF5k6mQ8vUr4N7MbVRsXei7ZOg8VhhwMfNiW68NWmLkgkc6WvTickrLGprQ=="
+ },
"bip39": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz",
@@ -24220,8 +24812,7 @@
"events": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
- "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
- "dev": true
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="
},
"evp_bytestokey": {
"version": "1.0.3",
@@ -27090,6 +27681,40 @@
"shell-quote": "^1.7.3"
}
},
+ "ledger-bitcoin": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/ledger-bitcoin/-/ledger-bitcoin-0.2.2.tgz",
+ "integrity": "sha512-iZDuY+3tVmtEkJH6NbxCf8RElixKSEA8wt09c7IRvQj3SdJGc9g9oFUe/3bJotog0Ntzq69gDAKYJ4+srLpgHQ==",
+ "requires": {
+ "@ledgerhq/hw-transport": "^6.20.0",
+ "bip32-path": "^0.4.2",
+ "bitcoinjs-lib": "^6.0.1"
+ },
+ "dependencies": {
+ "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==",
+ "requires": {
+ "@noble/hashes": "^1.2.0",
+ "bech32": "^2.0.0",
+ "bip174": "^2.1.0",
+ "bs58check": "^3.0.1",
+ "typeforce": "^1.11.3",
+ "varuint-bitcoin": "^1.1.2"
+ }
+ },
+ "bs58check": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-3.0.1.tgz",
+ "integrity": "sha512-hjuuJvoWEybo7Hn/0xOrczQKKEKD63WguEjlhLExYs2wUBcebDC1jDNK17eEAD2lYfw82d5ASC1d7K3SWszjaQ==",
+ "requires": {
+ "@noble/hashes": "^1.2.0",
+ "bs58": "^5.0.0"
+ }
+ }
+ }
+ },
"leven": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
@@ -28905,6 +29530,21 @@
"queue-microtask": "^1.2.2"
}
},
+ "rxjs": {
+ "version": "6.6.7",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
+ "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
+ "requires": {
+ "tslib": "^1.9.0"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ }
+ }
+ },
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
@@ -30207,8 +30847,16 @@
"uuid": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
- "dev": true
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
+ },
+ "uuidv4": {
+ "version": "6.2.13",
+ "resolved": "https://registry.npmjs.org/uuidv4/-/uuidv4-6.2.13.tgz",
+ "integrity": "sha512-AXyzMjazYB3ovL3q051VLH06Ixj//Knx7QnUSi1T//Ie3io6CpsPu9nVMOx5MoLWh6xV0B9J0hIaxungxXUbPQ==",
+ "requires": {
+ "@types/uuid": "8.3.4",
+ "uuid": "8.3.2"
+ }
},
"v8-compile-cache": {
"version": "2.3.0",
diff --git a/package.json b/package.json
index 887aa70c7..1ae4e60f6 100644
--- a/package.json
+++ b/package.json
@@ -5,15 +5,15 @@
"private": true,
"dependencies": {
"@react-spring/web": "^9.6.1",
- "@secretkeylabs/xverse-core": "1.1.2",
+ "@secretkeylabs/xverse-core": "1.4.0-1004b69",
"@stacks/connect": "^6.10.2",
"@stacks/encryption": "4.3.5",
"@stacks/stacks-blockchain-api-types": "^6.1.1",
+ "@stacks/transactions": "^4.3.8",
"@tanstack/query-sync-storage-persister": "^4.29.1",
"@tanstack/react-query": "^4.29.3",
"@tanstack/react-query-devtools": "^4.29.3",
"@tanstack/react-query-persist-client": "^4.29.3",
- "@stacks/transactions": "^4.3.8",
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0",
diff --git a/src/app/components/tokenImage/index.tsx b/src/app/components/tokenImage/index.tsx
index bbd4ff32b..57a793ce6 100644
--- a/src/app/components/tokenImage/index.tsx
+++ b/src/app/components/tokenImage/index.tsx
@@ -46,9 +46,14 @@ const TickerIconText = styled.h1((props) => ({
fontSize: 13,
}));
-export default function TokenImage(props: TokenImageProps) {
- const { token, loading, fungibleToken, round, size, loaderSize } = props;
-
+export default function TokenImage({
+ token,
+ loading,
+ fungibleToken,
+ size,
+ loaderSize,
+ round,
+}: TokenImageProps) {
const getCoinIcon = useCallback(() => {
if (token === 'STX') {
return IconStacks;
diff --git a/src/app/hooks/useSponsoredTransaction.ts b/src/app/hooks/useSponsoredTransaction.ts
new file mode 100644
index 000000000..1b14a99a1
--- /dev/null
+++ b/src/app/hooks/useSponsoredTransaction.ts
@@ -0,0 +1,32 @@
+import { useEffect, useState } from 'react';
+import { useQuery } from '@tanstack/react-query';
+import { getSponsorInfo } from '@secretkeylabs/xverse-core/api';
+
+export const useSponsorInfoQuery = (sponsorUrl?: string) =>
+ useQuery({
+ queryKey: ['sponsorInfo'],
+ queryFn: async () => {
+ try {
+ return await getSponsorInfo(sponsorUrl);
+ } catch (e: any) {
+ return Promise.reject(e);
+ }
+ },
+ });
+
+export const useSponsoredTransaction = (sponsorUrl?: string) => {
+ const [isSponsored, setIsSponsored] = useState(false);
+
+ const { error, data: isActive } = useSponsorInfoQuery(sponsorUrl);
+ useEffect(() => {
+ if (!error) {
+ setIsSponsored(!!isActive);
+ }
+ }, [isActive, error]);
+
+ return {
+ isSponsored,
+ };
+};
+
+export default useSponsoredTransaction;
diff --git a/src/app/screens/home/index.tsx b/src/app/screens/home/index.tsx
index 8526c62c4..50d62e44a 100644
--- a/src/app/screens/home/index.tsx
+++ b/src/app/screens/home/index.tsx
@@ -100,6 +100,7 @@ const RowButtonContainer = styled.div((props) => ({
flexDirection: 'row',
marginTop: props.theme.spacing(11),
columnGap: props.theme.spacing(11),
+
}));
const TokenListButtonContainer = styled.div((props) => ({
diff --git a/src/app/screens/swap/swapConfirmation/index.tsx b/src/app/screens/swap/swapConfirmation/index.tsx
index 1884bef9b..c4850116f 100644
--- a/src/app/screens/swap/swapConfirmation/index.tsx
+++ b/src/app/screens/swap/swapConfirmation/index.tsx
@@ -12,6 +12,8 @@ import { useCallback, useState } from 'react';
import { useLocation, useNavigate } from 'react-router-dom';
import { useConfirmSwap } from '@screens/swap/swapConfirmation/useConfirmSwap';
import { AdvanceSettings } from '@screens/swap/swapConfirmation/advanceSettings';
+import { useSponsoredTransaction } from '@hooks/useSponsoredTransaction';
+import SponsoredTransactionIcon from '@assets/img/transactions/CircleWavyCheck.svg';
const TitleText = styled.div((props) => ({
fontSize: 21,
@@ -29,7 +31,7 @@ export const ButtonContainer = styled.div((props) => ({
position: 'sticky',
bottom: 0,
background: props.theme.colors.background.elevation0,
- padding: `${props.theme.spacing(12)}px 0`
+ padding: `${props.theme.spacing(12)}px 0`,
}));
export const ActionButtonWrap = styled.div((props) => ({
@@ -37,11 +39,26 @@ export const ActionButtonWrap = styled.div((props) => ({
width: '100%',
}));
+const SponsoredTransactionText = styled.div((props) => ({
+ ...props.theme.body_m,
+ color: props.theme.colors.white[200],
+ marginTop: props.theme.spacing(10),
+ display: 'flex',
+ gap: props.theme.spacing(4),
+}));
+
+const Icon = styled.img((props) => ({
+ marginTop: props.theme.spacing(1),
+ width: 24,
+ height: 24,
+}));
+
export default function SwapConfirmation() {
const { t } = useTranslation('translation', { keyPrefix: 'SWAP_CONFIRM_SCREEN' });
const location = useLocation();
const navigate = useNavigate();
const swap = useConfirmSwap(location.state);
+ const { isSponsored } = useSponsoredTransaction();
const onCancel = useCallback(() => {
navigate('/swap');
@@ -69,7 +86,14 @@ export default function SwapConfirmation() {
lpFeeFiatAmount={swap.lpFeeFiatAmount}
currency={swap.fromToken.name}
/>
-
+ {isSponsored ? (
+
+
+ {t('THIS_IS_A_SPONSORED_TRANSACTION')}
+
+ ) : (
+
+ )}
diff --git a/src/app/screens/swap/swapConfirmation/useConfirmSwap.tsx b/src/app/screens/swap/swapConfirmation/useConfirmSwap.tsx
index 33625932d..6201c7554 100644
--- a/src/app/screens/swap/swapConfirmation/useConfirmSwap.tsx
+++ b/src/app/screens/swap/swapConfirmation/useConfirmSwap.tsx
@@ -2,16 +2,16 @@ import { SwapToken } from '@screens/swap/useSwap';
import { ReactNode } from 'react';
import { Currency } from 'alex-sdk';
import useWalletSelector from '@hooks/useWalletSelector';
-import { broadcastSignedTransaction, signTransaction } from '@secretkeylabs/xverse-core';
import {
- makeUnsignedContractCall,
- AnchorMode,
- PostConditionMode,
- StacksTransaction,
-} from '@stacks/transactions';
-import type { TxToBroadCast } from 'alex-sdk/dist/helpers/SwapHelper';
+ broadcastSignedTransaction,
+ signTransaction,
+ sponsorTransaction,
+} from '@secretkeylabs/xverse-core';
+import { StacksTransaction } from '@stacks/transactions';
import useNetworkSelector from '@hooks/useNetwork';
import { useNavigate } from 'react-router-dom';
+import useSponsoredTransaction from '@hooks/useSponsoredTransaction';
+import { ApiResponseError } from '@secretkeylabs/xverse-core/types';
export type SwapConfirmationInput = {
from: Currency;
@@ -28,11 +28,14 @@ export type SwapConfirmationInput = {
functionName: string;
};
+const XVERSE_SPONSOR_2_URL = 'https://sponsor2.xverse.app';
+
export function useConfirmSwap(
- input: SwapConfirmationInput
+ input: SwapConfirmationInput,
): SwapConfirmationInput & { onConfirm: () => Promise } {
- const { selectedAccount, seedPhrase, stxPublicKey } = useWalletSelector();
+ const { selectedAccount, seedPhrase } = useWalletSelector();
const selectedNetwork = useNetworkSelector();
+ const { isSponsored } = useSponsoredTransaction(XVERSE_SPONSOR_2_URL);
const navigate = useNavigate();
return {
...input,
@@ -41,10 +44,15 @@ export function useConfirmSwap(
input.unsignedTx,
seedPhrase,
selectedAccount?.id ?? 0,
- selectedNetwork
+ selectedNetwork,
);
try {
- const broadcastResult: string = await broadcastSignedTransaction(signed, selectedNetwork);
+ let broadcastResult: string | null;
+ if (isSponsored) {
+ broadcastResult = await sponsorTransaction(signed, XVERSE_SPONSOR_2_URL);
+ } else {
+ broadcastResult = await broadcastSignedTransaction(signed, selectedNetwork);
+ }
if (broadcastResult) {
navigate('/tx-status', {
state: {
@@ -61,7 +69,8 @@ export function useConfirmSwap(
state: {
txid: '',
currency: 'STX',
- error: e.message,
+ error: e instanceof ApiResponseError ? e.data.message : e.message,
+ sponsored: isSponsored,
browserTx: true,
},
});
diff --git a/src/assets/img/transactions/CircleWavyCheck.svg b/src/assets/img/transactions/CircleWavyCheck.svg
new file mode 100644
index 000000000..13018548a
--- /dev/null
+++ b/src/assets/img/transactions/CircleWavyCheck.svg
@@ -0,0 +1,6 @@
+
diff --git a/src/locales/en.json b/src/locales/en.json
index 9ba1411d6..0fddf99ca 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -600,6 +600,7 @@
"COPIED": "Copied",
"COPY_YOUR_ADDRESS": "copy your address",
"ADVANCED_SETTING": "Advanced settings",
- "ROUTE_DESC": "For the transaction to proceed, your BTC will be swapped for xBTC and STX. There is no additional cost for you and no STX will be added to your wallet."
+ "ROUTE_DESC": "For the transaction to proceed, your BTC will be swapped for xBTC and STX. There is no additional cost for you and no STX will be added to your wallet.",
+ "THIS_IS_A_SPONSORED_TRANSACTION": "This is a sponsored transaction, no transaction fees will be deducted from your account."
}
}