diff --git a/package-lock.json b/package-lock.json index d5da87790..ab8679dc6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,11 +11,10 @@ "@ledgerhq/hw-transport-webusb": "^6.27.13", "@phosphor-icons/react": "^2.0.10", "@react-spring/web": "^9.6.1", - "@secretkeylabs/xverse-core": "6.0.1", - "@stacks/connect": "^6.10.2", - "@stacks/encryption": "4.3.5", + "@secretkeylabs/xverse-core": "7.0.0", + "@stacks/connect": "7.4.1", "@stacks/stacks-blockchain-api-types": "6.1.1", - "@stacks/transactions": "4.3.8", + "@stacks/transactions": "6.9.0", "@tanstack/query-sync-storage-persister": "^4.29.1", "@tanstack/react-query": "^4.29.3", "@tanstack/react-query-devtools": "^4.29.3", @@ -1297,7 +1296,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==", @@ -1308,17 +1307,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", @@ -1677,41 +1665,58 @@ } }, "node_modules/@scure/bip32": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.2.tgz", - "integrity": "sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.3.tgz", + "integrity": "sha512-dSH3+LCWONlSNQuF34xZrG6Xas7tp2jSSqHb/pMfXWM0vKE4JZOtK3uJfoWouUVW5IGlls75HkXmYLldZ8ySgQ==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], "dependencies": { - "@noble/curves": "~1.2.0", - "@noble/hashes": "~1.3.2", - "@scure/base": "~1.1.2" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "@noble/hashes": "~1.1.3", + "@noble/secp256k1": "~1.7.0", + "@scure/base": "~1.1.0" } }, "node_modules/@scure/bip32/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==", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", + "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] }, "node_modules/@scure/bip39": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.1.tgz", - "integrity": "sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", + "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], "dependencies": { - "@noble/hashes": "~1.3.0", + "@noble/hashes": "~1.1.1", "@scure/base": "~1.1.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" } }, + "node_modules/@scure/bip39/node_modules/@noble/hashes": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", + "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, "node_modules/@scure/btc-signer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@scure/btc-signer/-/btc-signer-1.1.0.tgz", @@ -1727,9 +1732,9 @@ } }, "node_modules/@secretkeylabs/xverse-core": { - "version": "6.0.1", - "resolved": "https://npm.pkg.github.com/download/@secretkeylabs/xverse-core/6.0.1/32e8e3439cf018882e3b7cb3f65504921dd1aac3", - "integrity": "sha512-T5E3cTJT06NsvHrAN9EZAP9gkWD+gYwPwNUXhaKTOj1YxkAUOTREyhVkNmlqbTLOHx8UtxHzcjOZju40bqOLkA==", + "version": "7.0.0", + "resolved": "https://npm.pkg.github.com/download/@secretkeylabs/xverse-core/7.0.0/a9d4470c0bee31b2b751b0f2a3e064d51453ddd4", + "integrity": "sha512-8z5g5dHFin0d9695EwI0t6a/Ji7vzUenCq1AHpTtsj5Z1/SlH6Oa7p95fyJ1usBH99M5NQAYFMBGkjOcNE+jQw==", "license": "ISC", "dependencies": { "@bitcoinerlab/secp256k1": "^1.0.2", @@ -1737,12 +1742,13 @@ "@noble/secp256k1": "^1.7.1", "@scure/base": "^1.1.1", "@scure/btc-signer": "1.1.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", + "@stacks/auth": "^6.9.0", + "@stacks/connect": "^7.4.1", + "@stacks/encryption": "6.9.0", + "@stacks/network": "6.8.1", + "@stacks/storage": "^6.9.0", + "@stacks/transactions": "6.9.0", + "@stacks/wallet-sdk": "^6.9.0", "@zondax/ledger-stacks": "^1.0.4", "axios": "1.6.2", "base64url": "^3.0.1", @@ -1772,138 +1778,10 @@ "react": ">18.0.0" } }, - "node_modules/@secretkeylabs/xverse-core/node_modules/@noble/hashes": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", - "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@secretkeylabs/xverse-core/node_modules/@scure/bip39": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", - "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "@noble/hashes": "~1.1.1", - "@scure/base": "~1.1.0" - } - }, - "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", - "integrity": "sha512-tS0Foo83h1ixwxCAbFh3uX0Hty3b3EFcqOb62udgBFlDmsjBD9Pld8t+ApKLTwiad6YhRu6rW+hDAJmhYQToMw==", - "dependencies": { - "@noble/hashes": "1.1.5", - "@noble/secp256k1": "1.7.1", - "@scure/bip39": "1.1.0", - "@stacks/common": "^6.0.0", - "@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/network": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@stacks/network/-/network-4.3.5.tgz", - "integrity": "sha512-TC4+AkuT6qi3MoEGxTftA+4BNp99QvGnI+qtKQkoA1m0KDr8b9hSBUhugJHRhQbWuo7D6q0+JagYEGxLID29Kw==", - "dependencies": { - "@stacks/common": "^4.3.5", - "cross-fetch": "^3.1.5" - } - }, - "node_modules/@secretkeylabs/xverse-core/node_modules/@stacks/network/node_modules/@stacks/common": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@stacks/common/-/common-4.3.5.tgz", - "integrity": "sha512-UuViiQ7fn3vdtTe3739aRzbl+wbukekeQuXgqt8d7nB2HC2HodD7GcHhpUga165cO35CD6lQUtj3vXxJb5Ga+A==", - "dependencies": { - "@types/bn.js": "^5.1.0", - "@types/node": "^18.0.4", - "buffer": "^6.0.3" - } - }, - "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", - "integrity": "sha512-tTkuVlIfpD6QKF0vHoJvUZ2h3Ua82l4HhxzzVs3ZKr5M9WYULZQo1RMaMloJLgUMxsexDZ1Mib6ADiXgBefrBQ==", - "dependencies": { - "@noble/hashes": "^1.0.0", - "@noble/secp256k1": "^1.5.5", - "@stacks/common": "^4.3.5", - "@stacks/network": "^4.3.5", - "@types/node": "^18.0.4", - "@types/sha.js": "^2.4.0", - "c32check": "^1.1.3", - "lodash.clonedeep": "^4.5.0", - "ripemd160-min": "^0.0.6", - "sha.js": "^2.4.11", - "smart-buffer": "^4.1.0" - } - }, - "node_modules/@secretkeylabs/xverse-core/node_modules/@stacks/transactions/node_modules/@stacks/common": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@stacks/common/-/common-4.3.5.tgz", - "integrity": "sha512-UuViiQ7fn3vdtTe3739aRzbl+wbukekeQuXgqt8d7nB2HC2HodD7GcHhpUga165cO35CD6lQUtj3vXxJb5Ga+A==", - "dependencies": { - "@types/bn.js": "^5.1.0", - "@types/node": "^18.0.4", - "buffer": "^6.0.3" - } - }, - "node_modules/@secretkeylabs/xverse-core/node_modules/@stacks/transactions/node_modules/c32check": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/c32check/-/c32check-1.1.3.tgz", - "integrity": "sha512-ADADE/PjAbJRlwpG3ShaOMbBUlJJZO7xaYSRD5Tub6PixQlgR4s36y9cvMf/YRGpkqX+QOxIdMw216iC320q9A==", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.6.0", - "cross-sha256": "^1.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@secretkeylabs/xverse-core/node_modules/@stacks/transactions/node_modules/c32check/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "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", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } + "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/bip39": { "version": "3.0.3", @@ -1916,11 +1794,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/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -1940,33 +1813,37 @@ "jsontokens": "^4.0.1" } }, - "node_modules/@stacks/auth/node_modules/@noble/hashes": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", - "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] + "node_modules/@stacks/common": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/@stacks/common/-/common-6.8.1.tgz", + "integrity": "sha512-ewL9GLZNQYa5a/3K4xSHlHIgHkD4rwWW/QEaPId8zQIaL+1O9qCaF4LX9orNQeOmEk8kvG0x2xGV54fXKCZeWQ==", + "dependencies": { + "@types/bn.js": "^5.1.0", + "@types/node": "^18.0.4" + } }, - "node_modules/@stacks/auth/node_modules/@scure/bip39": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", - "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "node_modules/@stacks/connect": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@stacks/connect/-/connect-7.4.1.tgz", + "integrity": "sha512-kvF7Fnx8oMHNi/9At6UI6kThey+gYlYlbtsxhNL2VqflReXI8z3EndaMJ1WrD55ePIOoydAzV/Fx0rdNFjd4rQ==", + "dependencies": { + "@stacks/auth": "^6.1.1", + "@stacks/connect-ui": "6.1.2", + "@stacks/network": "^6.1.1", + "@stacks/profile": "^6.1.1", + "@stacks/transactions": "^6.1.1", + "jsontokens": "^4.0.1" + } + }, + "node_modules/@stacks/connect-ui": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@stacks/connect-ui/-/connect-ui-6.1.2.tgz", + "integrity": "sha512-V4gUINXRDB2MO6YHk/JZZeApSnANrMFvIRv9qLBaJPamKsgeiCOBkiC88T7ucLVCz+NvCmS93Ntg4wytDIqdOg==", "dependencies": { - "@noble/hashes": "~1.1.1", - "@scure/base": "~1.1.0" + "@stencil/core": "^2.17.1" } }, - "node_modules/@stacks/auth/node_modules/@stacks/encryption": { + "node_modules/@stacks/encryption": { "version": "6.9.0", "resolved": "https://registry.npmjs.org/@stacks/encryption/-/encryption-6.9.0.tgz", "integrity": "sha512-hbpZ47eYgw9ZH5ly+GSgvw2Ffsu9L6d++2XIhvYSzL7yxYl4m1+FV5QYdJthJ2AS3vi8cI5otE254HTfCrhKzg==", @@ -1982,239 +1859,24 @@ "varuint-bitcoin": "^1.1.2" } }, - "node_modules/@stacks/common": { + "node_modules/@stacks/encryption/node_modules/@noble/hashes": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", + "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/@stacks/network": { "version": "6.8.1", - "resolved": "https://registry.npmjs.org/@stacks/common/-/common-6.8.1.tgz", - "integrity": "sha512-ewL9GLZNQYa5a/3K4xSHlHIgHkD4rwWW/QEaPId8zQIaL+1O9qCaF4LX9orNQeOmEk8kvG0x2xGV54fXKCZeWQ==", + "resolved": "https://registry.npmjs.org/@stacks/network/-/network-6.8.1.tgz", + "integrity": "sha512-n8M25pPbLqpSBctabtsLOTBlmPvm9EPQpTI//x7HLdt5lEjDXxauEQt0XGSvDUZwecrmztqt9xNxlciiGApRBw==", "dependencies": { - "@types/bn.js": "^5.1.0", - "@types/node": "^18.0.4" - } - }, - "node_modules/@stacks/connect": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/@stacks/connect/-/connect-6.10.2.tgz", - "integrity": "sha512-rixsMWhSIMGS8ClUgfNKA7PLV4ikr7SpjFUcVuKCmEsrRMnDdcvuhiY87hLPiatD0W6qMWZVR+BaIbHIgvp9aQ==", - "dependencies": { - "@stacks/auth": "4.3.2", - "@stacks/connect-ui": "5.5.4", - "@stacks/network": "4.3.2", - "@stacks/prettier-config": "0.0.8", - "@stacks/transactions": "4.3.2", - "bn.js": "^5.2.0", - "buffer": "6.0.3", - "jsontokens": "3.1.1", - "readable-stream": "^3.6.0", - "url": "^0.11.0" - } - }, - "node_modules/@stacks/connect-ui": { - "version": "5.5.4", - "resolved": "https://registry.npmjs.org/@stacks/connect-ui/-/connect-ui-5.5.4.tgz", - "integrity": "sha512-xstC05PoxpPeA2HWytkJp/NJBtDEPDUoHuUyyvpuqS7f95rsHyx/tLFWv9ElxWiIbeMPPDEQipoy6S1qnZb8jw==", - "dependencies": { - "@stencil/core": "^2.17.1" - } - }, - "node_modules/@stacks/connect/node_modules/@stacks/auth": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@stacks/auth/-/auth-4.3.2.tgz", - "integrity": "sha512-8Ttq5dMmgVNUyaYR2q5pr3cIIiNHtD8HiVyB+Sui25T047twuWRKC5ZsxN6W28SPlLTGXKu/AFuDKoZDC6sAvQ==", - "dependencies": { - "@stacks/common": "^4.3.2", - "@stacks/encryption": "^4.3.2", - "@stacks/network": "^4.3.2", - "@stacks/profile": "^4.3.2", - "cross-fetch": "^3.1.5", - "jsontokens": "^3.1.1", - "query-string": "^6.13.1" - } - }, - "node_modules/@stacks/connect/node_modules/@stacks/common": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@stacks/common/-/common-4.3.5.tgz", - "integrity": "sha512-UuViiQ7fn3vdtTe3739aRzbl+wbukekeQuXgqt8d7nB2HC2HodD7GcHhpUga165cO35CD6lQUtj3vXxJb5Ga+A==", - "dependencies": { - "@types/bn.js": "^5.1.0", - "@types/node": "^18.0.4", - "buffer": "^6.0.3" - } - }, - "node_modules/@stacks/connect/node_modules/@stacks/network": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@stacks/network/-/network-4.3.2.tgz", - "integrity": "sha512-8QgsGjAHwRwCDIzbE+nmqD2Kk589svmDLHNm1PJWL5EGpZyJK5su/y36ZgmTMVDvQwNfr9/8GFoaAbBlArvZyw==", - "dependencies": { - "@stacks/common": "^4.3.2", - "cross-fetch": "^3.1.5" - } - }, - "node_modules/@stacks/connect/node_modules/@stacks/profile": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/@stacks/profile/-/profile-4.3.8.tgz", - "integrity": "sha512-aXe/O9u2O0aAslzlcERc+JV3ZAQ75/FSO3l/5TGz+le0vZ6gqoflP6lCI1t3kPy0l6vnZjIUnwUDFR6JOmAHrQ==", - "dependencies": { - "@stacks/common": "^4.3.5", - "@stacks/network": "^4.3.5", - "@stacks/transactions": "^4.3.8", - "jsontokens": "^3.1.1", - "schema-inspector": "2.0.1", - "zone-file": "^2.0.0-beta.3" - } - }, - "node_modules/@stacks/connect/node_modules/@stacks/profile/node_modules/@stacks/network": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@stacks/network/-/network-4.3.5.tgz", - "integrity": "sha512-TC4+AkuT6qi3MoEGxTftA+4BNp99QvGnI+qtKQkoA1m0KDr8b9hSBUhugJHRhQbWuo7D6q0+JagYEGxLID29Kw==", - "dependencies": { - "@stacks/common": "^4.3.5", - "cross-fetch": "^3.1.5" - } - }, - "node_modules/@stacks/connect/node_modules/@stacks/profile/node_modules/@stacks/transactions": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/@stacks/transactions/-/transactions-4.3.8.tgz", - "integrity": "sha512-5xYYv2TdXXM9PVixB79Pr99symQ8fhbVATjempGUxtL23/XUiRiLvJZohDxIE4VQ2EzbB4g4j8Y7oqPjj0h09Q==", - "dependencies": { - "@noble/hashes": "^1.0.0", - "@noble/secp256k1": "^1.5.5", - "@stacks/common": "^4.3.5", - "@stacks/network": "^4.3.5", - "@types/node": "^18.0.4", - "@types/sha.js": "^2.4.0", - "c32check": "^1.1.3", - "lodash.clonedeep": "^4.5.0", - "ripemd160-min": "^0.0.6", - "sha.js": "^2.4.11", - "smart-buffer": "^4.1.0" - } - }, - "node_modules/@stacks/connect/node_modules/@stacks/transactions": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@stacks/transactions/-/transactions-4.3.2.tgz", - "integrity": "sha512-DzTVVCC4GQNI58asdshatv8f5zAuNKRtNbWEjs75HAmaD7x6qz73pC+BDaZwJHBBH1A3Hp8d5HC2LKlv7ymDlQ==", - "dependencies": { - "@noble/hashes": "^1.0.0", - "@noble/secp256k1": "^1.5.5", - "@stacks/common": "^4.3.2", - "@stacks/network": "^4.3.2", - "@types/node": "^14.14.43", - "@types/sha.js": "^2.4.0", - "c32check": "^1.1.3", - "lodash.clonedeep": "^4.5.0", - "ripemd160-min": "^0.0.6", - "sha.js": "^2.4.11", - "smart-buffer": "^4.1.0" - } - }, - "node_modules/@stacks/connect/node_modules/@stacks/transactions/node_modules/@types/node": { - "version": "14.18.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.54.tgz", - "integrity": "sha512-uq7O52wvo2Lggsx1x21tKZgqkJpvwCseBBPtX/nKQfpVlEsLOb11zZ1CRsWUKvJF0+lzuA9jwvA7Pr2Wt7i3xw==" - }, - "node_modules/@stacks/connect/node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/@stacks/connect/node_modules/c32check": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/c32check/-/c32check-1.1.3.tgz", - "integrity": "sha512-ADADE/PjAbJRlwpG3ShaOMbBUlJJZO7xaYSRD5Tub6PixQlgR4s36y9cvMf/YRGpkqX+QOxIdMw216iC320q9A==", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.6.0", - "cross-sha256": "^1.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@stacks/connect/node_modules/c32check/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/@stacks/connect/node_modules/jsontokens": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/jsontokens/-/jsontokens-3.1.1.tgz", - "integrity": "sha512-qABuRXXrDP1XQrUm0/59h3kEBWtbyk/lS24t98iHvuAq7gyNA2lxqSQgATsbx8DzbMfOJmkmfjwLodd96lD/kw==", - "dependencies": { - "@noble/hashes": "^1.0.0", - "@noble/secp256k1": "^1.5.5", - "base64url": "^3.0.1", - "ecdsa-sig-formatter": "^1.0.11" - } - }, - "node_modules/@stacks/connect/node_modules/schema-inspector": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/schema-inspector/-/schema-inspector-2.0.1.tgz", - "integrity": "sha512-lqR4tOVfoqf9Z8cgX/zvXuWPnTWCqrc4WSgeSPDDc1bWbMABaqdSTY98xj7iRKHOIRtKjc4M8EWCgUu5ASlHkg==", - "dependencies": { - "async": "~2.6.3" - } - }, - "node_modules/@stacks/encryption": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@stacks/encryption/-/encryption-4.3.5.tgz", - "integrity": "sha512-s7fPwGLHQc/4SMFq7W75wt5xNqUJcciDkyxSEA30I+ukFSjLlZnmxI91ElWD15MRq/oKNHBlS0URF0N37dEe1A==", - "dependencies": { - "@noble/hashes": "^1.0.0", - "@noble/secp256k1": "^1.5.5", - "@scure/bip39": "^1.1.0", - "@stacks/common": "^4.3.5", - "@types/node": "^18.0.4", - "bs58": "^5.0.0", - "ripemd160-min": "^0.0.6", - "varuint-bitcoin": "^1.1.2" - } - }, - "node_modules/@stacks/encryption/node_modules/@stacks/common": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@stacks/common/-/common-4.3.5.tgz", - "integrity": "sha512-UuViiQ7fn3vdtTe3739aRzbl+wbukekeQuXgqt8d7nB2HC2HodD7GcHhpUga165cO35CD6lQUtj3vXxJb5Ga+A==", - "dependencies": { - "@types/bn.js": "^5.1.0", - "@types/node": "^18.0.4", - "buffer": "^6.0.3" - } - }, - "node_modules/@stacks/network": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/@stacks/network/-/network-6.8.1.tgz", - "integrity": "sha512-n8M25pPbLqpSBctabtsLOTBlmPvm9EPQpTI//x7HLdt5lEjDXxauEQt0XGSvDUZwecrmztqt9xNxlciiGApRBw==", - "dependencies": { - "@stacks/common": "^6.8.1", - "cross-fetch": "^3.1.5" - } - }, - "node_modules/@stacks/prettier-config": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@stacks/prettier-config/-/prettier-config-0.0.8.tgz", - "integrity": "sha512-WpxCIB2wPk2TT0Zs9oABNQ7Y2wBx2sSqEeFtgJ1lBNY6bKT5B82l/CkbaHPmnUj0KOwauXaSv0rXnxomTNj9xA==", - "dependencies": { - "prettier": "^2.3.0" + "@stacks/common": "^6.8.1", + "cross-fetch": "^3.1.5" } }, "node_modules/@stacks/profile": { @@ -2224,370 +1886,73 @@ "dependencies": { "@stacks/common": "^6.8.1", "@stacks/network": "^6.8.1", - "@stacks/transactions": "^6.9.0", - "jsontokens": "^4.0.1", - "schema-inspector": "^2.0.2", - "zone-file": "^2.0.0-beta.3" - } - }, - "node_modules/@stacks/profile/node_modules/@noble/hashes": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", - "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@stacks/profile/node_modules/@stacks/transactions": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/@stacks/transactions/-/transactions-6.9.0.tgz", - "integrity": "sha512-hSs9+0Ew++GwMZMgPObOx0iVCQRxkiCqI+DHdPEikAmg2utpyLh2/txHOjfSIkQHvcBfJJ6O5KphmxDP4gUqiA==", - "dependencies": { - "@noble/hashes": "1.1.5", - "@noble/secp256k1": "1.7.1", - "@stacks/common": "^6.8.1", - "@stacks/network": "^6.8.1", - "c32check": "^2.0.0", - "lodash.clonedeep": "^4.5.0" - } - }, - "node_modules/@stacks/stacks-blockchain-api-types": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@stacks/stacks-blockchain-api-types/-/stacks-blockchain-api-types-6.1.1.tgz", - "integrity": "sha512-Mw5dBPx3DySPupwaq0iBdm1WdEVXIfhjUVaTjI2iSyzWz4Fgs3U7JCaAezLbgNu7Q69c/ZN4JUDWuo9FVjy7oA==" - }, - "node_modules/@stacks/storage": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/@stacks/storage/-/storage-6.9.0.tgz", - "integrity": "sha512-aZ3tOnwRSk5cHQh9ButhfHDvAylNVxPRQzeSB8PydHfyib4XL7fSAJwizzEWNgJV4dovqW2Nsy8gm/4rM/oFKQ==", - "dependencies": { - "@stacks/auth": "^6.9.0", - "@stacks/common": "^6.8.1", - "@stacks/encryption": "^6.9.0", - "@stacks/network": "^6.8.1", - "base64-js": "^1.5.1", - "jsontokens": "^4.0.1" - } - }, - "node_modules/@stacks/storage/node_modules/@noble/hashes": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", - "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@stacks/storage/node_modules/@scure/bip39": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", - "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "@noble/hashes": "~1.1.1", - "@scure/base": "~1.1.0" - } - }, - "node_modules/@stacks/storage/node_modules/@stacks/encryption": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/@stacks/encryption/-/encryption-6.9.0.tgz", - "integrity": "sha512-hbpZ47eYgw9ZH5ly+GSgvw2Ffsu9L6d++2XIhvYSzL7yxYl4m1+FV5QYdJthJ2AS3vi8cI5otE254HTfCrhKzg==", - "dependencies": { - "@noble/hashes": "1.1.5", - "@noble/secp256k1": "1.7.1", - "@scure/bip39": "1.1.0", - "@stacks/common": "^6.8.1", - "@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/@stacks/transactions": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/@stacks/transactions/-/transactions-4.3.8.tgz", - "integrity": "sha512-5xYYv2TdXXM9PVixB79Pr99symQ8fhbVATjempGUxtL23/XUiRiLvJZohDxIE4VQ2EzbB4g4j8Y7oqPjj0h09Q==", - "dependencies": { - "@noble/hashes": "^1.0.0", - "@noble/secp256k1": "^1.5.5", - "@stacks/common": "^4.3.5", - "@stacks/network": "^4.3.5", - "@types/node": "^18.0.4", - "@types/sha.js": "^2.4.0", - "c32check": "^1.1.3", - "lodash.clonedeep": "^4.5.0", - "ripemd160-min": "^0.0.6", - "sha.js": "^2.4.11", - "smart-buffer": "^4.1.0" - } - }, - "node_modules/@stacks/transactions/node_modules/@stacks/common": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@stacks/common/-/common-4.3.5.tgz", - "integrity": "sha512-UuViiQ7fn3vdtTe3739aRzbl+wbukekeQuXgqt8d7nB2HC2HodD7GcHhpUga165cO35CD6lQUtj3vXxJb5Ga+A==", - "dependencies": { - "@types/bn.js": "^5.1.0", - "@types/node": "^18.0.4", - "buffer": "^6.0.3" - } - }, - "node_modules/@stacks/transactions/node_modules/@stacks/network": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@stacks/network/-/network-4.3.5.tgz", - "integrity": "sha512-TC4+AkuT6qi3MoEGxTftA+4BNp99QvGnI+qtKQkoA1m0KDr8b9hSBUhugJHRhQbWuo7D6q0+JagYEGxLID29Kw==", - "dependencies": { - "@stacks/common": "^4.3.5", - "cross-fetch": "^3.1.5" - } - }, - "node_modules/@stacks/transactions/node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/@stacks/transactions/node_modules/c32check": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/c32check/-/c32check-1.1.3.tgz", - "integrity": "sha512-ADADE/PjAbJRlwpG3ShaOMbBUlJJZO7xaYSRD5Tub6PixQlgR4s36y9cvMf/YRGpkqX+QOxIdMw216iC320q9A==", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.6.0", - "cross-sha256": "^1.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@stacks/transactions/node_modules/c32check/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/@stacks/wallet-sdk": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@stacks/wallet-sdk/-/wallet-sdk-5.0.3.tgz", - "integrity": "sha512-9Alqqer8cauLLEuhSA3ryPTfCw3XZiZkZBbyed9+oNsha3beIBly5lspU2GHdz2alnsJ5jisjDUZeuDYVRFEuA==", - "dependencies": { - "@scure/bip32": "^1.1.0", - "@scure/bip39": "^1.1.0", - "@stacks/auth": "^5.0.3", - "@stacks/common": "^5.0.3", - "@stacks/encryption": "^5.0.3", - "@stacks/network": "^5.0.3", - "@stacks/profile": "^5.0.3", - "@stacks/storage": "^5.0.3", - "@stacks/transactions": "^5.0.3", - "bitcoinjs-lib": "^5.2.0", - "buffer": "^6.0.3", - "c32check": "^2.0.0", - "jsontokens": "^4.0.1", - "triplesec": "^4.0.3", - "zone-file": "^2.0.0-beta.3" - } - }, - "node_modules/@stacks/wallet-sdk/node_modules/@stacks/auth": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@stacks/auth/-/auth-5.0.3.tgz", - "integrity": "sha512-bFP/H1IFAxU2FUu3KR0meUgXdmagkpjV9wAC7b5UDCVHWanU3c/GfCh0CIw10FbXov2aYlQJpCEFMBxweATVjg==", - "dependencies": { - "@stacks/common": "^5.0.3", - "@stacks/encryption": "^5.0.3", - "@stacks/network": "^5.0.3", - "@stacks/profile": "^5.0.3", - "cross-fetch": "^3.1.5", - "jsontokens": "^4.0.1", - "query-string": "^6.13.1" - } - }, - "node_modules/@stacks/wallet-sdk/node_modules/@stacks/common": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@stacks/common/-/common-5.0.3.tgz", - "integrity": "sha512-0c1L1xQAFI4p0oB8BrwU1ic3q91plceztzT6ZQizxWfAJFnELdYyO/nJlq9a3yIVV90iaLYgvYBTPW3b7LWrdg==", - "dependencies": { - "@types/bn.js": "^5.1.0", - "@types/node": "^18.0.4" - } - }, - "node_modules/@stacks/wallet-sdk/node_modules/@stacks/encryption": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@stacks/encryption/-/encryption-5.0.3.tgz", - "integrity": "sha512-wM5wE2ldssJWF5zrE5MbGlBSqI6ZMDSWGtvg2AOqOG2ChoBPxcuVOdyj4ziBbX4vtdu61jjr7LLP+90/0MLcpQ==", - "dependencies": { - "@noble/hashes": "^1.0.0", - "@noble/secp256k1": "^1.5.5", - "@scure/bip39": "^1.1.0", - "@stacks/common": "^5.0.3", - "@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/@stacks/wallet-sdk/node_modules/@stacks/network": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@stacks/network/-/network-5.0.3.tgz", - "integrity": "sha512-9ZSKktElpgDst1SVI5K4ocmsrIKrIHVQMRTfLkVarNqMnk9zliLMXrmXef6Z3rszU7JbUWGbb8+F3ubhpfqZxg==", - "dependencies": { - "@stacks/common": "^5.0.3", - "cross-fetch": "^3.1.5" - } - }, - "node_modules/@stacks/wallet-sdk/node_modules/@stacks/profile": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@stacks/profile/-/profile-5.0.3.tgz", - "integrity": "sha512-B+gAMK8svDrgFWGJu2EkokkgjkXUEJG+zsZuK3P1Aq2qCS2EiO+O0gLhUi8p38BiKEpkUVY4mI34QCzMn9zWiA==", - "dependencies": { - "@stacks/common": "^5.0.3", - "@stacks/network": "^5.0.3", - "@stacks/transactions": "^5.0.3", + "@stacks/transactions": "^6.9.0", "jsontokens": "^4.0.1", - "schema-inspector": "2.0.1", + "schema-inspector": "^2.0.2", "zone-file": "^2.0.0-beta.3" } }, - "node_modules/@stacks/wallet-sdk/node_modules/@stacks/storage": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@stacks/storage/-/storage-5.0.3.tgz", - "integrity": "sha512-5JuQ5rUjXNtx3hhiUGWp5KTuGg4pvxXmYnro6u+3Bl6kN8Q5ZMwf0b5fWwCoRvxIPSPuMTsp9P+tlb9N/cWNVA==", + "node_modules/@stacks/stacks-blockchain-api-types": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@stacks/stacks-blockchain-api-types/-/stacks-blockchain-api-types-6.1.1.tgz", + "integrity": "sha512-Mw5dBPx3DySPupwaq0iBdm1WdEVXIfhjUVaTjI2iSyzWz4Fgs3U7JCaAezLbgNu7Q69c/ZN4JUDWuo9FVjy7oA==" + }, + "node_modules/@stacks/storage": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/@stacks/storage/-/storage-6.9.0.tgz", + "integrity": "sha512-aZ3tOnwRSk5cHQh9ButhfHDvAylNVxPRQzeSB8PydHfyib4XL7fSAJwizzEWNgJV4dovqW2Nsy8gm/4rM/oFKQ==", "dependencies": { - "@stacks/auth": "^5.0.3", - "@stacks/common": "^5.0.3", - "@stacks/encryption": "^5.0.3", - "@stacks/network": "^5.0.3", + "@stacks/auth": "^6.9.0", + "@stacks/common": "^6.8.1", + "@stacks/encryption": "^6.9.0", + "@stacks/network": "^6.8.1", "base64-js": "^1.5.1", "jsontokens": "^4.0.1" } }, - "node_modules/@stacks/wallet-sdk/node_modules/@stacks/transactions": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@stacks/transactions/-/transactions-5.0.3.tgz", - "integrity": "sha512-rLe7QYU+tzTs1Yudo82zh7oiWAwGxGiunFehgIZ6VgLgo/Oarf8+DWmmaAxSZpCsecxl4cuQxE3bDWwJZAA9rg==", + "node_modules/@stacks/transactions": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/@stacks/transactions/-/transactions-6.9.0.tgz", + "integrity": "sha512-hSs9+0Ew++GwMZMgPObOx0iVCQRxkiCqI+DHdPEikAmg2utpyLh2/txHOjfSIkQHvcBfJJ6O5KphmxDP4gUqiA==", "dependencies": { - "@noble/hashes": "^1.0.0", - "@noble/secp256k1": "^1.5.5", - "@stacks/common": "^5.0.3", - "@stacks/network": "^5.0.3", + "@noble/hashes": "1.1.5", + "@noble/secp256k1": "1.7.1", + "@stacks/common": "^6.8.1", + "@stacks/network": "^6.8.1", "c32check": "^2.0.0", "lodash.clonedeep": "^4.5.0" } }, - "node_modules/@stacks/wallet-sdk/node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/@stacks/wallet-sdk/node_modules/bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" - }, - "node_modules/@stacks/wallet-sdk/node_modules/bip32": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/bip32/-/bip32-2.0.6.tgz", - "integrity": "sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA==", - "dependencies": { - "@types/node": "10.12.18", - "bs58check": "^2.1.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "tiny-secp256k1": "^1.1.3", - "typeforce": "^1.11.5", - "wif": "^2.0.6" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@stacks/wallet-sdk/node_modules/bip32/node_modules/@types/node": { - "version": "10.12.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz", - "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==" - }, - "node_modules/@stacks/wallet-sdk/node_modules/bitcoinjs-lib": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-5.2.0.tgz", - "integrity": "sha512-5DcLxGUDejgNBYcieMIUfjORtUeNWl828VWLHJGVKZCb4zIS1oOySTUr0LGmcqJBQgTBz3bGbRQla4FgrdQEIQ==", - "dependencies": { - "bech32": "^1.1.2", - "bip174": "^2.0.1", - "bip32": "^2.0.4", - "bip66": "^1.1.0", - "bitcoin-ops": "^1.4.0", - "bs58check": "^2.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.3", - "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "^1.0.1", - "randombytes": "^2.0.1", - "tiny-secp256k1": "^1.1.1", - "typeforce": "^1.11.3", - "varuint-bitcoin": "^1.0.4", - "wif": "^2.0.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@stacks/wallet-sdk/node_modules/bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/@stacks/wallet-sdk/node_modules/bs58check/node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "dependencies": { - "base-x": "^3.0.2" - } + "node_modules/@stacks/transactions/node_modules/@noble/hashes": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", + "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] }, - "node_modules/@stacks/wallet-sdk/node_modules/schema-inspector": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/schema-inspector/-/schema-inspector-2.0.1.tgz", - "integrity": "sha512-lqR4tOVfoqf9Z8cgX/zvXuWPnTWCqrc4WSgeSPDDc1bWbMABaqdSTY98xj7iRKHOIRtKjc4M8EWCgUu5ASlHkg==", + "node_modules/@stacks/wallet-sdk": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/@stacks/wallet-sdk/-/wallet-sdk-6.9.0.tgz", + "integrity": "sha512-cNp8gilFYovVgFYSd+g+2ybVgDcY0vshhi23lweeiTViGAogURfDvZgczwQ9yoYzdHA8vMGy5PxV5W9dbrrbcQ==", "dependencies": { - "async": "~2.6.3" + "@scure/bip32": "1.1.3", + "@scure/bip39": "1.1.0", + "@stacks/auth": "^6.9.0", + "@stacks/common": "^6.8.1", + "@stacks/encryption": "^6.9.0", + "@stacks/network": "^6.8.1", + "@stacks/profile": "^6.9.0", + "@stacks/storage": "^6.9.0", + "@stacks/transactions": "^6.9.0", + "buffer": "^6.0.3", + "c32check": "^2.0.0", + "jsontokens": "^4.0.1", + "triplesec": "^4.0.3", + "zone-file": "^2.0.0-beta.3" } }, "node_modules/@stencil/core": { @@ -3362,9 +2727,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": "*" } @@ -4071,6 +3436,87 @@ "varuint-bitcoin": "^1.1.2" } }, + "node_modules/@zondax/ledger-stacks/node_modules/@stacks/common": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/@stacks/common/-/common-4.3.5.tgz", + "integrity": "sha512-UuViiQ7fn3vdtTe3739aRzbl+wbukekeQuXgqt8d7nB2HC2HodD7GcHhpUga165cO35CD6lQUtj3vXxJb5Ga+A==", + "dependencies": { + "@types/bn.js": "^5.1.0", + "@types/node": "^18.0.4", + "buffer": "^6.0.3" + } + }, + "node_modules/@zondax/ledger-stacks/node_modules/@stacks/network": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/@stacks/network/-/network-4.3.5.tgz", + "integrity": "sha512-TC4+AkuT6qi3MoEGxTftA+4BNp99QvGnI+qtKQkoA1m0KDr8b9hSBUhugJHRhQbWuo7D6q0+JagYEGxLID29Kw==", + "dependencies": { + "@stacks/common": "^4.3.5", + "cross-fetch": "^3.1.5" + } + }, + "node_modules/@zondax/ledger-stacks/node_modules/@stacks/transactions": { + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/@stacks/transactions/-/transactions-4.3.8.tgz", + "integrity": "sha512-5xYYv2TdXXM9PVixB79Pr99symQ8fhbVATjempGUxtL23/XUiRiLvJZohDxIE4VQ2EzbB4g4j8Y7oqPjj0h09Q==", + "dependencies": { + "@noble/hashes": "^1.0.0", + "@noble/secp256k1": "^1.5.5", + "@stacks/common": "^4.3.5", + "@stacks/network": "^4.3.5", + "@types/node": "^18.0.4", + "@types/sha.js": "^2.4.0", + "c32check": "^1.1.3", + "lodash.clonedeep": "^4.5.0", + "ripemd160-min": "^0.0.6", + "sha.js": "^2.4.11", + "smart-buffer": "^4.1.0" + } + }, + "node_modules/@zondax/ledger-stacks/node_modules/base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/@zondax/ledger-stacks/node_modules/c32check": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/c32check/-/c32check-1.1.3.tgz", + "integrity": "sha512-ADADE/PjAbJRlwpG3ShaOMbBUlJJZO7xaYSRD5Tub6PixQlgR4s36y9cvMf/YRGpkqX+QOxIdMw216iC320q9A==", + "dependencies": { + "base-x": "^3.0.8", + "buffer": "^5.6.0", + "cross-sha256": "^1.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@zondax/ledger-stacks/node_modules/c32check/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "node_modules/abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", @@ -4740,11 +4186,6 @@ "sha256-uint8array": "^0.10.3" } }, - "node_modules/bitcoin-ops": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz", - "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==" - }, "node_modules/bitcoinjs-lib": { "version": "6.1.5", "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-6.1.5.tgz", @@ -6061,14 +5502,6 @@ } } }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "engines": { - "node": ">=0.10" - } - }, "node_modules/deep-eql": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", @@ -7642,14 +7075,6 @@ "node": ">=8" } }, - "node_modules/filter-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/finalhandler": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", @@ -10282,11 +9707,6 @@ "node": ">= 8" } }, - "node_modules/merkle-lib": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/merkle-lib/-/merkle-lib-2.0.10.tgz", - "integrity": "sha512-XrNQvUbn1DL5hKNe46Ccs+Tu3/PYOlrcZILuGUhb95oKBPjc/nmIC8D462PQkipVDGKRvwhn+QFg2cCdIvmDJA==" - }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -11394,6 +10814,7 @@ "version": "2.8.8", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, "bin": { "prettier": "bin-prettier.js" }, @@ -11566,14 +10987,6 @@ "node": ">=6" } }, - "node_modules/pushdata-bitcoin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", - "integrity": "sha512-hw7rcYTJRAl4olM8Owe8x0fBuJJ+WGbMhQuLWOXEMN3PxPCKQHRkhfL+XG0+iXUmSHjkMmb3Ba55Mt21cZc9kQ==", - "dependencies": { - "bitcoin-ops": "^1.3.0" - } - }, "node_modules/qr-code-styling": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/qr-code-styling/-/qr-code-styling-1.5.0.tgz", @@ -11592,37 +11005,6 @@ "resolved": "https://registry.npmjs.org/qrcode-generator/-/qrcode-generator-1.4.4.tgz", "integrity": "sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw==" }, - "node_modules/qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/query-string": { - "version": "6.14.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz", - "integrity": "sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==", - "dependencies": { - "decode-uri-component": "^0.2.0", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -12969,14 +12351,6 @@ "wbuf": "^1.7.3" } }, - "node_modules/split-on-first": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", - "engines": { - "node": ">=6" - } - }, "node_modules/stackback": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", @@ -13024,14 +12398,6 @@ "readable-stream": "^3.5.0" } }, - "node_modules/strict-uri-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", - "engines": { - "node": ">=4" - } - }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -13417,27 +12783,6 @@ "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, - "node_modules/tiny-secp256k1": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz", - "integrity": "sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA==", - "hasInstallScript": true, - "dependencies": { - "bindings": "^1.3.0", - "bn.js": "^4.11.8", - "create-hmac": "^1.1.7", - "elliptic": "^6.4.0", - "nan": "^2.13.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/tiny-secp256k1/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, "node_modules/tinybench": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.5.1.tgz", @@ -14023,20 +13368,6 @@ "punycode": "^2.1.0" } }, - "node_modules/url": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.1.tgz", - "integrity": "sha512-rWS3H04/+mzzJkv0eZ7vEDGiQbgquI1fGfOad6zKvgYQi1SzMmhl7c/DdRGxhaWrVH6z0qWITo8rpnxK/RfEhA==", - "dependencies": { - "punycode": "^1.4.1", - "qs": "^6.11.0" - } - }, - "node_modules/url/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" - }, "node_modules/use-isomorphic-layout-effect": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", @@ -15788,19 +15119,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", @@ -16004,29 +15328,36 @@ "integrity": "sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q==" }, "@scure/bip32": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.2.tgz", - "integrity": "sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.3.tgz", + "integrity": "sha512-dSH3+LCWONlSNQuF34xZrG6Xas7tp2jSSqHb/pMfXWM0vKE4JZOtK3uJfoWouUVW5IGlls75HkXmYLldZ8ySgQ==", "requires": { - "@noble/curves": "~1.2.0", - "@noble/hashes": "~1.3.2", - "@scure/base": "~1.1.2" + "@noble/hashes": "~1.1.3", + "@noble/secp256k1": "~1.7.0", + "@scure/base": "~1.1.0" }, "dependencies": { "@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==" + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", + "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==" } } }, "@scure/bip39": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.1.tgz", - "integrity": "sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", + "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", "requires": { - "@noble/hashes": "~1.3.0", + "@noble/hashes": "~1.1.1", "@scure/base": "~1.1.0" + }, + "dependencies": { + "@noble/hashes": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", + "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==" + } } }, "@scure/btc-signer": { @@ -16041,21 +15372,22 @@ } }, "@secretkeylabs/xverse-core": { - "version": "6.0.1", - "resolved": "https://npm.pkg.github.com/download/@secretkeylabs/xverse-core/6.0.1/32e8e3439cf018882e3b7cb3f65504921dd1aac3", - "integrity": "sha512-T5E3cTJT06NsvHrAN9EZAP9gkWD+gYwPwNUXhaKTOj1YxkAUOTREyhVkNmlqbTLOHx8UtxHzcjOZju40bqOLkA==", + "version": "7.0.0", + "resolved": "https://npm.pkg.github.com/download/@secretkeylabs/xverse-core/7.0.0/a9d4470c0bee31b2b751b0f2a3e064d51453ddd4", + "integrity": "sha512-8z5g5dHFin0d9695EwI0t6a/Ji7vzUenCq1AHpTtsj5Z1/SlH6Oa7p95fyJ1usBH99M5NQAYFMBGkjOcNE+jQw==", "requires": { "@bitcoinerlab/secp256k1": "^1.0.2", "@noble/curves": "^1.2.0", "@noble/secp256k1": "^1.7.1", "@scure/base": "^1.1.1", "@scure/btc-signer": "1.1.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", + "@stacks/auth": "^6.9.0", + "@stacks/connect": "^7.4.1", + "@stacks/encryption": "6.9.0", + "@stacks/network": "6.8.1", + "@stacks/storage": "^6.9.0", + "@stacks/transactions": "6.9.0", + "@stacks/wallet-sdk": "^6.9.0", "@zondax/ledger-stacks": "^1.0.4", "axios": "1.6.2", "base64url": "^3.0.1", @@ -16078,115 +15410,10 @@ "varuint-bitcoin": "^1.1.2" }, "dependencies": { - "@noble/hashes": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", - "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==" - }, - "@scure/bip39": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", - "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", - "requires": { - "@noble/hashes": "~1.1.1", - "@scure/base": "~1.1.0" - } - }, - "@stacks/encryption": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@stacks/encryption/-/encryption-6.1.1.tgz", - "integrity": "sha512-tS0Foo83h1ixwxCAbFh3uX0Hty3b3EFcqOb62udgBFlDmsjBD9Pld8t+ApKLTwiad6YhRu6rW+hDAJmhYQToMw==", - "requires": { - "@noble/hashes": "1.1.5", - "@noble/secp256k1": "1.7.1", - "@scure/bip39": "1.1.0", - "@stacks/common": "^6.0.0", - "@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": "4.3.5", - "resolved": "https://registry.npmjs.org/@stacks/network/-/network-4.3.5.tgz", - "integrity": "sha512-TC4+AkuT6qi3MoEGxTftA+4BNp99QvGnI+qtKQkoA1m0KDr8b9hSBUhugJHRhQbWuo7D6q0+JagYEGxLID29Kw==", - "requires": { - "@stacks/common": "^4.3.5", - "cross-fetch": "^3.1.5" - }, - "dependencies": { - "@stacks/common": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@stacks/common/-/common-4.3.5.tgz", - "integrity": "sha512-UuViiQ7fn3vdtTe3739aRzbl+wbukekeQuXgqt8d7nB2HC2HodD7GcHhpUga165cO35CD6lQUtj3vXxJb5Ga+A==", - "requires": { - "@types/bn.js": "^5.1.0", - "@types/node": "^18.0.4", - "buffer": "^6.0.3" - } - } - } - }, - "@stacks/transactions": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@stacks/transactions/-/transactions-4.3.5.tgz", - "integrity": "sha512-tTkuVlIfpD6QKF0vHoJvUZ2h3Ua82l4HhxzzVs3ZKr5M9WYULZQo1RMaMloJLgUMxsexDZ1Mib6ADiXgBefrBQ==", - "requires": { - "@noble/hashes": "^1.0.0", - "@noble/secp256k1": "^1.5.5", - "@stacks/common": "^4.3.5", - "@stacks/network": "^4.3.5", - "@types/node": "^18.0.4", - "@types/sha.js": "^2.4.0", - "c32check": "^1.1.3", - "lodash.clonedeep": "^4.5.0", - "ripemd160-min": "^0.0.6", - "sha.js": "^2.4.11", - "smart-buffer": "^4.1.0" - }, - "dependencies": { - "@stacks/common": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@stacks/common/-/common-4.3.5.tgz", - "integrity": "sha512-UuViiQ7fn3vdtTe3739aRzbl+wbukekeQuXgqt8d7nB2HC2HodD7GcHhpUga165cO35CD6lQUtj3vXxJb5Ga+A==", - "requires": { - "@types/bn.js": "^5.1.0", - "@types/node": "^18.0.4", - "buffer": "^6.0.3" - } - }, - "c32check": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/c32check/-/c32check-1.1.3.tgz", - "integrity": "sha512-ADADE/PjAbJRlwpG3ShaOMbBUlJJZO7xaYSRD5Tub6PixQlgR4s36y9cvMf/YRGpkqX+QOxIdMw216iC320q9A==", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.6.0", - "cross-sha256": "^1.2.0" - }, - "dependencies": { - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - } - } - } - } - }, - "base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "requires": { - "safe-buffer": "^5.0.1" - } + "@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==" }, "bip39": { "version": "3.0.3", @@ -16197,13 +15424,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==" - } } } } @@ -16225,38 +15445,6 @@ "@stacks/profile": "^6.9.0", "cross-fetch": "^3.1.5", "jsontokens": "^4.0.1" - }, - "dependencies": { - "@noble/hashes": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", - "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==" - }, - "@scure/bip39": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", - "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", - "requires": { - "@noble/hashes": "~1.1.1", - "@scure/base": "~1.1.0" - } - }, - "@stacks/encryption": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/@stacks/encryption/-/encryption-6.9.0.tgz", - "integrity": "sha512-hbpZ47eYgw9ZH5ly+GSgvw2Ffsu9L6d++2XIhvYSzL7yxYl4m1+FV5QYdJthJ2AS3vi8cI5otE254HTfCrhKzg==", - "requires": { - "@noble/hashes": "1.1.5", - "@noble/secp256k1": "1.7.1", - "@scure/bip39": "1.1.0", - "@stacks/common": "^6.8.1", - "@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/common": { @@ -16269,204 +15457,46 @@ } }, "@stacks/connect": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/@stacks/connect/-/connect-6.10.2.tgz", - "integrity": "sha512-rixsMWhSIMGS8ClUgfNKA7PLV4ikr7SpjFUcVuKCmEsrRMnDdcvuhiY87hLPiatD0W6qMWZVR+BaIbHIgvp9aQ==", - "requires": { - "@stacks/auth": "4.3.2", - "@stacks/connect-ui": "5.5.4", - "@stacks/network": "4.3.2", - "@stacks/prettier-config": "0.0.8", - "@stacks/transactions": "4.3.2", - "bn.js": "^5.2.0", - "buffer": "6.0.3", - "jsontokens": "3.1.1", - "readable-stream": "^3.6.0", - "url": "^0.11.0" - }, - "dependencies": { - "@stacks/auth": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@stacks/auth/-/auth-4.3.2.tgz", - "integrity": "sha512-8Ttq5dMmgVNUyaYR2q5pr3cIIiNHtD8HiVyB+Sui25T047twuWRKC5ZsxN6W28SPlLTGXKu/AFuDKoZDC6sAvQ==", - "requires": { - "@stacks/common": "^4.3.2", - "@stacks/encryption": "^4.3.2", - "@stacks/network": "^4.3.2", - "@stacks/profile": "^4.3.2", - "cross-fetch": "^3.1.5", - "jsontokens": "^3.1.1", - "query-string": "^6.13.1" - } - }, - "@stacks/common": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@stacks/common/-/common-4.3.5.tgz", - "integrity": "sha512-UuViiQ7fn3vdtTe3739aRzbl+wbukekeQuXgqt8d7nB2HC2HodD7GcHhpUga165cO35CD6lQUtj3vXxJb5Ga+A==", - "requires": { - "@types/bn.js": "^5.1.0", - "@types/node": "^18.0.4", - "buffer": "^6.0.3" - } - }, - "@stacks/network": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@stacks/network/-/network-4.3.2.tgz", - "integrity": "sha512-8QgsGjAHwRwCDIzbE+nmqD2Kk589svmDLHNm1PJWL5EGpZyJK5su/y36ZgmTMVDvQwNfr9/8GFoaAbBlArvZyw==", - "requires": { - "@stacks/common": "^4.3.2", - "cross-fetch": "^3.1.5" - } - }, - "@stacks/profile": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/@stacks/profile/-/profile-4.3.8.tgz", - "integrity": "sha512-aXe/O9u2O0aAslzlcERc+JV3ZAQ75/FSO3l/5TGz+le0vZ6gqoflP6lCI1t3kPy0l6vnZjIUnwUDFR6JOmAHrQ==", - "requires": { - "@stacks/common": "^4.3.5", - "@stacks/network": "^4.3.5", - "@stacks/transactions": "^4.3.8", - "jsontokens": "^3.1.1", - "schema-inspector": "2.0.1", - "zone-file": "^2.0.0-beta.3" - }, - "dependencies": { - "@stacks/network": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@stacks/network/-/network-4.3.5.tgz", - "integrity": "sha512-TC4+AkuT6qi3MoEGxTftA+4BNp99QvGnI+qtKQkoA1m0KDr8b9hSBUhugJHRhQbWuo7D6q0+JagYEGxLID29Kw==", - "requires": { - "@stacks/common": "^4.3.5", - "cross-fetch": "^3.1.5" - } - }, - "@stacks/transactions": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/@stacks/transactions/-/transactions-4.3.8.tgz", - "integrity": "sha512-5xYYv2TdXXM9PVixB79Pr99symQ8fhbVATjempGUxtL23/XUiRiLvJZohDxIE4VQ2EzbB4g4j8Y7oqPjj0h09Q==", - "requires": { - "@noble/hashes": "^1.0.0", - "@noble/secp256k1": "^1.5.5", - "@stacks/common": "^4.3.5", - "@stacks/network": "^4.3.5", - "@types/node": "^18.0.4", - "@types/sha.js": "^2.4.0", - "c32check": "^1.1.3", - "lodash.clonedeep": "^4.5.0", - "ripemd160-min": "^0.0.6", - "sha.js": "^2.4.11", - "smart-buffer": "^4.1.0" - } - } - } - }, - "@stacks/transactions": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@stacks/transactions/-/transactions-4.3.2.tgz", - "integrity": "sha512-DzTVVCC4GQNI58asdshatv8f5zAuNKRtNbWEjs75HAmaD7x6qz73pC+BDaZwJHBBH1A3Hp8d5HC2LKlv7ymDlQ==", - "requires": { - "@noble/hashes": "^1.0.0", - "@noble/secp256k1": "^1.5.5", - "@stacks/common": "^4.3.2", - "@stacks/network": "^4.3.2", - "@types/node": "^14.14.43", - "@types/sha.js": "^2.4.0", - "c32check": "^1.1.3", - "lodash.clonedeep": "^4.5.0", - "ripemd160-min": "^0.0.6", - "sha.js": "^2.4.11", - "smart-buffer": "^4.1.0" - }, - "dependencies": { - "@types/node": { - "version": "14.18.54", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.54.tgz", - "integrity": "sha512-uq7O52wvo2Lggsx1x21tKZgqkJpvwCseBBPtX/nKQfpVlEsLOb11zZ1CRsWUKvJF0+lzuA9jwvA7Pr2Wt7i3xw==" - } - } - }, - "base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "c32check": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/c32check/-/c32check-1.1.3.tgz", - "integrity": "sha512-ADADE/PjAbJRlwpG3ShaOMbBUlJJZO7xaYSRD5Tub6PixQlgR4s36y9cvMf/YRGpkqX+QOxIdMw216iC320q9A==", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.6.0", - "cross-sha256": "^1.2.0" - }, - "dependencies": { - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - } - } - }, - "jsontokens": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/jsontokens/-/jsontokens-3.1.1.tgz", - "integrity": "sha512-qABuRXXrDP1XQrUm0/59h3kEBWtbyk/lS24t98iHvuAq7gyNA2lxqSQgATsbx8DzbMfOJmkmfjwLodd96lD/kw==", - "requires": { - "@noble/hashes": "^1.0.0", - "@noble/secp256k1": "^1.5.5", - "base64url": "^3.0.1", - "ecdsa-sig-formatter": "^1.0.11" - } - }, - "schema-inspector": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/schema-inspector/-/schema-inspector-2.0.1.tgz", - "integrity": "sha512-lqR4tOVfoqf9Z8cgX/zvXuWPnTWCqrc4WSgeSPDDc1bWbMABaqdSTY98xj7iRKHOIRtKjc4M8EWCgUu5ASlHkg==", - "requires": { - "async": "~2.6.3" - } - } + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@stacks/connect/-/connect-7.4.1.tgz", + "integrity": "sha512-kvF7Fnx8oMHNi/9At6UI6kThey+gYlYlbtsxhNL2VqflReXI8z3EndaMJ1WrD55ePIOoydAzV/Fx0rdNFjd4rQ==", + "requires": { + "@stacks/auth": "^6.1.1", + "@stacks/connect-ui": "6.1.2", + "@stacks/network": "^6.1.1", + "@stacks/profile": "^6.1.1", + "@stacks/transactions": "^6.1.1", + "jsontokens": "^4.0.1" } }, "@stacks/connect-ui": { - "version": "5.5.4", - "resolved": "https://registry.npmjs.org/@stacks/connect-ui/-/connect-ui-5.5.4.tgz", - "integrity": "sha512-xstC05PoxpPeA2HWytkJp/NJBtDEPDUoHuUyyvpuqS7f95rsHyx/tLFWv9ElxWiIbeMPPDEQipoy6S1qnZb8jw==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@stacks/connect-ui/-/connect-ui-6.1.2.tgz", + "integrity": "sha512-V4gUINXRDB2MO6YHk/JZZeApSnANrMFvIRv9qLBaJPamKsgeiCOBkiC88T7ucLVCz+NvCmS93Ntg4wytDIqdOg==", "requires": { "@stencil/core": "^2.17.1" } }, "@stacks/encryption": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@stacks/encryption/-/encryption-4.3.5.tgz", - "integrity": "sha512-s7fPwGLHQc/4SMFq7W75wt5xNqUJcciDkyxSEA30I+ukFSjLlZnmxI91ElWD15MRq/oKNHBlS0URF0N37dEe1A==", + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/@stacks/encryption/-/encryption-6.9.0.tgz", + "integrity": "sha512-hbpZ47eYgw9ZH5ly+GSgvw2Ffsu9L6d++2XIhvYSzL7yxYl4m1+FV5QYdJthJ2AS3vi8cI5otE254HTfCrhKzg==", "requires": { - "@noble/hashes": "^1.0.0", - "@noble/secp256k1": "^1.5.5", - "@scure/bip39": "^1.1.0", - "@stacks/common": "^4.3.5", + "@noble/hashes": "1.1.5", + "@noble/secp256k1": "1.7.1", + "@scure/bip39": "1.1.0", + "@stacks/common": "^6.8.1", "@types/node": "^18.0.4", + "base64-js": "^1.5.1", "bs58": "^5.0.0", "ripemd160-min": "^0.0.6", "varuint-bitcoin": "^1.1.2" }, "dependencies": { - "@stacks/common": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@stacks/common/-/common-4.3.5.tgz", - "integrity": "sha512-UuViiQ7fn3vdtTe3739aRzbl+wbukekeQuXgqt8d7nB2HC2HodD7GcHhpUga165cO35CD6lQUtj3vXxJb5Ga+A==", - "requires": { - "@types/bn.js": "^5.1.0", - "@types/node": "^18.0.4", - "buffer": "^6.0.3" - } + "@noble/hashes": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", + "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==" } } }, @@ -16479,14 +15509,6 @@ "cross-fetch": "^3.1.5" } }, - "@stacks/prettier-config": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@stacks/prettier-config/-/prettier-config-0.0.8.tgz", - "integrity": "sha512-WpxCIB2wPk2TT0Zs9oABNQ7Y2wBx2sSqEeFtgJ1lBNY6bKT5B82l/CkbaHPmnUj0KOwauXaSv0rXnxomTNj9xA==", - "requires": { - "prettier": "^2.3.0" - } - }, "@stacks/profile": { "version": "6.9.0", "resolved": "https://registry.npmjs.org/@stacks/profile/-/profile-6.9.0.tgz", @@ -16498,26 +15520,6 @@ "jsontokens": "^4.0.1", "schema-inspector": "^2.0.2", "zone-file": "^2.0.0-beta.3" - }, - "dependencies": { - "@noble/hashes": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", - "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==" - }, - "@stacks/transactions": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/@stacks/transactions/-/transactions-6.9.0.tgz", - "integrity": "sha512-hSs9+0Ew++GwMZMgPObOx0iVCQRxkiCqI+DHdPEikAmg2utpyLh2/txHOjfSIkQHvcBfJJ6O5KphmxDP4gUqiA==", - "requires": { - "@noble/hashes": "1.1.5", - "@noble/secp256k1": "1.7.1", - "@stacks/common": "^6.8.1", - "@stacks/network": "^6.8.1", - "c32check": "^2.0.0", - "lodash.clonedeep": "^4.5.0" - } - } } }, "@stacks/stacks-blockchain-api-types": { @@ -16536,301 +15538,47 @@ "@stacks/network": "^6.8.1", "base64-js": "^1.5.1", "jsontokens": "^4.0.1" - }, - "dependencies": { - "@noble/hashes": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", - "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==" - }, - "@scure/bip39": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", - "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", - "requires": { - "@noble/hashes": "~1.1.1", - "@scure/base": "~1.1.0" - } - }, - "@stacks/encryption": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/@stacks/encryption/-/encryption-6.9.0.tgz", - "integrity": "sha512-hbpZ47eYgw9ZH5ly+GSgvw2Ffsu9L6d++2XIhvYSzL7yxYl4m1+FV5QYdJthJ2AS3vi8cI5otE254HTfCrhKzg==", - "requires": { - "@noble/hashes": "1.1.5", - "@noble/secp256k1": "1.7.1", - "@scure/bip39": "1.1.0", - "@stacks/common": "^6.8.1", - "@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/transactions": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/@stacks/transactions/-/transactions-4.3.8.tgz", - "integrity": "sha512-5xYYv2TdXXM9PVixB79Pr99symQ8fhbVATjempGUxtL23/XUiRiLvJZohDxIE4VQ2EzbB4g4j8Y7oqPjj0h09Q==", - "requires": { - "@noble/hashes": "^1.0.0", - "@noble/secp256k1": "^1.5.5", - "@stacks/common": "^4.3.5", - "@stacks/network": "^4.3.5", - "@types/node": "^18.0.4", - "@types/sha.js": "^2.4.0", - "c32check": "^1.1.3", - "lodash.clonedeep": "^4.5.0", - "ripemd160-min": "^0.0.6", - "sha.js": "^2.4.11", - "smart-buffer": "^4.1.0" + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/@stacks/transactions/-/transactions-6.9.0.tgz", + "integrity": "sha512-hSs9+0Ew++GwMZMgPObOx0iVCQRxkiCqI+DHdPEikAmg2utpyLh2/txHOjfSIkQHvcBfJJ6O5KphmxDP4gUqiA==", + "requires": { + "@noble/hashes": "1.1.5", + "@noble/secp256k1": "1.7.1", + "@stacks/common": "^6.8.1", + "@stacks/network": "^6.8.1", + "c32check": "^2.0.0", + "lodash.clonedeep": "^4.5.0" }, "dependencies": { - "@stacks/common": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@stacks/common/-/common-4.3.5.tgz", - "integrity": "sha512-UuViiQ7fn3vdtTe3739aRzbl+wbukekeQuXgqt8d7nB2HC2HodD7GcHhpUga165cO35CD6lQUtj3vXxJb5Ga+A==", - "requires": { - "@types/bn.js": "^5.1.0", - "@types/node": "^18.0.4", - "buffer": "^6.0.3" - } - }, - "@stacks/network": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@stacks/network/-/network-4.3.5.tgz", - "integrity": "sha512-TC4+AkuT6qi3MoEGxTftA+4BNp99QvGnI+qtKQkoA1m0KDr8b9hSBUhugJHRhQbWuo7D6q0+JagYEGxLID29Kw==", - "requires": { - "@stacks/common": "^4.3.5", - "cross-fetch": "^3.1.5" - } - }, - "base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "c32check": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/c32check/-/c32check-1.1.3.tgz", - "integrity": "sha512-ADADE/PjAbJRlwpG3ShaOMbBUlJJZO7xaYSRD5Tub6PixQlgR4s36y9cvMf/YRGpkqX+QOxIdMw216iC320q9A==", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.6.0", - "cross-sha256": "^1.2.0" - }, - "dependencies": { - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - } - } + "@noble/hashes": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", + "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==" } } }, "@stacks/wallet-sdk": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@stacks/wallet-sdk/-/wallet-sdk-5.0.3.tgz", - "integrity": "sha512-9Alqqer8cauLLEuhSA3ryPTfCw3XZiZkZBbyed9+oNsha3beIBly5lspU2GHdz2alnsJ5jisjDUZeuDYVRFEuA==", - "requires": { - "@scure/bip32": "^1.1.0", - "@scure/bip39": "^1.1.0", - "@stacks/auth": "^5.0.3", - "@stacks/common": "^5.0.3", - "@stacks/encryption": "^5.0.3", - "@stacks/network": "^5.0.3", - "@stacks/profile": "^5.0.3", - "@stacks/storage": "^5.0.3", - "@stacks/transactions": "^5.0.3", - "bitcoinjs-lib": "^5.2.0", + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/@stacks/wallet-sdk/-/wallet-sdk-6.9.0.tgz", + "integrity": "sha512-cNp8gilFYovVgFYSd+g+2ybVgDcY0vshhi23lweeiTViGAogURfDvZgczwQ9yoYzdHA8vMGy5PxV5W9dbrrbcQ==", + "requires": { + "@scure/bip32": "1.1.3", + "@scure/bip39": "1.1.0", + "@stacks/auth": "^6.9.0", + "@stacks/common": "^6.8.1", + "@stacks/encryption": "^6.9.0", + "@stacks/network": "^6.8.1", + "@stacks/profile": "^6.9.0", + "@stacks/storage": "^6.9.0", + "@stacks/transactions": "^6.9.0", "buffer": "^6.0.3", "c32check": "^2.0.0", "jsontokens": "^4.0.1", "triplesec": "^4.0.3", "zone-file": "^2.0.0-beta.3" - }, - "dependencies": { - "@stacks/auth": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@stacks/auth/-/auth-5.0.3.tgz", - "integrity": "sha512-bFP/H1IFAxU2FUu3KR0meUgXdmagkpjV9wAC7b5UDCVHWanU3c/GfCh0CIw10FbXov2aYlQJpCEFMBxweATVjg==", - "requires": { - "@stacks/common": "^5.0.3", - "@stacks/encryption": "^5.0.3", - "@stacks/network": "^5.0.3", - "@stacks/profile": "^5.0.3", - "cross-fetch": "^3.1.5", - "jsontokens": "^4.0.1", - "query-string": "^6.13.1" - } - }, - "@stacks/common": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@stacks/common/-/common-5.0.3.tgz", - "integrity": "sha512-0c1L1xQAFI4p0oB8BrwU1ic3q91plceztzT6ZQizxWfAJFnELdYyO/nJlq9a3yIVV90iaLYgvYBTPW3b7LWrdg==", - "requires": { - "@types/bn.js": "^5.1.0", - "@types/node": "^18.0.4" - } - }, - "@stacks/encryption": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@stacks/encryption/-/encryption-5.0.3.tgz", - "integrity": "sha512-wM5wE2ldssJWF5zrE5MbGlBSqI6ZMDSWGtvg2AOqOG2ChoBPxcuVOdyj4ziBbX4vtdu61jjr7LLP+90/0MLcpQ==", - "requires": { - "@noble/hashes": "^1.0.0", - "@noble/secp256k1": "^1.5.5", - "@scure/bip39": "^1.1.0", - "@stacks/common": "^5.0.3", - "@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": "5.0.3", - "resolved": "https://registry.npmjs.org/@stacks/network/-/network-5.0.3.tgz", - "integrity": "sha512-9ZSKktElpgDst1SVI5K4ocmsrIKrIHVQMRTfLkVarNqMnk9zliLMXrmXef6Z3rszU7JbUWGbb8+F3ubhpfqZxg==", - "requires": { - "@stacks/common": "^5.0.3", - "cross-fetch": "^3.1.5" - } - }, - "@stacks/profile": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@stacks/profile/-/profile-5.0.3.tgz", - "integrity": "sha512-B+gAMK8svDrgFWGJu2EkokkgjkXUEJG+zsZuK3P1Aq2qCS2EiO+O0gLhUi8p38BiKEpkUVY4mI34QCzMn9zWiA==", - "requires": { - "@stacks/common": "^5.0.3", - "@stacks/network": "^5.0.3", - "@stacks/transactions": "^5.0.3", - "jsontokens": "^4.0.1", - "schema-inspector": "2.0.1", - "zone-file": "^2.0.0-beta.3" - } - }, - "@stacks/storage": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@stacks/storage/-/storage-5.0.3.tgz", - "integrity": "sha512-5JuQ5rUjXNtx3hhiUGWp5KTuGg4pvxXmYnro6u+3Bl6kN8Q5ZMwf0b5fWwCoRvxIPSPuMTsp9P+tlb9N/cWNVA==", - "requires": { - "@stacks/auth": "^5.0.3", - "@stacks/common": "^5.0.3", - "@stacks/encryption": "^5.0.3", - "@stacks/network": "^5.0.3", - "base64-js": "^1.5.1", - "jsontokens": "^4.0.1" - } - }, - "@stacks/transactions": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@stacks/transactions/-/transactions-5.0.3.tgz", - "integrity": "sha512-rLe7QYU+tzTs1Yudo82zh7oiWAwGxGiunFehgIZ6VgLgo/Oarf8+DWmmaAxSZpCsecxl4cuQxE3bDWwJZAA9rg==", - "requires": { - "@noble/hashes": "^1.0.0", - "@noble/secp256k1": "^1.5.5", - "@stacks/common": "^5.0.3", - "@stacks/network": "^5.0.3", - "c32check": "^2.0.0", - "lodash.clonedeep": "^4.5.0" - } - }, - "base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" - }, - "bip32": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/bip32/-/bip32-2.0.6.tgz", - "integrity": "sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA==", - "requires": { - "@types/node": "10.12.18", - "bs58check": "^2.1.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "tiny-secp256k1": "^1.1.3", - "typeforce": "^1.11.5", - "wif": "^2.0.6" - }, - "dependencies": { - "@types/node": { - "version": "10.12.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz", - "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==" - } - } - }, - "bitcoinjs-lib": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-5.2.0.tgz", - "integrity": "sha512-5DcLxGUDejgNBYcieMIUfjORtUeNWl828VWLHJGVKZCb4zIS1oOySTUr0LGmcqJBQgTBz3bGbRQla4FgrdQEIQ==", - "requires": { - "bech32": "^1.1.2", - "bip174": "^2.0.1", - "bip32": "^2.0.4", - "bip66": "^1.1.0", - "bitcoin-ops": "^1.4.0", - "bs58check": "^2.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.3", - "merkle-lib": "^2.0.10", - "pushdata-bitcoin": "^1.0.1", - "randombytes": "^2.0.1", - "tiny-secp256k1": "^1.1.1", - "typeforce": "^1.11.3", - "varuint-bitcoin": "^1.0.4", - "wif": "^2.0.1" - } - }, - "bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "requires": { - "base-x": "^3.0.2" - } - } - } - }, - "schema-inspector": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/schema-inspector/-/schema-inspector-2.0.1.tgz", - "integrity": "sha512-lqR4tOVfoqf9Z8cgX/zvXuWPnTWCqrc4WSgeSPDDc1bWbMABaqdSTY98xj7iRKHOIRtKjc4M8EWCgUu5ASlHkg==", - "requires": { - "async": "~2.6.3" - } - } } }, "@stencil/core": { @@ -17463,9 +16211,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": "*" } @@ -18005,6 +16753,74 @@ "@ledgerhq/hw-transport": "^6.28.1", "@stacks/transactions": "^4.1.0", "varuint-bitcoin": "^1.1.2" + }, + "dependencies": { + "@stacks/common": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/@stacks/common/-/common-4.3.5.tgz", + "integrity": "sha512-UuViiQ7fn3vdtTe3739aRzbl+wbukekeQuXgqt8d7nB2HC2HodD7GcHhpUga165cO35CD6lQUtj3vXxJb5Ga+A==", + "requires": { + "@types/bn.js": "^5.1.0", + "@types/node": "^18.0.4", + "buffer": "^6.0.3" + } + }, + "@stacks/network": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/@stacks/network/-/network-4.3.5.tgz", + "integrity": "sha512-TC4+AkuT6qi3MoEGxTftA+4BNp99QvGnI+qtKQkoA1m0KDr8b9hSBUhugJHRhQbWuo7D6q0+JagYEGxLID29Kw==", + "requires": { + "@stacks/common": "^4.3.5", + "cross-fetch": "^3.1.5" + } + }, + "@stacks/transactions": { + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/@stacks/transactions/-/transactions-4.3.8.tgz", + "integrity": "sha512-5xYYv2TdXXM9PVixB79Pr99symQ8fhbVATjempGUxtL23/XUiRiLvJZohDxIE4VQ2EzbB4g4j8Y7oqPjj0h09Q==", + "requires": { + "@noble/hashes": "^1.0.0", + "@noble/secp256k1": "^1.5.5", + "@stacks/common": "^4.3.5", + "@stacks/network": "^4.3.5", + "@types/node": "^18.0.4", + "@types/sha.js": "^2.4.0", + "c32check": "^1.1.3", + "lodash.clonedeep": "^4.5.0", + "ripemd160-min": "^0.0.6", + "sha.js": "^2.4.11", + "smart-buffer": "^4.1.0" + } + }, + "base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "c32check": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/c32check/-/c32check-1.1.3.tgz", + "integrity": "sha512-ADADE/PjAbJRlwpG3ShaOMbBUlJJZO7xaYSRD5Tub6PixQlgR4s36y9cvMf/YRGpkqX+QOxIdMw216iC320q9A==", + "requires": { + "base-x": "^3.0.8", + "buffer": "^5.6.0", + "cross-sha256": "^1.2.0" + }, + "dependencies": { + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + } + } + } } }, "abab": { @@ -18509,11 +17325,6 @@ "sha256-uint8array": "^0.10.3" } }, - "bitcoin-ops": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz", - "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==" - }, "bitcoinjs-lib": { "version": "6.1.5", "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-6.1.5.tgz", @@ -19536,11 +18347,6 @@ "ms": "2.1.2" } }, - "decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==" - }, "deep-eql": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", @@ -20775,11 +19581,6 @@ "to-regex-range": "^5.0.1" } }, - "filter-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==" - }, "finalhandler": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", @@ -22664,11 +21465,6 @@ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true }, - "merkle-lib": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/merkle-lib/-/merkle-lib-2.0.10.tgz", - "integrity": "sha512-XrNQvUbn1DL5hKNe46Ccs+Tu3/PYOlrcZILuGUhb95oKBPjc/nmIC8D462PQkipVDGKRvwhn+QFg2cCdIvmDJA==" - }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -23479,7 +22275,8 @@ "prettier": { "version": "2.8.8", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==" + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true }, "prettier-linter-helpers": { "version": "1.0.0", @@ -23611,14 +22408,6 @@ "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true }, - "pushdata-bitcoin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", - "integrity": "sha512-hw7rcYTJRAl4olM8Owe8x0fBuJJ+WGbMhQuLWOXEMN3PxPCKQHRkhfL+XG0+iXUmSHjkMmb3Ba55Mt21cZc9kQ==", - "requires": { - "bitcoin-ops": "^1.3.0" - } - }, "qr-code-styling": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/qr-code-styling/-/qr-code-styling-1.5.0.tgz", @@ -23637,25 +22426,6 @@ "resolved": "https://registry.npmjs.org/qrcode-generator/-/qrcode-generator-1.4.4.tgz", "integrity": "sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw==" }, - "qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", - "requires": { - "side-channel": "^1.0.4" - } - }, - "query-string": { - "version": "6.14.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz", - "integrity": "sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==", - "requires": { - "decode-uri-component": "^0.2.0", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" - } - }, "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -24659,11 +23429,6 @@ "wbuf": "^1.7.3" } }, - "split-on-first": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==" - }, "stackback": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", @@ -24705,11 +23470,6 @@ "readable-stream": "^3.5.0" } }, - "strict-uri-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==" - }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -24981,25 +23741,6 @@ "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, - "tiny-secp256k1": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz", - "integrity": "sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA==", - "requires": { - "bindings": "^1.3.0", - "bn.js": "^4.11.8", - "create-hmac": "^1.1.7", - "elliptic": "^6.4.0", - "nan": "^2.13.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, "tinybench": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.5.1.tgz", @@ -25422,22 +24163,6 @@ "punycode": "^2.1.0" } }, - "url": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.1.tgz", - "integrity": "sha512-rWS3H04/+mzzJkv0eZ7vEDGiQbgquI1fGfOad6zKvgYQi1SzMmhl7c/DdRGxhaWrVH6z0qWITo8rpnxK/RfEhA==", - "requires": { - "punycode": "^1.4.1", - "qs": "^6.11.0" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" - } - } - }, "use-isomorphic-layout-effect": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", diff --git a/package.json b/package.json index c03ffa383..d4d5692f3 100644 --- a/package.json +++ b/package.json @@ -10,11 +10,10 @@ "@ledgerhq/hw-transport-webusb": "^6.27.13", "@phosphor-icons/react": "^2.0.10", "@react-spring/web": "^9.6.1", - "@secretkeylabs/xverse-core": "6.0.1", - "@stacks/connect": "^6.10.2", - "@stacks/encryption": "4.3.5", + "@secretkeylabs/xverse-core": "7.0.0", + "@stacks/connect": "7.4.1", "@stacks/stacks-blockchain-api-types": "6.1.1", - "@stacks/transactions": "4.3.8", + "@stacks/transactions": "6.9.0", "@tanstack/query-sync-storage-persister": "^4.29.1", "@tanstack/react-query": "^4.29.3", "@tanstack/react-query-devtools": "^4.29.3", diff --git a/src/app/components/confirmStxTransactionComponent/index.tsx b/src/app/components/confirmStxTransactionComponent/index.tsx index de189144e..7b23effcb 100644 --- a/src/app/components/confirmStxTransactionComponent/index.tsx +++ b/src/app/components/confirmStxTransactionComponent/index.tsx @@ -129,9 +129,10 @@ interface Props { isAsset?: boolean; title?: string; subTitle?: string; + hasSignatures?: boolean; } -function ConfirmStxTransationComponent({ +function ConfirmStxTransactionComponent({ initialStxTransactions, loading, isSponsored, @@ -142,6 +143,7 @@ function ConfirmStxTransationComponent({ onConfirmClick, onCancelClick, skipModal = false, + hasSignatures = false, }: Props) { const { t } = useTranslation('translation', { keyPrefix: 'CONFIRM_TRANSACTION' }); const { t: signatureRequestTranslate } = useTranslation('translation', { @@ -280,7 +282,7 @@ function ConfirmStxTransationComponent({ try { const signedTxs = await signLedgerStxTransaction({ transport, - transactionBuffer: initialStxTransactions[0].serialize(), + transactionBuffer: Buffer.from(initialStxTransactions[0].serialize()), addressIndex: selectedAccount.deviceAccountIndex, }); setIsTxApproved(true); @@ -334,12 +336,14 @@ function ConfirmStxTransationComponent({ {isSponsored ? ( {t('SPONSORED_TX_INFO')} ) : ( - + !hasSignatures && ( + + ) )} { setNonce(nonceInput); - }, [nonceInput]); + }, [nonceInput, setNonce]); return ( diff --git a/src/app/components/transactionsRequests/ContractCallRequest.tsx b/src/app/components/transactionsRequests/ContractCallRequest.tsx index f20a09173..143401f64 100644 --- a/src/app/components/transactionsRequests/ContractCallRequest.tsx +++ b/src/app/components/transactionsRequests/ContractCallRequest.tsx @@ -1,5 +1,5 @@ import AccountHeaderComponent from '@components/accountHeader'; -import ConfirmStxTransationComponent from '@components/confirmStxTransactionComponent'; +import ConfirmStxTransactionComponent from '@components/confirmStxTransactionComponent'; import InfoContainer from '@components/infoContainer'; import FtPostConditionCard from '@components/postCondition/ftPostConditionCard'; import NftPostConditionCard from '@components/postCondition/nftPostConditionCard'; @@ -11,15 +11,18 @@ import { addressToString, Args, broadcastSignedTransaction, + buf2hex, Coin, ContractFunction, extractFromPayload, + isMultiSig, } from '@secretkeylabs/xverse-core'; import { ContractCallPayload } from '@stacks/connect'; import { ClarityType, cvToJSON, cvToString, + MultiSigSpendingCondition, PostConditionType, SomeCV, StacksTransaction, @@ -85,6 +88,12 @@ export default function ContractCallRequest(props: ContractCallRequestProps) { const [hasTabClosed, setHasTabClosed] = useState(false); const { t } = useTranslation('translation'); + // SignTransaction Params + const isMultiSigTx = isMultiSig(unsignedTx); + const hasSignatures = + isMultiSigTx && + (unsignedTx.auth.spendingCondition as MultiSigSpendingCondition).fields?.length > 0; + useOnOriginTabClose(tabId, () => { setHasTabClosed(true); window.scrollTo({ top: 0, behavior: 'smooth' }); @@ -175,7 +184,7 @@ export default function ContractCallRequest(props: ContractCallRequestProps) { finalizeTxSignature({ requestPayload: requestToken, tabId, - data: { txId: broadcastResult, txRaw: tx[0].serialize().toString('hex') }, + data: { txId: broadcastResult, txRaw: buf2hex(tx[0].serialize()) }, }); navigate('/tx-status', { state: { @@ -208,6 +217,13 @@ export default function ContractCallRequest(props: ContractCallRequestProps) { browserTx: true, }, }); + } else if (isMultiSigTx) { + finalizeTxSignature({ + requestPayload: requestToken, + tabId, + data: { txId: '', txRaw: buf2hex(unsignedTx.serialize()) }, + }); + window.close(); } else { broadcastTx(transactions, attachment); } @@ -248,13 +264,14 @@ export default function ContractCallRequest(props: ContractCallRequestProps) { return ( <> - <> {hasTabClosed && ( @@ -272,7 +289,7 @@ export default function ContractCallRequest(props: ContractCallRequestProps) { /> {functionArgsView()} - + ); } diff --git a/src/app/components/transactionsRequests/ContractDeployTransaction.tsx b/src/app/components/transactionsRequests/ContractDeployTransaction.tsx index de5baf627..3d0568b37 100644 --- a/src/app/components/transactionsRequests/ContractDeployTransaction.tsx +++ b/src/app/components/transactionsRequests/ContractDeployTransaction.tsx @@ -1,13 +1,13 @@ import DownloadImage from '@assets/img/webInteractions/ArrowLineDown.svg'; import AccountHeaderComponent from '@components/accountHeader'; -import ConfirmStxTransationComponent from '@components/confirmStxTransactionComponent'; +import ConfirmStxTransactionComponent from '@components/confirmStxTransactionComponent'; import InfoContainer from '@components/infoContainer'; import StxPostConditionCard from '@components/postCondition/stxPostConditionCard'; import TransactionDetailComponent from '@components/transactionDetailComponent'; import useNetworkSelector from '@hooks/useNetwork'; import useOnOriginTabClose from '@hooks/useOnTabClosed'; -import { broadcastSignedTransaction } from '@secretkeylabs/xverse-core'; -import { PostCondition, StacksTransaction } from '@stacks/transactions'; +import { broadcastSignedTransaction, buf2hex, isMultiSig } from '@secretkeylabs/xverse-core'; +import { MultiSigSpendingCondition, PostCondition, StacksTransaction } from '@stacks/transactions'; import { useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useNavigate } from 'react-router-dom'; @@ -111,6 +111,12 @@ export default function ContractDeployRequest(props: ContractDeployRequestProps) const [loaderForBroadcastingTx, setLoaderForBroadcastingTx] = useState(false); const navigate = useNavigate(); + // SignTransaction Params + const isMultiSigTx = isMultiSig(unsignedTx); + const hasSignatures = + isMultiSigTx && + (unsignedTx.auth.spendingCondition as MultiSigSpendingCondition).fields?.length > 0; + useOnOriginTabClose(tabId, () => { setHasTabClosed(true); window.scrollTo({ top: 0, behavior: 'smooth' }); @@ -124,7 +130,7 @@ export default function ContractDeployRequest(props: ContractDeployRequestProps) finalizeTxSignature({ requestPayload: requestToken, tabId, - data: { txId: broadcastResult, txRaw: tx[0].serialize().toString('hex') }, + data: { txId: broadcastResult, txRaw: buf2hex(tx[0].serialize()) }, }); navigate('/tx-status', { state: { @@ -160,6 +166,13 @@ export default function ContractDeployRequest(props: ContractDeployRequestProps) browserTx: true, }, }); + } else if (isMultiSigTx) { + finalizeTxSignature({ + requestPayload: requestToken, + tabId, + data: { txId: '', txRaw: buf2hex(unsignedTx.serialize()) }, + }); + window.close(); } else { broadcastTx(txs); } @@ -199,13 +212,14 @@ export default function ContractDeployRequest(props: ContractDeployRequestProps) return ( <> - {hasTabClosed && ( - + ); } diff --git a/src/app/hooks/queries/useStxPendingTxData.ts b/src/app/hooks/queries/useStxPendingTxData.ts index deee18a34..b37b87936 100644 --- a/src/app/hooks/queries/useStxPendingTxData.ts +++ b/src/app/hooks/queries/useStxPendingTxData.ts @@ -1,4 +1,4 @@ -import { fetchStxPendingTxData } from '@secretkeylabs/xverse-core'; +import { fetchStxPendingTxData, StxPendingTxData } from '@secretkeylabs/xverse-core'; import { StoreState } from '@stores/index'; import { useQuery } from '@tanstack/react-query'; import { useSelector } from 'react-redux'; @@ -9,7 +9,7 @@ const useStxPendingTxData = () => { const selectedNetwork = useNetworkSelector(); const result = useQuery({ queryKey: ['stx-pending-transaction', { stxAddress, selectedNetwork }], - queryFn: () => fetchStxPendingTxData(stxAddress, selectedNetwork), + queryFn: (): Promise => fetchStxPendingTxData(stxAddress, selectedNetwork), }); return result; }; diff --git a/src/app/hooks/queries/useStxWalletData.ts b/src/app/hooks/queries/useStxWalletData.ts index 0b33b3580..bd4d17a5e 100644 --- a/src/app/hooks/queries/useStxWalletData.ts +++ b/src/app/hooks/queries/useStxWalletData.ts @@ -7,6 +7,7 @@ import { useDispatch } from 'react-redux'; import useNetworkSelector from '../useNetwork'; import useWalletSelector from '../useWalletSelector'; +// TODO refactor: no need to put this in store. use this hook instead export const useStxWalletData = () => { const dispatch = useDispatch(); const { stxAddress } = useWalletSelector(); diff --git a/src/app/hooks/useStxTransactionRequest.ts b/src/app/hooks/useStxTransactionRequest.ts new file mode 100644 index 000000000..3597af09c --- /dev/null +++ b/src/app/hooks/useStxTransactionRequest.ts @@ -0,0 +1,41 @@ +import { txPayloadToRequest } from '@secretkeylabs/xverse-core'; +import { deserializeTransaction } from '@stacks/transactions'; +import { decodeToken } from 'jsontokens'; +import { useLocation } from 'react-router-dom'; + +const useStxTransactionRequest = () => { + const { search } = useLocation(); + const params = new URLSearchParams(search); + 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 = () => { + if (stacksTransaction) { + const txPayload = txPayloadToRequest( + stacksTransaction, + request.payload.stxAddress, + request.payload.attachment, + ); + return { + ...request.payload, + ...txPayload, + }; + } + return request.payload; + }; + + const txPayload = getPayload(); + + return { + payload: txPayload, + stacksTransaction, + tabId, + requestToken, + }; +}; + +export default useStxTransactionRequest; diff --git a/src/app/hooks/useTransationRequest.ts b/src/app/hooks/useTransationRequest.ts deleted file mode 100644 index 04d8e05c7..000000000 --- a/src/app/hooks/useTransationRequest.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { decodeToken } from 'jsontokens'; -import { useLocation } from 'react-router-dom'; - -const useDappRequest = () => { - const { search } = useLocation(); - const params = new URLSearchParams(search); - const requestToken = params.get('request') ?? ''; - const request = decodeToken(requestToken) as any; - const tabId = params.get('tabId') ?? '0'; - return { - payload: request.payload, - tabId, - requestToken, - }; -}; - -export default useDappRequest; diff --git a/src/app/screens/confirmFtTransaction/index.tsx b/src/app/screens/confirmFtTransaction/index.tsx index 00d68aaf6..54ebed157 100644 --- a/src/app/screens/confirmFtTransaction/index.tsx +++ b/src/app/screens/confirmFtTransaction/index.tsx @@ -1,5 +1,5 @@ import { ConfirmStxTransactionState, LedgerTransactionType } from '@common/types/ledger'; -import ConfirmStxTransationComponent from '@components/confirmStxTransactionComponent'; +import ConfirmStxTransactionComponent from '@components/confirmStxTransactionComponent'; import TransferMemoView from '@components/confirmStxTransactionComponent/transferMemoView'; import RecipientComponent from '@components/recipientComponent'; import BottomBar from '@components/tabBar'; @@ -73,7 +73,7 @@ function ConfirmFtTransaction() { if (isLedgerAccount(selectedAccount)) { const type: LedgerTransactionType = 'STX'; const state: ConfirmStxTransactionState = { - unsignedTx: unsignedTx.serialize(), + unsignedTx: Buffer.from(unsignedTx.serialize()), type, recipients: [{ address: recepientAddress, amountMicrostacks: new BigNumber(amount) }], fee: new BigNumber(unsignedTx.auth.spendingCondition.fee.toString()), @@ -100,7 +100,7 @@ function ConfirmFtTransaction() { return ( <> - {memo && } - + ); diff --git a/src/app/screens/confirmNftTransaction/index.tsx b/src/app/screens/confirmNftTransaction/index.tsx index a3f6b209e..df0c9ef0d 100644 --- a/src/app/screens/confirmNftTransaction/index.tsx +++ b/src/app/screens/confirmNftTransaction/index.tsx @@ -1,7 +1,7 @@ import AssetIcon from '@assets/img/transactions/Assets.svg'; import { ConfirmStxTransactionState, LedgerTransactionType } from '@common/types/ledger'; import AccountHeaderComponent from '@components/accountHeader'; -import ConfirmStxTransationComponent from '@components/confirmStxTransactionComponent'; +import ConfirmStxTransactionComponent from '@components/confirmStxTransactionComponent'; import RecipientComponent from '@components/recipientComponent'; import BottomBar from '@components/tabBar'; import TopRow from '@components/topRow'; @@ -121,7 +121,7 @@ function ConfirmNftTransaction() { if (isLedgerAccount(selectedAccount)) { const type: LedgerTransactionType = 'STX'; const state: ConfirmStxTransactionState = { - unsignedTx: unsignedTx.serialize(), + unsignedTx: Buffer.from(unsignedTx.serialize()), type, recipients: [ { @@ -159,7 +159,7 @@ function ConfirmNftTransaction() { )} {!isGalleryOpen && } - - + {!isGalleryOpen && } diff --git a/src/app/screens/confirmStxTransaction/index.tsx b/src/app/screens/confirmStxTransaction/index.tsx index 1f1ea17e5..62544c0b6 100644 --- a/src/app/screens/confirmStxTransaction/index.tsx +++ b/src/app/screens/confirmStxTransaction/index.tsx @@ -1,6 +1,7 @@ import IconStacks from '@assets/img/dashboard/stack_icon.svg'; import { ConfirmStxTransactionState, LedgerTransactionType } from '@common/types/ledger'; import AccountHeaderComponent from '@components/accountHeader'; +import ConfirmStxTransactionComponent from '@components/confirmStxTransactionComponent'; import TransferMemoView from '@components/confirmStxTransactionComponent/transferMemoView'; import InfoContainer from '@components/infoContainer'; import RecipientComponent from '@components/recipientComponent'; @@ -15,12 +16,14 @@ import useWalletSelector from '@hooks/useWalletSelector'; import { addressToString, broadcastSignedTransaction, + buf2hex, getStxFiatEquivalent, + isMultiSig, microstacksToStx, StacksTransaction, TokenTransferPayload, } from '@secretkeylabs/xverse-core'; -import { deserializeTransaction } from '@stacks/transactions'; +import { deserializeTransaction, MultiSigSpendingCondition } from '@stacks/transactions'; import { useMutation } from '@tanstack/react-query'; import { isLedgerAccount } from '@utils/helper'; import BigNumber from 'bignumber.js'; @@ -28,7 +31,6 @@ import { useEffect, useMemo, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useLocation, useNavigate } from 'react-router-dom'; import styled from 'styled-components'; -import ConfirmStxTransationComponent from '../../components/confirmStxTransactionComponent'; const AlertContainer = styled.div((props) => ({ marginTop: props.theme.spacing(12), @@ -46,16 +48,28 @@ function ConfirmStxTransaction() { const [txRaw, setTxRaw] = useState(''); const [memo, setMemo] = useState(''); const navigate = useNavigate(); - const location = useLocation(); const selectedNetwork = useNetworkSelector(); + const { stxBtcRate, btcFiatRate, network, selectedAccount } = useWalletSelector(); + const { refetch } = useStxWalletData(); + + const location = useLocation(); const { unsignedTx: stringHex, sponsored, isBrowserTx, tabId, requestToken } = location.state; const unsignedTx = useMemo(() => deserializeTransaction(stringHex), [stringHex]); + + // SignTransaction Params + const isMultiSigTx = useMemo(() => isMultiSig(unsignedTx), [unsignedTx]); + const hasSignatures = useMemo( + () => + isMultiSigTx && + (unsignedTx.auth.spendingCondition as MultiSigSpendingCondition).fields?.length > 0, + [unsignedTx, isMultiSigTx], + ); + useOnOriginTabClose(Number(tabId), () => { setHasTabClosed(true); window.scrollTo({ top: 0, behavior: 'smooth' }); }); - const { stxBtcRate, btcFiatRate, network, selectedAccount } = useWalletSelector(); - const { refetch } = useStxWalletData(); + const { isLoading, error: txError, @@ -146,7 +160,7 @@ function ConfirmStxTransaction() { if (isLedgerAccount(selectedAccount)) { const type: LedgerTransactionType = 'STX'; const state: ConfirmStxTransactionState = { - unsignedTx: unsignedTx.serialize(), + unsignedTx: Buffer.from(unsignedTx.serialize()), type, recipients: [{ address: recipient, amountMicrostacks: amount }], fee, @@ -155,9 +169,19 @@ function ConfirmStxTransaction() { navigate('/confirm-ledger-tx', { state }); return; } - - setTxRaw(txs[0].serialize().toString('hex')); - mutate({ signedTx: txs[0] }); + const rawTx = buf2hex(txs[0].serialize()); + setTxRaw(rawTx); + if (isMultiSigTx && isBrowserTx) { + finalizeTxSignature({ + requestPayload: requestToken, + tabId: Number(tabId), + // No TxId since the tx was not broadcasted + data: { txId: '', txRaw: rawTx }, + }); + window.close(); + } else { + mutate({ signedTx: txs[0] }); + } }; const handleCancelClick = () => { @@ -182,13 +206,14 @@ function ConfirmStxTransaction() { ) : ( )} - )} - + {!isBrowserTx && } ); diff --git a/src/app/screens/sendFt/index.tsx b/src/app/screens/sendFt/index.tsx index f899b98ab..9cde1843a 100644 --- a/src/app/screens/sendFt/index.tsx +++ b/src/app/screens/sendFt/index.tsx @@ -5,6 +5,7 @@ import useStxPendingTxData from '@hooks/queries/useStxPendingTxData'; import useNetworkSelector from '@hooks/useNetwork'; import useWalletSelector from '@hooks/useWalletSelector'; import { + buf2hex, generateUnsignedTransaction, StacksTransaction, UnsignedStacksTransation, @@ -85,7 +86,7 @@ function SendFtScreen() { if (data) { navigate('/confirm-ft-tx', { state: { - unsignedTx: data.serialize().toString('hex'), + unsignedTx: buf2hex(data.serialize()), amount: amountToSend.toString(), fungibleToken, memo: txMemo, diff --git a/src/app/screens/sendNft/index.tsx b/src/app/screens/sendNft/index.tsx index d2e5aede6..bf849992e 100644 --- a/src/app/screens/sendNft/index.tsx +++ b/src/app/screens/sendNft/index.tsx @@ -7,6 +7,7 @@ import useNetworkSelector from '@hooks/useNetwork'; import { useResetUserFlow } from '@hooks/useResetUserFlow'; import useWalletSelector from '@hooks/useWalletSelector'; import { + buf2hex, cvToHex, generateUnsignedTransaction, StacksTransaction, @@ -142,7 +143,7 @@ function SendNft() { if (data) { navigate(`/confirm-nft-tx/${id}`, { state: { - unsignedTx: data.serialize().toString('hex'), + unsignedTx: buf2hex(data.serialize()), recipientAddress, }, }); diff --git a/src/app/screens/sendStx/index.tsx b/src/app/screens/sendStx/index.tsx index b741d365a..773b77cda 100644 --- a/src/app/screens/sendStx/index.tsx +++ b/src/app/screens/sendStx/index.tsx @@ -4,6 +4,7 @@ import useStxPendingTxData from '@hooks/queries/useStxPendingTxData'; import useNetworkSelector from '@hooks/useNetwork'; import useWalletSelector from '@hooks/useWalletSelector'; import { + buf2hex, generateUnsignedStxTokenTransferTransaction, microstacksToStx, StacksTransaction, @@ -13,9 +14,9 @@ import { import { useMutation } from '@tanstack/react-query'; import { replaceCommaByDot } from '@utils/helper'; import BigNumber from 'bignumber.js'; -import { useEffect, useState } from 'react'; +import { useEffect,useState } from 'react'; import { useTranslation } from 'react-i18next'; -import { useLocation, useNavigate } from 'react-router-dom'; +import { useLocation,useNavigate } from 'react-router-dom'; import TopRow from '../../components/topRow'; function SendStxScreen() { @@ -68,7 +69,7 @@ function SendStxScreen() { if (data) { navigate('/confirm-stx-tx', { state: { - unsignedTx: data.serialize().toString('hex'), + unsignedTx: buf2hex(data.serialize()), }, }); } diff --git a/src/app/screens/signatureRequest/clarityMessageView.tsx b/src/app/screens/signatureRequest/clarityMessageView.tsx index b31df8c01..734352da0 100644 --- a/src/app/screens/signatureRequest/clarityMessageView.tsx +++ b/src/app/screens/signatureRequest/clarityMessageView.tsx @@ -1,5 +1,5 @@ -import { bytesToHex, ClarityType, ClarityValue, cvToString } from '@stacks/transactions'; -import { principalToString } from '@stacks/transactions/dist/esm/clarity/types/principalCV'; +import { buf2hex } from '@secretkeylabs/xverse-core'; +import { ClarityType, ClarityValue, cvToString,principalToString } from '@stacks/transactions'; import styled from 'styled-components'; const Container = styled.div<{ isRoot: boolean }>((props) => ({ @@ -56,7 +56,7 @@ export default function ClarityMessageView(props: ClarityMessageViewProps) { const str = bytesToAscii(val.buffer); if (/[ -~]/.test(str)) return wrapText(JSON.stringify(str)); } - return wrapText(`0x${bytesToHex(val.buffer)}`); + return wrapText(`0x${buf2hex(val.buffer)}`); case ClarityType.OptionalNone: return wrapText('none'); case ClarityType.OptionalSome: diff --git a/src/app/screens/signatureRequest/index.tsx b/src/app/screens/signatureRequest/index.tsx index d5a6d64cb..728d51659 100644 --- a/src/app/screens/signatureRequest/index.tsx +++ b/src/app/screens/signatureRequest/index.tsx @@ -18,9 +18,8 @@ import useSignatureRequest, { import useWalletReducer from '@hooks/useWalletReducer'; import useWalletSelector from '@hooks/useWalletSelector'; import Transport from '@ledgerhq/hw-transport-webusb'; -import { bip0322Hash, hashMessage, signStxMessage } from '@secretkeylabs/xverse-core'; +import { bip0322Hash, hashMessage, signStxMessage, buf2hex } from '@secretkeylabs/xverse-core'; import { SignaturePayload, StructuredDataSignaturePayload } from '@stacks/connect'; -import { bytesToHex } from '@stacks/transactions'; import { getNetworkType, getTruncatedAddress, isHardwareAccount } from '@utils/helper'; import { handleBip322LedgerMessageSigning, signatureVrsToRsv } from '@utils/ledger'; import { useCallback, useEffect, useState } from 'react'; @@ -341,7 +340,7 @@ function SignatureRequest(): JSX.Element { const getMessageHash = useCallback(() => { if (!isSignMessageBip322) { - return bytesToHex(hashMessage(payload.message)); + return buf2hex(hashMessage(payload.message)); } return bip0322Hash(payload.message); }, [isSignMessageBip322, payload.message]); diff --git a/src/app/screens/swap/useAlexSponsoredTransaction.ts b/src/app/screens/swap/useAlexSponsoredTransaction.ts index 49e8d46ea..79395cbd1 100644 --- a/src/app/screens/swap/useAlexSponsoredTransaction.ts +++ b/src/app/screens/swap/useAlexSponsoredTransaction.ts @@ -1,6 +1,7 @@ import useStxPendingTxData from '@hooks/queries/useStxPendingTxData'; import useWalletSelector from '@hooks/useWalletSelector'; -import { StacksTransaction } from '@secretkeylabs/xverse-core'; +import { buf2hex } from '@secretkeylabs/xverse-core'; +import { StacksTransaction } from '@stacks/transactions'; import { useQuery } from '@tanstack/react-query'; import { AlexSDK } from 'alex-sdk'; import { useEffect, useRef, useState } from 'react'; @@ -24,7 +25,7 @@ export const useAlexSponsoredTransaction = (userOverrideSponsorValue: boolean) = }, [isEnabled, error, isLoading]); const sponsorTransaction = async (signed: StacksTransaction) => - alexSDK.broadcastSponsoredTx(signed.serialize().toString('hex')); + alexSDK.broadcastSponsoredTx(buf2hex(signed.serialize())); const { data: stxPendingTxData } = useStxPendingTxData(); const upcomingPendingTransactionNonce = diff --git a/src/app/screens/swap/useSwap.tsx b/src/app/screens/swap/useSwap.tsx index 23cab0a01..a2a846d77 100644 --- a/src/app/screens/swap/useSwap.tsx +++ b/src/app/screens/swap/useSwap.tsx @@ -7,6 +7,7 @@ import { getNonce, microstacksToStx, setNonce, + buf2hex } from '@secretkeylabs/xverse-core'; import { AnchorMode, makeUnsignedContractCall, PostConditionMode } from '@stacks/transactions'; import { AlexSDK, Currency } from 'alex-sdk'; @@ -278,7 +279,7 @@ export function useSwap(): UseSwap { txFeeAmount: fee, txFeeFiatAmount: currencyToToken(Currency.STX, fee)?.fiatAmount, routers: info.route.map(currencyToToken).filter(isNotNull), - unsignedTx: unsignedTx.serialize().toString('hex'), + unsignedTx: buf2hex(unsignedTx.serialize()), functionName: `${tx.contractName}\n${tx.functionName}`, userOverrideSponsorValue, }; diff --git a/src/app/screens/transactionRequest/helper.ts b/src/app/screens/transactionRequest/helper.ts deleted file mode 100644 index 93b5962a2..000000000 --- a/src/app/screens/transactionRequest/helper.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { - createContractCallPromises, - FeesMultipliers, - generateUnsignedStxTokenTransferTransaction, - StacksNetwork, - StacksTransaction, -} from '@secretkeylabs/xverse-core'; -import { TransactionPayload } from '@stacks/connect'; - -export async function getContractCallPromises( - payload: TransactionPayload, - stxAddress: string, - network: StacksNetwork, - stxPublicKey: string, -) { - const [unSignedContractCall, contractInterface, coinsMetaData, showPostConditionMessage] = - await createContractCallPromises(payload, stxAddress, network, stxPublicKey); - return { - unSignedContractCall, - contractInterface, - coinsMetaData, - showPostConditionMessage, - }; -} - -export async function getTokenTransferRequest( - recipient: string, - amount: string, - memo: string, - stxPublicKey: string, - feeMultipliers: FeesMultipliers, - network: StacksNetwork, - stxPendingTransactions, -) { - const unsignedSendStxTx: StacksTransaction = await generateUnsignedStxTokenTransferTransaction( - recipient, - amount, - memo!, - stxPendingTransactions?.pendingTransactions ?? [], - stxPublicKey, - network, - ); - // increasing the fees with multiplication factor - const fee: bigint = BigInt(unsignedSendStxTx.auth.spendingCondition.fee.toString()) ?? BigInt(0); - if (feeMultipliers?.stxSendTxMultiplier) { - unsignedSendStxTx.setFee(fee * BigInt(feeMultipliers.stxSendTxMultiplier)); - } - return unsignedSendStxTx; -} diff --git a/src/app/screens/transactionRequest/index.tsx b/src/app/screens/transactionRequest/index.tsx index dff53f42c..504c99eee 100644 --- a/src/app/screens/transactionRequest/index.tsx +++ b/src/app/screens/transactionRequest/index.tsx @@ -1,23 +1,28 @@ import ContractCallRequest from '@components/transactionsRequests/ContractCallRequest'; import ContractDeployRequest from '@components/transactionsRequests/ContractDeployTransaction'; import useNetworkSelector from '@hooks/useNetwork'; -import useDappRequest from '@hooks/useTransationRequest'; +import useStxTransactionRequest from '@hooks/useStxTransactionRequest'; import useWalletReducer from '@hooks/useWalletReducer'; import useWalletSelector from '@hooks/useWalletSelector'; import { + Account, + buf2hex, Coin, ContractFunction, createDeployContractRequest, extractFromPayload, fetchStxPendingTxData, + getContractCallPromises, + getTokenTransferRequest, } from '@secretkeylabs/xverse-core'; +import { ContractCallPayload, ContractDeployPayload } from '@stacks/connect'; import { StacksTransaction } from '@stacks/transactions'; import { getNetworkType, isHardwareAccount } from '@utils/helper'; import { useEffect, useState } from 'react'; +import toast from 'react-hot-toast'; import { useNavigate } from 'react-router-dom'; import { MoonLoader } from 'react-spinners'; import styled from 'styled-components'; -import { getContractCallPromises, getTokenTransferRequest } from './helper'; const LoaderContainer = styled.div((props) => ({ display: 'flex', @@ -28,36 +33,42 @@ const LoaderContainer = styled.div((props) => ({ })); function TransactionRequest() { - const { payload, tabId, requestToken } = useDappRequest(); + const { network, feeMultipliers, accountsList, selectedAccount } = useWalletSelector(); + const { payload, tabId, requestToken, stacksTransaction } = useStxTransactionRequest(); const navigate = useNavigate(); - const { stxAddress, network, stxPublicKey, feeMultipliers, accountsList, selectedAccount } = - useWalletSelector(); const selectedNetwork = useNetworkSelector(); const { switchAccount } = useWalletReducer(); - const [unsignedTx, setUnsignedTx] = useState(); + const [unsignedTx, setUnsignedTx] = useState(null); const [funcMetaData, setFuncMetaData] = useState(undefined); const [coinsMetaData, setCoinsMetaData] = useState(null); const [codeBody, setCodeBody] = useState(undefined); const [contractName, setContractName] = useState(undefined); - const [hasSwitchedAccount, setHasSwitchedAccount] = useState(false); const [attachment, setAttachment] = useState(undefined); - const handleTokenTransferRequest = async () => { - const stxPendingTxData = await fetchStxPendingTxData(stxAddress, selectedNetwork); + const handleTokenTransferRequest = async (tokenTransferPayload: any, requestAccount: Account) => { + const stxPendingTxData = await fetchStxPendingTxData( + requestAccount.stxAddress, + selectedNetwork, + ); const unsignedSendStxTx = await getTokenTransferRequest( - payload.recipient, - payload.amount, - payload.memo!, - stxPublicKey, - feeMultipliers!, + tokenTransferPayload.recipient, + tokenTransferPayload.amount, + tokenTransferPayload.memo!, + requestAccount.stxPublicKey, + { + stxSendTxMultiplier: feeMultipliers?.stxSendTxMultiplier || 1, + poolStackingTxMultiplier: feeMultipliers?.poolStackingTxMultiplier || 1, + otherTxMultiplier: feeMultipliers?.otherTxMultiplier || 1, + }, selectedNetwork, stxPendingTxData || [], + stacksTransaction?.auth, ); setUnsignedTx(unsignedSendStxTx); navigate('/confirm-stx-tx', { state: { - unsignedTx: unsignedSendStxTx.serialize().toString('hex'), - sponosred: payload.sponsored, + unsignedTx: buf2hex(unsignedSendStxTx.serialize()), + sponsored: tokenTransferPayload.sponsored, isBrowserTx: true, tabId, requestToken, @@ -65,22 +76,31 @@ function TransactionRequest() { }); }; - const handleContractCallRequest = async () => { + const handleContractCallRequest = async ( + contractCallPayload: ContractCallPayload, + requestAccount: Account, + ) => { const { unSignedContractCall, contractInterface, coinsMetaData: coinMeta, - } = await getContractCallPromises(payload, stxAddress, selectedNetwork, stxPublicKey); + } = await getContractCallPromises( + contractCallPayload, + requestAccount.stxAddress, + selectedNetwork, + requestAccount.stxPublicKey, + stacksTransaction?.auth, + ); setUnsignedTx(unSignedContractCall); setCoinsMetaData(coinMeta); const invokedFuncMetaData: ContractFunction | undefined = contractInterface?.functions?.find( - (func) => func.name === payload.functionName, + (func) => func.name === contractCallPayload.functionName, ); - const txAttachment = payload.attachment ?? undefined; - if (txAttachment) setAttachment(txAttachment); + const txAttachment = contractCallPayload.attachment ?? undefined; + if (txAttachment) setAttachment(Buffer.from(txAttachment)); if (invokedFuncMetaData) { setFuncMetaData(invokedFuncMetaData); - const { funcArgs } = extractFromPayload(payload); + const { funcArgs } = extractFromPayload(contractCallPayload); if (invokedFuncMetaData?.args.length !== funcArgs.length) { navigate('/tx-status', { state: { @@ -94,20 +114,61 @@ function TransactionRequest() { } }; - const handleContractDeployRequest = async () => { + const handleContractDeployRequest = async ( + contractDeployPayload: ContractDeployPayload, + requestAccount: Account, + ) => { const response = await createDeployContractRequest( - payload, + contractDeployPayload, selectedNetwork, - stxPublicKey, + requestAccount.stxPublicKey, feeMultipliers!, - stxAddress, + requestAccount.stxAddress, + stacksTransaction?.auth, ); setUnsignedTx(response.contractDeployTx); setCodeBody(response.codeBody); setContractName(response.contractName); }; - const switchAccountBasedOnRequest = () => { + const handleTxSigningRequest = async (requestAccount: Account) => { + if (payload.txType === 'contract_call') { + await handleContractCallRequest(payload, requestAccount); + } else if (payload.txType === 'smart_contract') { + await handleContractDeployRequest(payload, requestAccount); + } else { + navigate('/confirm-stx-tx', { + state: { + unsignedTx: payload.txHex, + sponsored: payload.sponsored, + isBrowserTx: true, + tabId, + requestToken, + }, + }); + } + }; + + const createRequestTx = async (account: Account) => { + try { + if (!payload.txHex) { + if (payload.txType === 'token_transfer') { + await handleTokenTransferRequest(payload, account); + } else if (payload.txType === 'contract_call') { + await handleContractCallRequest(payload, account); + } else if (payload.txType === 'smart_contract') { + await handleContractDeployRequest(payload, account); + } + } else { + await handleTxSigningRequest(account); + } + } catch (e: unknown) { + console.error(e); // eslint-disable-line + toast.error('Unexpected error creating transaction'); + } + }; + + const handleRequest = async () => { if (getNetworkType(payload.network) !== network.type) { navigate('/tx-status', { state: { @@ -123,7 +184,8 @@ function TransactionRequest() { if (payload.stxAddress !== selectedAccount?.stxAddress && !isHardwareAccount(selectedAccount)) { const account = accountsList.find((acc) => acc.stxAddress === payload.stxAddress); if (account) { - switchAccount(account); + await switchAccount(account); + await createRequestTx(account); } else { navigate('/tx-status', { state: { @@ -135,30 +197,14 @@ function TransactionRequest() { }, }); } - } - setHasSwitchedAccount(true); - }; - - const createRequestTx = async () => { - try { - if (hasSwitchedAccount) { - if (payload.txType === 'token_transfer') { - await handleTokenTransferRequest(); - } else if (payload.txType === 'contract_call') { - await handleContractCallRequest(); - } else if (payload.txType === 'smart_contract') { - await handleContractDeployRequest(); - } - } - } catch (e: unknown) { - console.log(e); + } else if (selectedAccount) { + await createRequestTx(selectedAccount!); } }; useEffect(() => { - switchAccountBasedOnRequest(); - createRequestTx(); - }, [hasSwitchedAccount]); + handleRequest(); + }, []); return ( <> diff --git a/src/app/stores/wallet/reducer.ts b/src/app/stores/wallet/reducer.ts index 28000ab51..6e626e48c 100644 --- a/src/app/stores/wallet/reducer.ts +++ b/src/app/stores/wallet/reducer.ts @@ -31,6 +31,37 @@ import { WalletState, } from './actions/types'; +/* + * This store should ONLY be used for global app settings such as: + * - hasActivatedOrdinalsKey: undefined, + * - hasActivatedRareSatsKey: undefined, + * - hasActivatedRBFKey: true, + * - rareSatsNoticeDismissed: undefined, + * - showBtcReceiveAlert: true, + * - showOrdinalReceiveAlert: true, + * - showDataCollectionAlert: true, + * - btcApiUrl: '', + * - selectedAccount: null, + * - accountType: 'software', + * - accountName: undefined, + * - walletLockPeriod: WalletSessionPeriods.STANDARD, + * - isUnlocked: false, + * - fiatCurrency: 'USD', + * + * because we get many bugs around caching the wrong values when switching accounts, + * we prefer react-query cache (with the correct cache keys) for all + * account-specific values, and API fetch results such as: + * - btcFiatRate: '0', + * - stxBtcRate: '0', + * - stxBalance: '0', + * - stxAvailableBalance: '0', + * - stxLockedBalance: '0', + * - stxNonce: 0, + * - btcBalance: '0', + * - feeMultipliers: null, + * + * TODO refactor most of these values out of the store and use query cache instead + */ const initialWalletState: WalletState = { stxAddress: '', btcAddress: '', diff --git a/src/inpage/index.ts b/src/inpage/index.ts index ac0ad472b..e9b634585 100644 --- a/src/inpage/index.ts +++ b/src/inpage/index.ts @@ -14,12 +14,12 @@ declare global { } // we inject these in case implementors call the default providers -window.StacksProvider = StacksMethodsProvider; -window.BitcoinProvider = SatsMethodsProvider; +window.StacksProvider = StacksMethodsProvider as StacksProvider; +window.BitcoinProvider = SatsMethodsProvider as BitcoinProvider; // We also inject the providers in an Xverse object in order to have them exclusively available for Xverse wallet // and not clash with providers from other wallets window.XverseProviders = { - StacksProvider: StacksMethodsProvider, - BitcoinProvider: SatsMethodsProvider, + StacksProvider: StacksMethodsProvider as StacksProvider, + BitcoinProvider: SatsMethodsProvider as BitcoinProvider, }; diff --git a/src/inpage/sats.inpage.ts b/src/inpage/sats.inpage.ts index d30c4a49c..62403ed9f 100644 --- a/src/inpage/sats.inpage.ts +++ b/src/inpage/sats.inpage.ts @@ -36,7 +36,6 @@ const isValidEvent = (event: MessageEvent, method: SatsConnectMessageToContentSc return correctSource && correctMethod && !!data.payload; }; -// @ts-ignore const SatsMethodsProvider: BitcoinProvider = { connect: async (btcAddressRequest): Promise => { const event = new CustomEvent(DomEventName.getAddressRequest, { diff --git a/src/inpage/stacks.inpage.ts b/src/inpage/stacks.inpage.ts index 758bc053e..631b9a9fa 100644 --- a/src/inpage/stacks.inpage.ts +++ b/src/inpage/stacks.inpage.ts @@ -1,4 +1,3 @@ -import { StacksProvider } from '@stacks/connect'; import { AuthenticationRequestEventDetails, DomEventName, @@ -13,6 +12,7 @@ import { SignatureResponseMessage, TransactionResponseMessage, } from '@common/types/message-types'; +import { StacksProvider } from '@stacks/connect'; declare const VERSION: string; type CallableMethods = keyof typeof ExternalMethods; @@ -60,7 +60,7 @@ const isValidEvent = (event: MessageEvent, method: LegacyMessageToContentScript[ return correctSource && correctMethod && !!data.payload; }; -const StacksMethodsProvider: StacksProvider = { +const StacksMethodsProvider: Partial = { getURL: async () => { const { url } = await callAndReceive('getURL'); return url; diff --git a/webpack/webpack.config.js b/webpack/webpack.config.js index 81b9b2682..6ea404cd4 100644 --- a/webpack/webpack.config.js +++ b/webpack/webpack.config.js @@ -12,14 +12,7 @@ const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin'); const aliases = { // alias stacks.js packages to their esm (default prefers /dist/polyfill) - '@stacks/auth': '@stacks/auth/dist/esm', - '@stacks/common': '@stacks/common/dist/esm', - '@stacks/encryption': '@stacks/encryption/dist/esm', - '@stacks/network': '@stacks/network/dist/esm', - '@stacks/profile': '@stacks/profile/dist/esm', - '@stacks/storage': '@stacks/storage/dist/esm', '@stacks/transactions': '@stacks/transactions/dist/esm', - '@stacks/keychain': '@stacks/keychain/dist/esm', '@secretkeylabs/xverse-core': '@secretkeylabs/xverse-core/dist', }; const ASSET_PATH = process.env.ASSET_PATH || '/';