@bitgo-beta/sdk-core 8.2.1-beta.1713 → 8.2.1-beta.1714
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/bitgo/pendingApproval/pendingApproval.d.ts.map +1 -1
- package/dist/src/bitgo/pendingApproval/pendingApproval.js +4 -2
- package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts +2 -1
- package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/baseTSSUtils.js +3 -3
- package/dist/src/bitgo/utils/tss/baseTypes.d.ts +1 -1
- package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/baseTypes.js +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.js +5 -3
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +5 -3
- package/dist/src/bitgo/utils/tss/recipientUtils.d.ts +20 -0
- package/dist/src/bitgo/utils/tss/recipientUtils.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/recipientUtils.js +46 -0
- package/dist/src/bitgo/wallet/wallet.js +3 -3
- package/dist/test/unit/bitgo/utils/tss/recipientUtils.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/tss/recipientUtils.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/tss/recipientUtils.js +137 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { TransactionParams } from '../../baseCoin';
|
|
2
|
+
import { TxRequest } from './baseTypes';
|
|
3
|
+
/**
|
|
4
|
+
* Transaction types that legitimately carry no explicit recipients.
|
|
5
|
+
* verifyTransaction handles no-recipient validation for these internally.
|
|
6
|
+
* Mirrors the bypass list in abstractEthLikeNewCoins.ts verifyTssTransaction.
|
|
7
|
+
*/
|
|
8
|
+
export declare const NO_RECIPIENT_TX_TYPES: Set<string>;
|
|
9
|
+
/**
|
|
10
|
+
* Resolves the effective txParams for TSS signing recipient verification.
|
|
11
|
+
*
|
|
12
|
+
* For smart contract interactions, recipients live in txRequest.intent.recipients
|
|
13
|
+
* (native amount = 0, so buildParams is empty). Falls back to intent recipients
|
|
14
|
+
* mapped to ITransactionRecipient shape when txParams.recipients is absent.
|
|
15
|
+
*
|
|
16
|
+
* Throws InvalidTransactionError if no recipients can be resolved and the
|
|
17
|
+
* transaction type is not a known no-recipient type.
|
|
18
|
+
*/
|
|
19
|
+
export declare function resolveEffectiveTxParams(txRequest: TxRequest, txParams: TransactionParams | undefined): TransactionParams;
|
|
20
|
+
//# sourceMappingURL=recipientUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipientUtils.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/utils/tss/recipientUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAmB,SAAS,EAAE,MAAM,aAAa,CAAC;AAEzD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,aAShC,CAAC;AAEH;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,iBAAiB,GAAG,SAAS,GACtC,iBAAiB,CAmBnB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NO_RECIPIENT_TX_TYPES = void 0;
|
|
4
|
+
exports.resolveEffectiveTxParams = resolveEffectiveTxParams;
|
|
5
|
+
const errors_1 = require("../../errors");
|
|
6
|
+
/**
|
|
7
|
+
* Transaction types that legitimately carry no explicit recipients.
|
|
8
|
+
* verifyTransaction handles no-recipient validation for these internally.
|
|
9
|
+
* Mirrors the bypass list in abstractEthLikeNewCoins.ts verifyTssTransaction.
|
|
10
|
+
*/
|
|
11
|
+
exports.NO_RECIPIENT_TX_TYPES = new Set([
|
|
12
|
+
'acceleration',
|
|
13
|
+
'fillNonce',
|
|
14
|
+
'transferToken',
|
|
15
|
+
'tokenApproval',
|
|
16
|
+
'consolidate',
|
|
17
|
+
'bridgeFunds',
|
|
18
|
+
'enableToken',
|
|
19
|
+
'customTx', // DeFi/WalletConnect smart contract interactions have no traditional recipients
|
|
20
|
+
]);
|
|
21
|
+
/**
|
|
22
|
+
* Resolves the effective txParams for TSS signing recipient verification.
|
|
23
|
+
*
|
|
24
|
+
* For smart contract interactions, recipients live in txRequest.intent.recipients
|
|
25
|
+
* (native amount = 0, so buildParams is empty). Falls back to intent recipients
|
|
26
|
+
* mapped to ITransactionRecipient shape when txParams.recipients is absent.
|
|
27
|
+
*
|
|
28
|
+
* Throws InvalidTransactionError if no recipients can be resolved and the
|
|
29
|
+
* transaction type is not a known no-recipient type.
|
|
30
|
+
*/
|
|
31
|
+
function resolveEffectiveTxParams(txRequest, txParams) {
|
|
32
|
+
const intentRecipients = txRequest.intent?.recipients?.map((intentRecipient) => ({
|
|
33
|
+
address: intentRecipient.address.address,
|
|
34
|
+
amount: intentRecipient.amount.value,
|
|
35
|
+
data: intentRecipient.data,
|
|
36
|
+
}));
|
|
37
|
+
const effectiveTxParams = {
|
|
38
|
+
...txParams,
|
|
39
|
+
recipients: txParams?.recipients?.length ? txParams.recipients : intentRecipients,
|
|
40
|
+
};
|
|
41
|
+
if (!effectiveTxParams.recipients?.length && !exports.NO_RECIPIENT_TX_TYPES.has(effectiveTxParams.type ?? '')) {
|
|
42
|
+
throw new errors_1.InvalidTransactionError('Recipient details are required to verify this transaction before signing. Pass txParams with at least one recipient.');
|
|
43
|
+
}
|
|
44
|
+
return effectiveTxParams;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBpZW50VXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vdXRpbHMvdHNzL3JlY2lwaWVudFV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQThCQSw0REFzQkM7QUFuREQseUNBQXVEO0FBR3ZEOzs7O0dBSUc7QUFDVSxRQUFBLHFCQUFxQixHQUFHLElBQUksR0FBRyxDQUFDO0lBQzNDLGNBQWM7SUFDZCxXQUFXO0lBQ1gsZUFBZTtJQUNmLGVBQWU7SUFDZixhQUFhO0lBQ2IsYUFBYTtJQUNiLGFBQWE7SUFDYixVQUFVLEVBQUUsZ0ZBQWdGO0NBQzdGLENBQUMsQ0FBQztBQUVIOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLHdCQUF3QixDQUN0QyxTQUFvQixFQUNwQixRQUF1QztJQUV2QyxNQUFNLGdCQUFnQixHQUFJLFNBQVMsQ0FBQyxNQUEwQixFQUFFLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDcEcsT0FBTyxFQUFFLGVBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTztRQUN4QyxNQUFNLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxLQUFLO1FBQ3BDLElBQUksRUFBRSxlQUFlLENBQUMsSUFBSTtLQUMzQixDQUFDLENBQUMsQ0FBQztJQUVKLE1BQU0saUJBQWlCLEdBQXNCO1FBQzNDLEdBQUcsUUFBUTtRQUNYLFVBQVUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCO0tBQ2xGLENBQUM7SUFFRixJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLE1BQU0sSUFBSSxDQUFDLDZCQUFxQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUN0RyxNQUFNLElBQUksZ0NBQXVCLENBQy9CLHNIQUFzSCxDQUN2SCxDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8saUJBQWlCLENBQUM7QUFDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uUGFyYW1zIH0gZnJvbSAnLi4vLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IgfSBmcm9tICcuLi8uLi9lcnJvcnMnO1xuaW1wb3J0IHsgUG9wdWxhdGVkSW50ZW50LCBUeFJlcXVlc3QgfSBmcm9tICcuL2Jhc2VUeXBlcyc7XG5cbi8qKlxuICogVHJhbnNhY3Rpb24gdHlwZXMgdGhhdCBsZWdpdGltYXRlbHkgY2Fycnkgbm8gZXhwbGljaXQgcmVjaXBpZW50cy5cbiAqIHZlcmlmeVRyYW5zYWN0aW9uIGhhbmRsZXMgbm8tcmVjaXBpZW50IHZhbGlkYXRpb24gZm9yIHRoZXNlIGludGVybmFsbHkuXG4gKiBNaXJyb3JzIHRoZSBieXBhc3MgbGlzdCBpbiBhYnN0cmFjdEV0aExpa2VOZXdDb2lucy50cyB2ZXJpZnlUc3NUcmFuc2FjdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IE5PX1JFQ0lQSUVOVF9UWF9UWVBFUyA9IG5ldyBTZXQoW1xuICAnYWNjZWxlcmF0aW9uJyxcbiAgJ2ZpbGxOb25jZScsXG4gICd0cmFuc2ZlclRva2VuJyxcbiAgJ3Rva2VuQXBwcm92YWwnLFxuICAnY29uc29saWRhdGUnLFxuICAnYnJpZGdlRnVuZHMnLFxuICAnZW5hYmxlVG9rZW4nLFxuICAnY3VzdG9tVHgnLCAvLyBEZUZpL1dhbGxldENvbm5lY3Qgc21hcnQgY29udHJhY3QgaW50ZXJhY3Rpb25zIGhhdmUgbm8gdHJhZGl0aW9uYWwgcmVjaXBpZW50c1xuXSk7XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIGVmZmVjdGl2ZSB0eFBhcmFtcyBmb3IgVFNTIHNpZ25pbmcgcmVjaXBpZW50IHZlcmlmaWNhdGlvbi5cbiAqXG4gKiBGb3Igc21hcnQgY29udHJhY3QgaW50ZXJhY3Rpb25zLCByZWNpcGllbnRzIGxpdmUgaW4gdHhSZXF1ZXN0LmludGVudC5yZWNpcGllbnRzXG4gKiAobmF0aXZlIGFtb3VudCA9IDAsIHNvIGJ1aWxkUGFyYW1zIGlzIGVtcHR5KS4gRmFsbHMgYmFjayB0byBpbnRlbnQgcmVjaXBpZW50c1xuICogbWFwcGVkIHRvIElUcmFuc2FjdGlvblJlY2lwaWVudCBzaGFwZSB3aGVuIHR4UGFyYW1zLnJlY2lwaWVudHMgaXMgYWJzZW50LlxuICpcbiAqIFRocm93cyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciBpZiBubyByZWNpcGllbnRzIGNhbiBiZSByZXNvbHZlZCBhbmQgdGhlXG4gKiB0cmFuc2FjdGlvbiB0eXBlIGlzIG5vdCBhIGtub3duIG5vLXJlY2lwaWVudCB0eXBlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUVmZmVjdGl2ZVR4UGFyYW1zKFxuICB0eFJlcXVlc3Q6IFR4UmVxdWVzdCxcbiAgdHhQYXJhbXM6IFRyYW5zYWN0aW9uUGFyYW1zIHwgdW5kZWZpbmVkXG4pOiBUcmFuc2FjdGlvblBhcmFtcyB7XG4gIGNvbnN0IGludGVudFJlY2lwaWVudHMgPSAodHhSZXF1ZXN0LmludGVudCBhcyBQb3B1bGF0ZWRJbnRlbnQpPy5yZWNpcGllbnRzPy5tYXAoKGludGVudFJlY2lwaWVudCkgPT4gKHtcbiAgICBhZGRyZXNzOiBpbnRlbnRSZWNpcGllbnQuYWRkcmVzcy5hZGRyZXNzLFxuICAgIGFtb3VudDogaW50ZW50UmVjaXBpZW50LmFtb3VudC52YWx1ZSxcbiAgICBkYXRhOiBpbnRlbnRSZWNpcGllbnQuZGF0YSxcbiAgfSkpO1xuXG4gIGNvbnN0IGVmZmVjdGl2ZVR4UGFyYW1zOiBUcmFuc2FjdGlvblBhcmFtcyA9IHtcbiAgICAuLi50eFBhcmFtcyxcbiAgICByZWNpcGllbnRzOiB0eFBhcmFtcz8ucmVjaXBpZW50cz8ubGVuZ3RoID8gdHhQYXJhbXMucmVjaXBpZW50cyA6IGludGVudFJlY2lwaWVudHMsXG4gIH07XG5cbiAgaWYgKCFlZmZlY3RpdmVUeFBhcmFtcy5yZWNpcGllbnRzPy5sZW5ndGggJiYgIU5PX1JFQ0lQSUVOVF9UWF9UWVBFUy5oYXMoZWZmZWN0aXZlVHhQYXJhbXMudHlwZSA/PyAnJykpIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoXG4gICAgICAnUmVjaXBpZW50IGRldGFpbHMgYXJlIHJlcXVpcmVkIHRvIHZlcmlmeSB0aGlzIHRyYW5zYWN0aW9uIGJlZm9yZSBzaWduaW5nLiBQYXNzIHR4UGFyYW1zIHdpdGggYXQgbGVhc3Qgb25lIHJlY2lwaWVudC4nXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBlZmZlY3RpdmVUeFBhcmFtcztcbn1cbiJdfQ==
|