Skip to content

Commit e279a7b

Browse files
Merge pull request #258 from BitGo/feat/sdk-bump-async-crypto
feat(awm): bump SDK betas and adapt to async encrypt/decrypt
2 parents d9ffd7d + 3219108 commit e279a7b

9 files changed

Lines changed: 1908 additions & 10493 deletions

package-lock.json

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

package.json

Lines changed: 86 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -30,80 +30,80 @@
3030
"@api-ts/response": "^2.1.0",
3131
"@api-ts/superagent-wrapper": "^1.3.3",
3232
"@api-ts/typed-express-router": "2.0.0",
33-
"@bitgo-beta/abstract-cosmos": "1.0.1-beta.1741",
34-
"@bitgo-beta/abstract-eth": "1.0.2-beta.2004",
35-
"@bitgo-beta/abstract-utxo": "1.1.1-beta.2007",
36-
"@bitgo-beta/sdk-api": "1.10.1-beta.1816",
37-
"@bitgo-beta/sdk-coin-ada": "2.3.14-beta.1758",
38-
"@bitgo-beta/sdk-coin-algo": "2.8.9-beta.238",
39-
"@bitgo-beta/sdk-coin-apt": "1.0.1-beta.1200",
40-
"@bitgo-beta/sdk-coin-arbeth": "1.0.1-beta.1613",
41-
"@bitgo-beta/sdk-coin-asi": "1.0.1-beta.847",
42-
"@bitgo-beta/sdk-coin-atom": "3.1.2-beta.1756",
43-
"@bitgo-beta/sdk-coin-avaxc": "1.1.1-beta.1983",
44-
"@bitgo-beta/sdk-coin-avaxp": "5.7.3-beta.72",
45-
"@bitgo-beta/sdk-coin-baby": "1.0.1-beta.1099",
46-
"@bitgo-beta/sdk-coin-bch": "1.1.1-beta.1984",
47-
"@bitgo-beta/sdk-coin-bcha": "1.1.1-beta.1983",
48-
"@bitgo-beta/sdk-coin-bera": "1.0.1-beta.1612",
49-
"@bitgo-beta/sdk-coin-bld": "1.0.1-beta.1718",
50-
"@bitgo-beta/sdk-coin-bsc": "1.0.1-beta.1983",
51-
"@bitgo-beta/sdk-coin-bsv": "1.1.1-beta.1983",
52-
"@bitgo-beta/sdk-coin-btc": "1.0.2-beta.1983",
53-
"@bitgo-beta/sdk-coin-btg": "1.1.1-beta.1983",
54-
"@bitgo-beta/sdk-coin-celo": "1.1.1-beta.1982",
55-
"@bitgo-beta/sdk-coin-coredao": "1.0.0-beta.1191",
56-
"@bitgo-beta/sdk-coin-coreum": "1.0.1-beta.1600",
57-
"@bitgo-beta/sdk-coin-cronos": "1.0.1-beta.891",
58-
"@bitgo-beta/sdk-coin-cspr": "1.2.19-beta.1756",
59-
"@bitgo-beta/sdk-coin-dash": "1.1.1-beta.1984",
60-
"@bitgo-beta/sdk-coin-doge": "1.0.2-beta.1984",
61-
"@bitgo-beta/sdk-coin-dot": "2.2.8-beta.1756",
62-
"@bitgo-beta/sdk-coin-eos": "1.3.19-beta.1754",
63-
"@bitgo-beta/sdk-coin-etc": "1.0.2-beta.1982",
64-
"@bitgo-beta/sdk-coin-eth": "4.4.1-beta.1768",
65-
"@bitgo-beta/sdk-coin-ethw": "20.0.76-beta.935",
66-
"@bitgo-beta/sdk-coin-flr": "1.0.1-beta.1098",
67-
"@bitgo-beta/sdk-coin-hash": "1.0.1-beta.1714",
68-
"@bitgo-beta/sdk-coin-hbar": "1.0.2-beta.1984",
69-
"@bitgo-beta/sdk-coin-icp": "1.0.1-beta.1111",
70-
"@bitgo-beta/sdk-coin-initia": "1.1.1-beta.870",
71-
"@bitgo-beta/sdk-coin-injective": "1.1.3-beta.1708",
72-
"@bitgo-beta/sdk-coin-islm": "1.0.1-beta.1611",
73-
"@bitgo-beta/sdk-coin-ltc": "1.1.1-beta.1984",
74-
"@bitgo-beta/sdk-coin-mon": "1.0.1-beta.927",
75-
"@bitgo-beta/sdk-coin-near": "1.3.19-beta.1754",
76-
"@bitgo-beta/sdk-coin-oas": "1.0.1-beta.1193",
77-
"@bitgo-beta/sdk-coin-opeth": "1.0.1-beta.1610",
78-
"@bitgo-beta/sdk-coin-osmo": "1.0.1-beta.1738",
79-
"@bitgo-beta/sdk-coin-polygon": "1.0.2-beta.1983",
80-
"@bitgo-beta/sdk-coin-polyx": "1.0.1-beta.955",
81-
"@bitgo-beta/sdk-coin-rbtc": "1.1.1-beta.1982",
82-
"@bitgo-beta/sdk-coin-rune": "1.0.0-beta.1222",
83-
"@bitgo-beta/sdk-coin-sei": "1.0.1-beta.1710",
84-
"@bitgo-beta/sdk-coin-sgb": "1.1.1-beta.1098",
85-
"@bitgo-beta/sdk-coin-sol": "7.6.4-beta.403",
86-
"@bitgo-beta/sdk-coin-soneium": "1.0.1-beta.907",
87-
"@bitgo-beta/sdk-coin-stt": "1.0.1-beta.916",
88-
"@bitgo-beta/sdk-coin-stx": "1.1.1-beta.1988",
89-
"@bitgo-beta/sdk-coin-sui": "3.0.3-beta.1753",
90-
"@bitgo-beta/sdk-coin-tao": "1.0.0-beta.1119",
91-
"@bitgo-beta/sdk-coin-tia": "3.1.8-beta.725",
92-
"@bitgo-beta/sdk-coin-ton": "1.0.1-beta.1621",
93-
"@bitgo-beta/sdk-coin-trx": "1.0.2-beta.1987",
94-
"@bitgo-beta/sdk-coin-vet": "1.0.1-beta.871",
95-
"@bitgo-beta/sdk-coin-wemix": "1.0.1-beta.1091",
96-
"@bitgo-beta/sdk-coin-world": "1.0.1-beta.917",
97-
"@bitgo-beta/sdk-coin-xdc": "1.0.1-beta.1098",
98-
"@bitgo-beta/sdk-coin-xlm": "2.0.5-beta.1752",
99-
"@bitgo-beta/sdk-coin-xrp": "1.1.1-beta.1985",
100-
"@bitgo-beta/sdk-coin-xtz": "1.1.1-beta.1986",
101-
"@bitgo-beta/sdk-coin-zec": "1.1.1-beta.1984",
102-
"@bitgo-beta/sdk-coin-zeta": "1.0.1-beta.1675",
103-
"@bitgo-beta/sdk-coin-zketh": "1.0.1-beta.1540",
104-
"@bitgo-beta/sdk-core": "8.2.1-beta.1820",
105-
"@bitgo-beta/sdk-lib-mpc": "8.2.0-beta.1770",
106-
"@bitgo-beta/statics": "15.1.1-beta.1782",
33+
"@bitgo-beta/abstract-cosmos": "1.0.1-beta.1905",
34+
"@bitgo-beta/abstract-eth": "1.0.2-beta.2150",
35+
"@bitgo-beta/abstract-utxo": "1.1.1-beta.2153",
36+
"@bitgo-beta/sdk-api": "1.10.1-beta.1920",
37+
"@bitgo-beta/sdk-coin-ada": "2.3.14-beta.1918",
38+
"@bitgo-beta/sdk-coin-algo": "2.8.9-beta.398",
39+
"@bitgo-beta/sdk-coin-apt": "1.0.1-beta.1360",
40+
"@bitgo-beta/sdk-coin-arbeth": "1.0.1-beta.1772",
41+
"@bitgo-beta/sdk-coin-asi": "1.0.1-beta.1007",
42+
"@bitgo-beta/sdk-coin-atom": "3.1.2-beta.1917",
43+
"@bitgo-beta/sdk-coin-avaxc": "1.1.1-beta.2143",
44+
"@bitgo-beta/sdk-coin-avaxp": "5.7.3-beta.233",
45+
"@bitgo-beta/sdk-coin-baby": "1.0.1-beta.1260",
46+
"@bitgo-beta/sdk-coin-bch": "1.1.1-beta.2143",
47+
"@bitgo-beta/sdk-coin-bcha": "1.1.1-beta.2143",
48+
"@bitgo-beta/sdk-coin-bera": "1.0.1-beta.1772",
49+
"@bitgo-beta/sdk-coin-bld": "1.0.1-beta.1879",
50+
"@bitgo-beta/sdk-coin-bsc": "1.0.1-beta.2142",
51+
"@bitgo-beta/sdk-coin-bsv": "1.1.1-beta.2143",
52+
"@bitgo-beta/sdk-coin-btc": "1.0.2-beta.2143",
53+
"@bitgo-beta/sdk-coin-btg": "1.1.1-beta.2142",
54+
"@bitgo-beta/sdk-coin-celo": "1.1.1-beta.2142",
55+
"@bitgo-beta/sdk-coin-coredao": "1.0.0-beta.1351",
56+
"@bitgo-beta/sdk-coin-coreum": "1.0.1-beta.1761",
57+
"@bitgo-beta/sdk-coin-cronos": "1.0.1-beta.1052",
58+
"@bitgo-beta/sdk-coin-cspr": "1.2.19-beta.1917",
59+
"@bitgo-beta/sdk-coin-dash": "1.1.1-beta.2143",
60+
"@bitgo-beta/sdk-coin-doge": "1.0.2-beta.2144",
61+
"@bitgo-beta/sdk-coin-dot": "2.2.8-beta.1917",
62+
"@bitgo-beta/sdk-coin-eos": "1.3.19-beta.1915",
63+
"@bitgo-beta/sdk-coin-etc": "1.0.2-beta.2141",
64+
"@bitgo-beta/sdk-coin-eth": "4.4.1-beta.1914",
65+
"@bitgo-beta/sdk-coin-ethw": "20.0.76-beta.1080",
66+
"@bitgo-beta/sdk-coin-flr": "1.0.1-beta.1257",
67+
"@bitgo-beta/sdk-coin-hash": "1.0.1-beta.1875",
68+
"@bitgo-beta/sdk-coin-hbar": "1.0.2-beta.2144",
69+
"@bitgo-beta/sdk-coin-icp": "1.0.1-beta.1272",
70+
"@bitgo-beta/sdk-coin-initia": "1.1.1-beta.1031",
71+
"@bitgo-beta/sdk-coin-injective": "1.1.3-beta.1869",
72+
"@bitgo-beta/sdk-coin-islm": "1.0.1-beta.1772",
73+
"@bitgo-beta/sdk-coin-ltc": "1.1.1-beta.2144",
74+
"@bitgo-beta/sdk-coin-mon": "1.0.1-beta.1087",
75+
"@bitgo-beta/sdk-coin-near": "1.3.19-beta.1915",
76+
"@bitgo-beta/sdk-coin-oas": "1.0.1-beta.1353",
77+
"@bitgo-beta/sdk-coin-opeth": "1.0.1-beta.1770",
78+
"@bitgo-beta/sdk-coin-osmo": "1.0.1-beta.1899",
79+
"@bitgo-beta/sdk-coin-polygon": "1.0.2-beta.2143",
80+
"@bitgo-beta/sdk-coin-polyx": "1.0.1-beta.1115",
81+
"@bitgo-beta/sdk-coin-rbtc": "1.1.1-beta.2140",
82+
"@bitgo-beta/sdk-coin-rune": "1.0.0-beta.1383",
83+
"@bitgo-beta/sdk-coin-sei": "1.0.1-beta.1871",
84+
"@bitgo-beta/sdk-coin-sgb": "1.1.1-beta.1258",
85+
"@bitgo-beta/sdk-coin-sol": "7.6.4-beta.564",
86+
"@bitgo-beta/sdk-coin-soneium": "1.0.1-beta.1067",
87+
"@bitgo-beta/sdk-coin-stt": "1.0.1-beta.1075",
88+
"@bitgo-beta/sdk-coin-stx": "1.1.1-beta.2149",
89+
"@bitgo-beta/sdk-coin-sui": "3.0.3-beta.1914",
90+
"@bitgo-beta/sdk-coin-tao": "1.0.0-beta.1280",
91+
"@bitgo-beta/sdk-coin-tia": "3.1.8-beta.886",
92+
"@bitgo-beta/sdk-coin-ton": "1.0.1-beta.1781",
93+
"@bitgo-beta/sdk-coin-trx": "1.0.2-beta.2147",
94+
"@bitgo-beta/sdk-coin-vet": "1.0.1-beta.1030",
95+
"@bitgo-beta/sdk-coin-wemix": "1.0.1-beta.1249",
96+
"@bitgo-beta/sdk-coin-world": "1.0.1-beta.1077",
97+
"@bitgo-beta/sdk-coin-xdc": "1.0.1-beta.1258",
98+
"@bitgo-beta/sdk-coin-xlm": "2.0.5-beta.1911",
99+
"@bitgo-beta/sdk-coin-xrp": "1.1.1-beta.2144",
100+
"@bitgo-beta/sdk-coin-xtz": "1.1.1-beta.2146",
101+
"@bitgo-beta/sdk-coin-zec": "1.1.1-beta.2144",
102+
"@bitgo-beta/sdk-coin-zeta": "1.0.1-beta.1836",
103+
"@bitgo-beta/sdk-coin-zketh": "1.0.1-beta.1700",
104+
"@bitgo-beta/sdk-core": "8.2.1-beta.1925",
105+
"@bitgo-beta/sdk-lib-mpc": "8.2.0-beta.1924",
106+
"@bitgo-beta/statics": "15.1.1-beta.1939",
107107
"@bitgo/wasm-miniscript": "2.0.0-beta.7",
108108
"@commitlint/config-conventional": "^19.8.1",
109109
"@ethereumjs/tx": "^3.3.0",
@@ -122,12 +122,12 @@
122122
"zod": "^3.25.48"
123123
},
124124
"overrides": {
125-
"@bitgo-beta/sdk-core": "8.2.1-beta.1820",
126-
"@bitgo-beta/statics": "15.1.1-beta.1782",
125+
"@bitgo-beta/sdk-core": "8.2.1-beta.1925",
126+
"@bitgo-beta/statics": "15.1.1-beta.1939",
127127
"elliptic": "^6.6.1",
128128
"expo": "^48.0.0",
129129
"form-data": "^4.0.6",
130-
"axios": "^1.13.5",
130+
"axios": "^1.18.0",
131131
"node-fetch": "^2.6.7",
132132
"secp256k1": "^5.0.1",
133133
"semver": "^7.5.2",
@@ -138,7 +138,7 @@
138138
"@babel/runtime": "^7.26.10",
139139
"got": "^12.1.0",
140140
"store2": "^2.14.4",
141-
"tar": "^7.5.11",
141+
"tar": "^7.5.19",
142142
"basic-ftp": "^5.3.0",
143143
"flatted": "^3.4.0",
144144
"serialize-javascript": "^7.0.3",
@@ -152,7 +152,14 @@
152152
"glob": "^11.1.0",
153153
"@xmldom/xmldom": "^0.9.10",
154154
"protobufjs": "^7.6.1",
155-
"lodash": "^4.18.0"
155+
"lodash": "^4.18.0",
156+
"fast-uri": "^3.1.4",
157+
"shell-quote": "^1.9.0",
158+
"brace-expansion@1": "^1.1.16",
159+
"brace-expansion@2": "^2.1.2",
160+
"brace-expansion@5": "^5.0.7",
161+
"js-yaml@3": "^3.15.0",
162+
"js-yaml@4": "^4.3.0"
156163
},
157164
"devDependencies": {
158165
"@semantic-release/github": "^10.0.0",

scripts/bump-version.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,12 @@ const bumpVersion = async (packageName: BitGoBetaPackageName) => {
7171
packageJson.resolutions[packageName] = next;
7272
console.log(`Updating resolution for ${packageName} to ${next}...`);
7373
}
74+
75+
// Update overrides if the package is in overrides (npm pins live here post yarn->npm migration)
76+
if (packageJson.overrides && packageJson.overrides[packageName]) {
77+
packageJson.overrides[packageName] = next;
78+
console.log(`Updating override for ${packageName} to ${next}...`);
79+
}
7480
} else {
7581
console.log(`No suitable version found for ${packageName}, keeping current version`);
7682
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ describe('MPC Finalize', () => {
4848

4949
beforeEach(() => {
5050
bitgo = new BitGoAPI({ env: 'test' });
51-
sinon.stub(bitgo, 'decrypt').returns(
51+
sinon.stub(bitgo, 'decrypt').resolves(
5252
JSON.stringify({
5353
sourceGpgPub: USER_GPG_PUB,
5454
sourceGpgPrv:
@@ -334,7 +334,7 @@ describe('MPC Finalize', () => {
334334
* We need decrypt() to return backup-party material so the handler uses i=2, not i=1,
335335
* and builds signing material with userYShare instead of backupYShare.
336336
*/
337-
sinon.stub(BitGoAPI.prototype, 'decrypt').returns(
337+
sinon.stub(BitGoAPI.prototype, 'decrypt').resolves(
338338
JSON.stringify({
339339
sourceGpgPub:
340340
'-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nxk8EaIpAwBMFK4EEAAoCAwS6KHj/od9lIxin+1KK7XlZ3Hzs5QKkVmc12ZW1\nvCCTnAju/HZ0s1XV6CRhdrTw6d9MTxG58viqn2Nl7j5Buiq5zVUwODgwNWI1\nZTU4NGI4YmRhMmYyNWJmOTEgPHVzZXItMDg4MDViNWU1ODRiOGJkYTJmMjVi\nZjkxQDA4ODA1YjVlNTg0YjhiZGEyZjI1YmY5MS5jb20+wowEEBMIAD4FgmiK\nQMAECwkHCAmQFvKwNF9M/BIDFQgKBBYAAgECGQECmwMCHgEWIQRyXP44VjLq\nqZqNDT4W8rA0X0z8EgAA8w0BANXiDaOm560leVWjji1QZzigjRyJ/sMhsUBG\ncXRNGpOdAQD0VWVgbXmPiqXOzk9Aqwo4iuxiMpoSjcOGjelJhtiI685TBGiK\nQMASBSuBBAAKAgMEfASPaxeQfF8fbxj+IxA1IvBNUTVnfdavndamohiBY208\nfiyFttYfh6aTww6QqlWzqPXY9kU3/+PkgIhDI/Za2AMBCAfCeAQYEwgAKgWC\naIpAwAmQFvKwNF9M/BICmwwWIQRyXP44VjLqqZqNDT4W8rA0X0z8EgAAov8B\nAM92AiJU5QupKoVPSmNyaHoVSUC1zaFqUub2huTY0lliAQCWhmA0x9ZDWlCs\nB3oLcs3H7MksK2f2DcOkRnTpmEyMLg==\n=4fY3\n-----END PGP PUBLIC KEY BLOCK-----\n',

src/advancedWalletManager/handlers/ecdsaMPCV2WalletGenerationFinalize.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export async function ecdsaMPCv2Finalize(
1919
// fetch previous state of execution
2020
const { plaintextKey } = await keyProvider.decryptDataKey({ encryptedKey: encryptedDataKey });
2121
const state: MpcV2RoundState = JSON.parse(
22-
req.bitgo.decrypt({
22+
await req.bitgo.decrypt({
2323
input: encryptedData,
2424
password: plaintextKey,
2525
}),

src/advancedWalletManager/handlers/ecdsaMPCV2WalletGenerationInitialize.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export async function ecdsaMPCv2Initialize(
3131

3232
try {
3333
// Encrypt the state with the plaintext key
34-
const encryptedData = req.bitgo.encrypt({
34+
const encryptedData = await req.bitgo.encrypt({
3535
input: JSON.stringify(state),
3636
password: plaintextKey,
3737
});

src/advancedWalletManager/handlers/ecdsaMPCV2WalletGenerationRound.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ export async function ecdsaMPCv2Round(
4040
// fetch previous state of execution
4141
const { plaintextKey } = await keyProvider.decryptDataKey({ encryptedKey: encryptedDataKey });
4242
const state: MpcV2RoundState = JSON.parse(
43-
req.bitgo.decrypt({
43+
await req.bitgo.decrypt({
4444
input: encryptedData,
4545
password: plaintextKey,
4646
}),
@@ -139,7 +139,7 @@ export async function ecdsaMPCv2Round(
139139
// re-encrypt state
140140
let newEncryptedData;
141141
try {
142-
newEncryptedData = req.bitgo.encrypt({
142+
newEncryptedData = await req.bitgo.encrypt({
143143
input: JSON.stringify({
144144
...state,
145145
round: state.round + 1,

src/advancedWalletManager/handlers/eddsaMPCWalletGenerationFinalize.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export async function eddsaFinalize(req: AwmApiSpecRouteRequest<'v1.mpc.key.fina
3535
// Decrypt the encrypted payload using encryptedDataKey to retrieve the previous state of computation
3636
const decryptedDataKey = await keyProvider.decryptDataKey({ encryptedKey: encryptedDataKey });
3737
const previousState = JSON.parse(
38-
req.bitgo.decrypt({
38+
await req.bitgo.decrypt({
3939
input: encryptedData,
4040
password: decryptedDataKey.plaintextKey,
4141
}),

src/advancedWalletManager/handlers/eddsaMPCWalletGenerationInitialize.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ export async function eddsaInitialize(
101101
};
102102
const { plaintextKey, encryptedKey } = await keyProvider.generateDataKey({ keyType: 'AES-256' });
103103
try {
104-
const encryptedPayload = req.bitgo.encrypt({
104+
const encryptedPayload = await req.bitgo.encrypt({
105105
input: JSON.stringify(payload),
106106
password: plaintextKey,
107107
});

0 commit comments

Comments
 (0)