Skip to content

Commit a8d9d07

Browse files
committed
feat(sdk-core): add execType to txrequest intent
Add ExecType enum (EXEC_UNSPECIFIED, EXEC_TRY) and wire it through the intent layer so callers can set execType on txrequests. The field flows from PrebuildTransactionOptions → IntentOptionsBase → PopulatedIntentBase → the POST /wallet/{id}/txrequests body under intent.execType, without introducing a top-level txrequest param. Ticket: CSHLD-972 Session-Id: caa99360-6177-4227-8aba-5043f8cb453f Task-Id: 49710c31-924d-41fb-b44b-2dc4a10bce34
1 parent ac76231 commit a8d9d07

4 files changed

Lines changed: 29 additions & 0 deletions

File tree

modules/sdk-core/src/bitgo/utils/mpcUtils.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,7 @@ export abstract class MpcUtils {
224224
recipients: intentRecipients,
225225
tokenName: params.tokenName,
226226
isTestTransaction: params.isTestTransaction,
227+
execType: params.execType,
227228
};
228229

229230
if (baseCoin.isEVM() && baseCoin.supportsTss()) {

modules/sdk-core/src/bitgo/utils/tss/baseTypes.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,11 @@ export interface TokenTransferRecipientParams {
269269
tokenId?: string;
270270
decimalPlaces?: number;
271271
}
272+
export enum ExecType {
273+
EXEC_UNSPECIFIED = 'EXEC_UNSPECIFIED',
274+
EXEC_TRY = 'EXEC_TRY',
275+
}
276+
272277
interface IntentOptionsBase {
273278
reqId: IRequestTracer;
274279
intentType: string;
@@ -278,6 +283,7 @@ interface IntentOptionsBase {
278283
memo?: Memo;
279284
custodianTransactionId?: string;
280285
custodianMessageId?: string;
286+
execType?: ExecType;
281287
}
282288

283289
/**
@@ -393,6 +399,7 @@ interface PopulatedIntentBase {
393399
comment?: string;
394400
memo?: string;
395401
isTss?: boolean;
402+
execType?: ExecType;
396403
}
397404

398405
export interface PopulatedIntentForMessageSigning extends PopulatedIntentBase {

modules/sdk-core/src/bitgo/wallet/iWallet.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import {
3333
CustomPaillierModulusGetterFunction,
3434
CustomRShareGeneratingFunction,
3535
CustomSShareGeneratingFunction,
36+
ExecType,
3637
TokenEnablement,
3738
TokenTransferRecipientParams,
3839
TxRequest,
@@ -297,6 +298,7 @@ export interface PrebuildTransactionOptions {
297298
* Parameters for executing DAML commands on Canton.
298299
*/
299300
cantonCommandParams?: CantonCommandParams;
301+
execType?: ExecType;
300302
}
301303

302304
export interface PrebuildAndSignTransactionOptions extends PrebuildTransactionOptions, WalletSignTransactionOptions {

modules/sdk-core/src/bitgo/wallet/wallet.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4181,6 +4181,7 @@ export class Wallet implements IWallet {
41814181
unspents: params.unspents,
41824182
senderAddress: params.senderAddress,
41834183
isTestTransaction: params.isTestTransaction,
4184+
execType: params.execType,
41844185
},
41854186
apiVersion,
41864187
params.preview
@@ -4198,6 +4199,7 @@ export class Wallet implements IWallet {
41984199
feeToken: params.feeToken,
41994200
unspents: params.unspents,
42004201
sequenceId: params.sequenceId,
4202+
execType: params.execType,
42014203
},
42024204
apiVersion,
42034205
params.preview
@@ -4211,6 +4213,7 @@ export class Wallet implements IWallet {
42114213
recipients: params.recipients || [],
42124214
enableTokens: params.enableTokens,
42134215
memo: params.memo,
4216+
execType: params.execType,
42144217
},
42154218
apiVersion,
42164219
params.preview
@@ -4223,6 +4226,7 @@ export class Wallet implements IWallet {
42234226
intentType: 'closeAssociatedTokenAccount',
42244227
recipients: params.recipients || [],
42254228
memo: params.memo,
4229+
execType: params.execType,
42264230
},
42274231
apiVersion,
42284232
params.preview
@@ -4238,6 +4242,7 @@ export class Wallet implements IWallet {
42384242
receiveAddress: params.receiveAddress,
42394243
feeOptions,
42404244
feeToken: params.feeToken,
4245+
execType: params.execType,
42414246
},
42424247
apiVersion,
42434248
params.preview
@@ -4253,6 +4258,7 @@ export class Wallet implements IWallet {
42534258
receiveAddress: params.receiveAddress,
42544259
feeOptions,
42554260
feeToken: params.feeToken,
4261+
execType: params.execType,
42564262
},
42574263
apiVersion,
42584264
params.preview
@@ -4265,6 +4271,7 @@ export class Wallet implements IWallet {
42654271
intentType: 'tokenApproval',
42664272
tokenName: params.tokenName,
42674273
feeToken: params.feeToken,
4274+
execType: params.execType,
42684275
},
42694276
apiVersion,
42704277
params.preview
@@ -4276,6 +4283,7 @@ export class Wallet implements IWallet {
42764283
reqId,
42774284
intentType: 'createAccount',
42784285
recipients: params.recipients || [],
4286+
execType: params.execType,
42794287
},
42804288
apiVersion,
42814289
params.preview
@@ -4288,6 +4296,7 @@ export class Wallet implements IWallet {
42884296
intentType: 'transferAccept',
42894297
txRequestId: params.txRequestId,
42904298
sequenceId: params.txRequestId,
4299+
execType: params.execType,
42914300
},
42924301
apiVersion,
42934302
params.preview
@@ -4301,6 +4310,7 @@ export class Wallet implements IWallet {
43014310
intentType: 'transferReject',
43024311
txRequestId: params.txRequestId,
43034312
sequenceId: params.txRequestId,
4313+
execType: params.execType,
43044314
},
43054315
apiVersion,
43064316
params.preview
@@ -4314,6 +4324,7 @@ export class Wallet implements IWallet {
43144324
intentType: 'transferOfferWithdrawn',
43154325
transferOfferId: params.transferOfferId,
43164326
sequenceId: params.transferOfferId,
4327+
execType: params.execType,
43174328
},
43184329
apiVersion,
43194330
params.preview
@@ -4332,6 +4343,7 @@ export class Wallet implements IWallet {
43324343
tokenName: params.tokenName,
43334344
sequenceId: params.sequenceId,
43344345
comment: params.comment,
4346+
execType: params.execType,
43354347
},
43364348
apiVersion,
43374349
params.preview
@@ -4352,6 +4364,7 @@ export class Wallet implements IWallet {
43524364
nonce: params.nonce,
43534365
memo: params.memo,
43544366
feeOptions,
4367+
execType: params.execType,
43554368
},
43564369
apiVersion,
43574370
params.preview
@@ -4368,6 +4381,7 @@ export class Wallet implements IWallet {
43684381
nonce: params.nonce,
43694382
feeOptions,
43704383
feeToken: params.feeToken,
4384+
execType: params.execType,
43714385
},
43724386
apiVersion,
43734387
params.preview
@@ -4384,6 +4398,7 @@ export class Wallet implements IWallet {
43844398
nonce: params.nonce,
43854399
feeOptions,
43864400
feeToken: params.feeToken,
4401+
execType: params.execType,
43874402
},
43884403
apiVersion,
43894404
params.preview
@@ -4397,6 +4412,7 @@ export class Wallet implements IWallet {
43974412
sequenceId: params.sequenceId,
43984413
comment: params.comment,
43994414
recipients: params.recipients || [],
4415+
execType: params.execType,
44004416
},
44014417
apiVersion,
44024418
params.preview
@@ -4410,6 +4426,7 @@ export class Wallet implements IWallet {
44104426
sequenceId: params.sequenceId,
44114427
comment: params.comment,
44124428
recipients: params.recipients || [],
4429+
execType: params.execType,
44134430
},
44144431
apiVersion,
44154432
params.preview
@@ -4425,6 +4442,7 @@ export class Wallet implements IWallet {
44254442
amount: string;
44264443
clientIdempotencyKey?: string;
44274444
},
4445+
execType: params.execType,
44284446
},
44294447
apiVersion,
44304448
params.preview
@@ -4441,6 +4459,7 @@ export class Wallet implements IWallet {
44414459
operationId?: string;
44424460
clientIdempotencyKey?: string;
44434461
},
4462+
execType: params.execType,
44444463
},
44454464
apiVersion,
44464465
params.preview

0 commit comments

Comments
 (0)