Skip to content

Commit 072678e

Browse files
Merge pull request #192 from BitGo/WAL-762
fix!: bump BitGo SDK and fix UTXO multisig sendMany
2 parents b774030 + c25b99b commit 072678e

9 files changed

Lines changed: 2355 additions & 3522 deletions

File tree

package-lock.json

Lines changed: 2043 additions & 3431 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 77 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -28,80 +28,80 @@
2828
"@api-ts/response": "^2.1.0",
2929
"@api-ts/superagent-wrapper": "^1.3.3",
3030
"@api-ts/typed-express-router": "2.0.0",
31-
"@bitgo-beta/abstract-cosmos": "1.0.1-beta.1212",
32-
"@bitgo-beta/abstract-eth": "1.0.2-beta.1461",
33-
"@bitgo-beta/abstract-utxo": "1.1.1-beta.1464",
34-
"@bitgo-beta/sdk-api": "1.10.1-beta.1230",
35-
"@bitgo-beta/sdk-coin-ada": "2.3.14-beta.1229",
36-
"@bitgo-beta/sdk-coin-algo": "1.3.19-beta.1229",
37-
"@bitgo-beta/sdk-coin-apt": "1.0.1-beta.671",
38-
"@bitgo-beta/sdk-coin-arbeth": "1.0.1-beta.1085",
39-
"@bitgo-beta/sdk-coin-asi": "1.0.1-beta.318",
40-
"@bitgo-beta/sdk-coin-atom": "3.1.2-beta.1227",
41-
"@bitgo-beta/sdk-coin-avaxc": "1.1.1-beta.1455",
42-
"@bitgo-beta/sdk-coin-avaxp": "3.5.10-beta.1228",
43-
"@bitgo-beta/sdk-coin-baby": "1.0.1-beta.570",
44-
"@bitgo-beta/sdk-coin-bch": "1.1.1-beta.1456",
45-
"@bitgo-beta/sdk-coin-bcha": "1.1.1-beta.1455",
46-
"@bitgo-beta/sdk-coin-bera": "1.0.1-beta.1084",
47-
"@bitgo-beta/sdk-coin-bld": "1.0.1-beta.1189",
48-
"@bitgo-beta/sdk-coin-bsc": "1.0.1-beta.1455",
49-
"@bitgo-beta/sdk-coin-bsv": "1.1.1-beta.1455",
50-
"@bitgo-beta/sdk-coin-btc": "1.0.2-beta.1456",
51-
"@bitgo-beta/sdk-coin-btg": "1.1.1-beta.1455",
52-
"@bitgo-beta/sdk-coin-celo": "1.1.1-beta.1454",
53-
"@bitgo-beta/sdk-coin-coredao": "1.0.0-beta.663",
54-
"@bitgo-beta/sdk-coin-coreum": "1.0.1-beta.1071",
55-
"@bitgo-beta/sdk-coin-cronos": "1.0.1-beta.363",
56-
"@bitgo-beta/sdk-coin-cspr": "1.2.19-beta.1228",
57-
"@bitgo-beta/sdk-coin-dash": "1.1.1-beta.1456",
58-
"@bitgo-beta/sdk-coin-doge": "1.0.2-beta.1456",
59-
"@bitgo-beta/sdk-coin-dot": "2.2.8-beta.1228",
60-
"@bitgo-beta/sdk-coin-eos": "1.3.19-beta.1227",
61-
"@bitgo-beta/sdk-coin-etc": "1.0.2-beta.1454",
62-
"@bitgo-beta/sdk-coin-eth": "4.4.1-beta.1226",
63-
"@bitgo-beta/sdk-coin-ethw": "20.0.76-beta.393",
64-
"@bitgo-beta/sdk-coin-flr": "1.0.1-beta.570",
65-
"@bitgo-beta/sdk-coin-hash": "1.0.1-beta.1186",
66-
"@bitgo-beta/sdk-coin-hbar": "1.0.2-beta.1456",
67-
"@bitgo-beta/sdk-coin-icp": "1.0.1-beta.583",
68-
"@bitgo-beta/sdk-coin-initia": "1.1.1-beta.343",
69-
"@bitgo-beta/sdk-coin-injective": "1.1.3-beta.1180",
70-
"@bitgo-beta/sdk-coin-islm": "1.0.1-beta.1083",
71-
"@bitgo-beta/sdk-coin-ltc": "1.1.1-beta.1456",
72-
"@bitgo-beta/sdk-coin-mon": "1.0.1-beta.399",
73-
"@bitgo-beta/sdk-coin-near": "1.3.19-beta.1226",
74-
"@bitgo-beta/sdk-coin-oas": "1.0.1-beta.665",
75-
"@bitgo-beta/sdk-coin-opeth": "1.0.1-beta.1082",
76-
"@bitgo-beta/sdk-coin-osmo": "1.0.1-beta.1210",
77-
"@bitgo-beta/sdk-coin-polygon": "1.0.2-beta.1455",
78-
"@bitgo-beta/sdk-coin-polyx": "1.0.1-beta.428",
79-
"@bitgo-beta/sdk-coin-rbtc": "1.1.1-beta.1454",
80-
"@bitgo-beta/sdk-coin-rune": "1.0.0-beta.694",
81-
"@bitgo-beta/sdk-coin-sei": "1.0.1-beta.1182",
82-
"@bitgo-beta/sdk-coin-sgb": "1.1.1-beta.570",
83-
"@bitgo-beta/sdk-coin-sol": "2.4.3-beta.1225",
84-
"@bitgo-beta/sdk-coin-soneium": "1.0.1-beta.379",
85-
"@bitgo-beta/sdk-coin-stt": "1.0.1-beta.388",
86-
"@bitgo-beta/sdk-coin-stx": "1.1.1-beta.1460",
87-
"@bitgo-beta/sdk-coin-sui": "3.0.3-beta.1225",
88-
"@bitgo-beta/sdk-coin-tao": "1.0.0-beta.592",
89-
"@bitgo-beta/sdk-coin-tia": "3.1.8-beta.197",
90-
"@bitgo-beta/sdk-coin-ton": "1.0.1-beta.1093",
91-
"@bitgo-beta/sdk-coin-trx": "1.0.2-beta.1459",
92-
"@bitgo-beta/sdk-coin-vet": "1.0.1-beta.343",
93-
"@bitgo-beta/sdk-coin-wemix": "1.0.1-beta.563",
94-
"@bitgo-beta/sdk-coin-world": "1.0.1-beta.389",
95-
"@bitgo-beta/sdk-coin-xdc": "1.0.1-beta.570",
96-
"@bitgo-beta/sdk-coin-xlm": "2.0.5-beta.1225",
97-
"@bitgo-beta/sdk-coin-xrp": "1.1.1-beta.1458",
98-
"@bitgo-beta/sdk-coin-xtz": "1.1.1-beta.1458",
99-
"@bitgo-beta/sdk-coin-zec": "1.1.1-beta.1456",
100-
"@bitgo-beta/sdk-coin-zeta": "1.0.1-beta.1147",
101-
"@bitgo-beta/sdk-coin-zketh": "1.0.1-beta.1012",
102-
"@bitgo-beta/sdk-core": "8.2.1-beta.1231",
103-
"@bitgo-beta/sdk-lib-mpc": "8.2.0-beta.1223",
104-
"@bitgo-beta/statics": "15.1.1-beta.1234",
31+
"@bitgo-beta/abstract-cosmos": "1.0.1-beta.1689",
32+
"@bitgo-beta/abstract-eth": "1.0.2-beta.1938",
33+
"@bitgo-beta/abstract-utxo": "1.1.1-beta.1941",
34+
"@bitgo-beta/sdk-api": "1.10.1-beta.1707",
35+
"@bitgo-beta/sdk-coin-ada": "2.3.14-beta.1706",
36+
"@bitgo-beta/sdk-coin-algo": "2.8.9-beta.186",
37+
"@bitgo-beta/sdk-coin-apt": "1.0.1-beta.1148",
38+
"@bitgo-beta/sdk-coin-arbeth": "1.0.1-beta.1561",
39+
"@bitgo-beta/sdk-coin-asi": "1.0.1-beta.795",
40+
"@bitgo-beta/sdk-coin-atom": "3.1.2-beta.1704",
41+
"@bitgo-beta/sdk-coin-avaxc": "1.1.1-beta.1931",
42+
"@bitgo-beta/sdk-coin-avaxp": "5.7.3-beta.20",
43+
"@bitgo-beta/sdk-coin-baby": "1.0.1-beta.1047",
44+
"@bitgo-beta/sdk-coin-bch": "1.1.1-beta.1932",
45+
"@bitgo-beta/sdk-coin-bcha": "1.1.1-beta.1931",
46+
"@bitgo-beta/sdk-coin-bera": "1.0.1-beta.1560",
47+
"@bitgo-beta/sdk-coin-bld": "1.0.1-beta.1666",
48+
"@bitgo-beta/sdk-coin-bsc": "1.0.1-beta.1931",
49+
"@bitgo-beta/sdk-coin-bsv": "1.1.1-beta.1931",
50+
"@bitgo-beta/sdk-coin-btc": "1.0.2-beta.1931",
51+
"@bitgo-beta/sdk-coin-btg": "1.1.1-beta.1931",
52+
"@bitgo-beta/sdk-coin-celo": "1.1.1-beta.1930",
53+
"@bitgo-beta/sdk-coin-coredao": "1.0.0-beta.1139",
54+
"@bitgo-beta/sdk-coin-coreum": "1.0.1-beta.1548",
55+
"@bitgo-beta/sdk-coin-cronos": "1.0.1-beta.839",
56+
"@bitgo-beta/sdk-coin-cspr": "1.2.19-beta.1704",
57+
"@bitgo-beta/sdk-coin-dash": "1.1.1-beta.1932",
58+
"@bitgo-beta/sdk-coin-doge": "1.0.2-beta.1932",
59+
"@bitgo-beta/sdk-coin-dot": "2.2.8-beta.1704",
60+
"@bitgo-beta/sdk-coin-eos": "1.3.19-beta.1702",
61+
"@bitgo-beta/sdk-coin-etc": "1.0.2-beta.1930",
62+
"@bitgo-beta/sdk-coin-eth": "4.4.1-beta.1702",
63+
"@bitgo-beta/sdk-coin-ethw": "20.0.76-beta.869",
64+
"@bitgo-beta/sdk-coin-flr": "1.0.1-beta.1046",
65+
"@bitgo-beta/sdk-coin-hash": "1.0.1-beta.1662",
66+
"@bitgo-beta/sdk-coin-hbar": "1.0.2-beta.1932",
67+
"@bitgo-beta/sdk-coin-icp": "1.0.1-beta.1059",
68+
"@bitgo-beta/sdk-coin-initia": "1.1.1-beta.818",
69+
"@bitgo-beta/sdk-coin-injective": "1.1.3-beta.1656",
70+
"@bitgo-beta/sdk-coin-islm": "1.0.1-beta.1559",
71+
"@bitgo-beta/sdk-coin-ltc": "1.1.1-beta.1932",
72+
"@bitgo-beta/sdk-coin-mon": "1.0.1-beta.875",
73+
"@bitgo-beta/sdk-coin-near": "1.3.19-beta.1702",
74+
"@bitgo-beta/sdk-coin-oas": "1.0.1-beta.1141",
75+
"@bitgo-beta/sdk-coin-opeth": "1.0.1-beta.1558",
76+
"@bitgo-beta/sdk-coin-osmo": "1.0.1-beta.1686",
77+
"@bitgo-beta/sdk-coin-polygon": "1.0.2-beta.1931",
78+
"@bitgo-beta/sdk-coin-polyx": "1.0.1-beta.904",
79+
"@bitgo-beta/sdk-coin-rbtc": "1.1.1-beta.1930",
80+
"@bitgo-beta/sdk-coin-rune": "1.0.0-beta.1170",
81+
"@bitgo-beta/sdk-coin-sei": "1.0.1-beta.1658",
82+
"@bitgo-beta/sdk-coin-sgb": "1.1.1-beta.1046",
83+
"@bitgo-beta/sdk-coin-sol": "7.6.4-beta.351",
84+
"@bitgo-beta/sdk-coin-soneium": "1.0.1-beta.855",
85+
"@bitgo-beta/sdk-coin-stt": "1.0.1-beta.864",
86+
"@bitgo-beta/sdk-coin-stx": "1.1.1-beta.1936",
87+
"@bitgo-beta/sdk-coin-sui": "3.0.3-beta.1701",
88+
"@bitgo-beta/sdk-coin-tao": "1.0.0-beta.1068",
89+
"@bitgo-beta/sdk-coin-tia": "3.1.8-beta.673",
90+
"@bitgo-beta/sdk-coin-ton": "1.0.1-beta.1569",
91+
"@bitgo-beta/sdk-coin-trx": "1.0.2-beta.1935",
92+
"@bitgo-beta/sdk-coin-vet": "1.0.1-beta.819",
93+
"@bitgo-beta/sdk-coin-wemix": "1.0.1-beta.1039",
94+
"@bitgo-beta/sdk-coin-world": "1.0.1-beta.865",
95+
"@bitgo-beta/sdk-coin-xdc": "1.0.1-beta.1046",
96+
"@bitgo-beta/sdk-coin-xlm": "2.0.5-beta.1700",
97+
"@bitgo-beta/sdk-coin-xrp": "1.1.1-beta.1933",
98+
"@bitgo-beta/sdk-coin-xtz": "1.1.1-beta.1934",
99+
"@bitgo-beta/sdk-coin-zec": "1.1.1-beta.1932",
100+
"@bitgo-beta/sdk-coin-zeta": "1.0.1-beta.1623",
101+
"@bitgo-beta/sdk-coin-zketh": "1.0.1-beta.1488",
102+
"@bitgo-beta/sdk-core": "8.2.1-beta.1708",
103+
"@bitgo-beta/sdk-lib-mpc": "8.2.0-beta.1703",
104+
"@bitgo-beta/statics": "15.1.1-beta.1714",
105105
"@bitgo/wasm-miniscript": "2.0.0-beta.7",
106106
"@commitlint/config-conventional": "^19.8.1",
107107
"@ethereumjs/tx": "^3.3.0",
@@ -120,7 +120,6 @@
120120
"zod": "^3.25.48"
121121
},
122122
"overrides": {
123-
"@bitgo-beta/sdk-core": "8.2.1-beta.1231",
124123
"elliptic": "^6.6.1",
125124
"expo": "^48.0.0",
126125
"form-data": "^4.0.4",
@@ -136,7 +135,9 @@
136135
"got": "^12.1.0",
137136
"store2": "^2.14.4",
138137
"tar": "^7.5.11",
139-
"basic-ftp": "^5.2.0",
138+
"basic-ftp": "^5.3.0",
139+
"@xmldom/xmldom": "^0.9.9",
140+
"protobufjs": "^7.5.5",
140141
"flatted": "^3.4.0",
141142
"serialize-javascript": "^7.0.3",
142143
"@isaacs/brace-expansion": "^5.0.1",

src/__tests__/api/advancedWalletManager/recoveryMultisigTransaction.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ describe('UTXO recovery', () => {
8484

8585
const unsignedSweepPrebuildTx = {
8686
txHex:
87-
'0100000001edd7a583fef5aabf265e6dca24452581a3cca2671a1fa6b4e404bccb6ff4c83b0000000000ffffffff01780f0000000000002200202120dcf53e62a4cc9d3843993aa2258bd14fbf911a4ea4cf4f3ac840f417027900000000',
87+
'70736274ff01005e0100000001edd7a583fef5aabf265e6dca24452581a3cca2671a1fa6b4e404bccb6ff4c83b0000000000ffffffff01780f0000000000002200202120dcf53e62a4cc9d3843993aa2258bd14fbf911a4ea4cf4f3ac840f4170279000000000001012ba00f00000000000022002008da4d49c618c6a00dc86a962f9c452dc0151653d2630470dcf8375a9f6496a501030401000000010569522103a1c425fd9b169e6ab5ed3de596acb777ccae0cda3d91256238b5e739a3f14aae210222a76697605c890dc4365132f9ae0d351952a1aad7eecf78d9923766dbe74a1e21033b21c0758ffbd446204914fa1d1c5921e9f82c2671dac89737666aa9375973e953ae22060222a76697605c890dc4365132f9ae0d351952a1aad7eecf78d9923766dbe74a1e14502e31ca000000000000000014000000000000002206033b21c0758ffbd446204914fa1d1c5921e9f82c2671dac89737666aa9375973e9146700d77100000000000000001400000000000000220603a1c425fd9b169e6ab5ed3de596acb777ccae0cda3d91256238b5e739a3f14aae14c2d0eb0a000000000000000014000000000000000000',
8888
txInfo: {
8989
unspents: [
9090
{

src/__tests__/api/advancedWalletManager/signMultisigTransaction.test.ts

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,4 +118,40 @@ describe('signMultisigTransaction', () => {
118118

119119
kmsNock.done();
120120
});
121+
122+
it('should sign a tbtc PSBT when walletPubs are provided', async () => {
123+
const txHexPrefix = '70736274ff'; // PSBT magic bytes
124+
const userPub =
125+
'xpub661MyMwAqRbcF3g1sUm7T5pN8ViCr9bS6XiQbq7dVXFdPEGYfhGgjjV2AFxTYVWik29y7NHmCZjWYDkt4RGw57HNYpHnoHeeqJV6s8hwcsV';
126+
const backupPub =
127+
'xpub661MyMwAqRbcEywGPF6Pg1FDUtHGyxsn7nph8dcy8GFLKvQ8hSCKgUm8sNbJhegDbmLtMpMnGZtrqfRXCjeDtfJ2UGDSzNTkRuvAQ5KNPcH';
128+
const bitgoPub =
129+
'xpub661MyMwAqRbcGcBurxn9ptqqKGmMhnKa8D7TeZkaWpfQNTeG4qKEJ67eb6Hy58kZBwPHqjUt5iApUwvFVk9ffQYaV42RRom2p7yU5bcCwpq';
130+
131+
const txHex = `${txHexPrefix}01005e0100000001edd7a583fef5aabf265e6dca24452581a3cca2671a1fa6b4e404bccb6ff4c83b0000000000ffffffff01780f0000000000002200202120dcf53e62a4cc9d3843993aa2258bd14fbf911a4ea4cf4f3ac840f4170279000000000001012ba00f00000000000022002008da4d49c618c6a00dc86a962f9c452dc0151653d2630470dcf8375a9f6496a501030401000000010569522103a1c425fd9b169e6ab5ed3de596acb777ccae0cda3d91256238b5e739a3f14aae210222a76697605c890dc4365132f9ae0d351952a1aad7eecf78d9923766dbe74a1e21033b21c0758ffbd446204914fa1d1c5921e9f82c2671dac89737666aa9375973e953ae22060222a76697605c890dc4365132f9ae0d351952a1aad7eecf78d9923766dbe74a1e14502e31ca000000000000000014000000000000002206033b21c0758ffbd446204914fa1d1c5921e9f82c2671dac89737666aa9375973e9146700d77100000000000000001400000000000000220603a1c425fd9b169e6ab5ed3de596acb777ccae0cda3d91256238b5e739a3f14aae14c2d0eb0a000000000000000014000000000000000000`;
132+
133+
const kmsNock = nock(kmsUrl).get(`/key/${userPub}`).query({ source: 'user' }).reply(200, {
134+
prv: 'xprv9s21ZrQH143K2ZbYmTE75wsdaTsiSgsajJnooSi1wBieWRwQ89xSBwAYK1VJR795Y8XFCCXYHHs4sk2Heg6dkX3CHMBq5bw8DwBWByWx883',
135+
pub: userPub,
136+
source: 'user',
137+
type: 'independent',
138+
});
139+
140+
const response = await agent
141+
.post(`/api/tbtc/multisig/sign`)
142+
.set('Authorization', `Bearer ${accessToken}`)
143+
.send({
144+
source: 'user',
145+
pub: userPub,
146+
txPrebuild: { txHex },
147+
walletPubs: [userPub, backupPub, bitgoPub],
148+
});
149+
150+
response.status.should.equal(200);
151+
// BitGoPsbt path returns { txHex } (signed PSBT hex), not { halfSigned }
152+
response.body.should.have.property('txHex');
153+
response.body.txHex.should.startWith(txHexPrefix);
154+
155+
kmsNock.done();
156+
});
121157
});

0 commit comments

Comments
 (0)