@bitgo-beta/sdk-coin-apt 1.0.1-beta.9 → 1.0.1-beta.900

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.
Files changed (156) hide show
  1. package/dist/src/apt.d.ts +24 -4
  2. package/dist/src/apt.d.ts.map +1 -1
  3. package/dist/src/apt.js +168 -10
  4. package/dist/src/aptNFTCollection.d.ts +18 -0
  5. package/dist/src/aptNFTCollection.d.ts.map +1 -0
  6. package/dist/src/aptNFTCollection.js +52 -0
  7. package/dist/src/aptToken.d.ts +19 -0
  8. package/dist/src/aptToken.d.ts.map +1 -0
  9. package/dist/src/aptToken.js +52 -0
  10. package/dist/src/index.d.ts +2 -0
  11. package/dist/src/index.d.ts.map +1 -1
  12. package/dist/src/index.js +3 -1
  13. package/dist/src/lib/constants.d.ts +24 -0
  14. package/dist/src/lib/constants.d.ts.map +1 -0
  15. package/dist/src/lib/constants.js +27 -0
  16. package/dist/src/lib/iface.d.ts +108 -0
  17. package/dist/src/lib/iface.d.ts.map +1 -1
  18. package/dist/src/lib/iface.js +1 -1
  19. package/dist/src/lib/index.d.ts +19 -4
  20. package/dist/src/lib/index.d.ts.map +1 -1
  21. package/dist/src/lib/index.js +53 -13
  22. package/dist/src/lib/keyPair.d.ts +7 -1
  23. package/dist/src/lib/keyPair.d.ts.map +1 -1
  24. package/dist/src/lib/keyPair.js +24 -4
  25. package/dist/src/lib/transaction/abstractDelegationPoolAmountBasedTransaction.d.ts +21 -0
  26. package/dist/src/lib/transaction/abstractDelegationPoolAmountBasedTransaction.d.ts.map +1 -0
  27. package/dist/src/lib/transaction/abstractDelegationPoolAmountBasedTransaction.js +61 -0
  28. package/dist/src/lib/transaction/abstractDelegationPoolTransaction.d.ts +13 -0
  29. package/dist/src/lib/transaction/abstractDelegationPoolTransaction.d.ts.map +1 -0
  30. package/dist/src/lib/transaction/abstractDelegationPoolTransaction.js +23 -0
  31. package/dist/src/lib/transaction/abstractTransferTransaction.d.ts +10 -0
  32. package/dist/src/lib/transaction/abstractTransferTransaction.d.ts.map +1 -0
  33. package/dist/src/lib/transaction/abstractTransferTransaction.js +39 -0
  34. package/dist/src/lib/transaction/customTransaction.d.ts +89 -0
  35. package/dist/src/lib/transaction/customTransaction.d.ts.map +1 -0
  36. package/dist/src/lib/transaction/customTransaction.js +278 -0
  37. package/dist/src/lib/transaction/delegationPoolAddStakeTransaction.d.ts +10 -0
  38. package/dist/src/lib/transaction/delegationPoolAddStakeTransaction.d.ts.map +1 -0
  39. package/dist/src/lib/transaction/delegationPoolAddStakeTransaction.js +48 -0
  40. package/dist/src/lib/transaction/delegationPoolUnlockTransaction.d.ts +10 -0
  41. package/dist/src/lib/transaction/delegationPoolUnlockTransaction.d.ts.map +1 -0
  42. package/dist/src/lib/transaction/delegationPoolUnlockTransaction.js +24 -0
  43. package/dist/src/lib/transaction/delegationPoolWithdrawTransaction.d.ts +10 -0
  44. package/dist/src/lib/transaction/delegationPoolWithdrawTransaction.d.ts.map +1 -0
  45. package/dist/src/lib/transaction/delegationPoolWithdrawTransaction.js +43 -0
  46. package/dist/src/lib/transaction/digitalAssetTransfer.d.ts +10 -0
  47. package/dist/src/lib/transaction/digitalAssetTransfer.d.ts.map +1 -0
  48. package/dist/src/lib/transaction/digitalAssetTransfer.js +45 -0
  49. package/dist/src/lib/transaction/fungibleAssetTransfer.d.ts +12 -0
  50. package/dist/src/lib/transaction/fungibleAssetTransfer.d.ts.map +1 -0
  51. package/dist/src/lib/transaction/fungibleAssetTransfer.js +73 -0
  52. package/dist/src/lib/transaction/transaction.d.ts +90 -0
  53. package/dist/src/lib/transaction/transaction.d.ts.map +1 -0
  54. package/dist/src/lib/transaction/transaction.js +317 -0
  55. package/dist/src/lib/transaction/transferTransaction.d.ts +12 -0
  56. package/dist/src/lib/transaction/transferTransaction.d.ts.map +1 -0
  57. package/dist/src/lib/transaction/transferTransaction.js +63 -0
  58. package/dist/src/lib/transactionBuilder/customTransactionBuilder.d.ts +64 -0
  59. package/dist/src/lib/transactionBuilder/customTransactionBuilder.d.ts.map +1 -0
  60. package/dist/src/lib/transactionBuilder/customTransactionBuilder.js +127 -0
  61. package/dist/src/lib/transactionBuilder/delegationPoolAddStakeTransactionBuilder.d.ts +15 -0
  62. package/dist/src/lib/transactionBuilder/delegationPoolAddStakeTransactionBuilder.d.ts.map +1 -0
  63. package/dist/src/lib/transactionBuilder/delegationPoolAddStakeTransactionBuilder.js +50 -0
  64. package/dist/src/lib/transactionBuilder/delegationPoolUnlockTransactionBuilder.d.ts +15 -0
  65. package/dist/src/lib/transactionBuilder/delegationPoolUnlockTransactionBuilder.d.ts.map +1 -0
  66. package/dist/src/lib/transactionBuilder/delegationPoolUnlockTransactionBuilder.js +50 -0
  67. package/dist/src/lib/transactionBuilder/delegationPoolWithdrawTransactionBuilder.d.ts +15 -0
  68. package/dist/src/lib/transactionBuilder/delegationPoolWithdrawTransactionBuilder.d.ts.map +1 -0
  69. package/dist/src/lib/transactionBuilder/delegationPoolWithdrawTransactionBuilder.js +50 -0
  70. package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.d.ts +14 -0
  71. package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.d.ts.map +1 -0
  72. package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.js +55 -0
  73. package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.d.ts +15 -0
  74. package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.d.ts.map +1 -0
  75. package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.js +61 -0
  76. package/dist/src/lib/transactionBuilder/transactionBuilder.d.ts +68 -0
  77. package/dist/src/lib/transactionBuilder/transactionBuilder.d.ts.map +1 -0
  78. package/dist/src/lib/transactionBuilder/transactionBuilder.js +169 -0
  79. package/dist/src/lib/{transferBuilder.d.ts → transactionBuilder/transferBuilder.d.ts} +5 -0
  80. package/dist/src/lib/transactionBuilder/transferBuilder.d.ts.map +1 -0
  81. package/dist/src/lib/transactionBuilder/transferBuilder.js +56 -0
  82. package/dist/src/lib/transactionBuilderFactory.d.ts +38 -5
  83. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  84. package/dist/src/lib/transactionBuilderFactory.js +111 -5
  85. package/dist/src/lib/types.d.ts +9 -0
  86. package/dist/src/lib/types.d.ts.map +1 -0
  87. package/dist/src/lib/types.js +3 -0
  88. package/dist/src/lib/utils/validation.d.ts +32 -0
  89. package/dist/src/lib/utils/validation.d.ts.map +1 -0
  90. package/dist/src/lib/utils/validation.js +99 -0
  91. package/dist/src/lib/utils.d.ts +34 -1
  92. package/dist/src/lib/utils.d.ts.map +1 -1
  93. package/dist/src/lib/utils.js +152 -7
  94. package/dist/src/register.d.ts.map +1 -1
  95. package/dist/src/register.js +9 -1
  96. package/dist/src/tapt.js +1 -1
  97. package/dist/test/integration/index.d.ts +1 -0
  98. package/dist/test/integration/index.d.ts.map +1 -0
  99. package/dist/test/integration/index.js +1 -0
  100. package/dist/test/resources/apt.d.ts +56 -0
  101. package/dist/test/resources/apt.d.ts.map +1 -0
  102. package/dist/test/resources/apt.js +115 -0
  103. package/dist/test/unit/apt.d.ts +2 -0
  104. package/dist/test/unit/apt.d.ts.map +1 -0
  105. package/dist/test/unit/apt.js +375 -0
  106. package/dist/test/unit/aptToken.d.ts +2 -0
  107. package/dist/test/unit/aptToken.d.ts.map +1 -0
  108. package/dist/test/unit/aptToken.js +92 -0
  109. package/dist/test/unit/customTransaction.test.d.ts +2 -0
  110. package/dist/test/unit/customTransaction.test.d.ts.map +1 -0
  111. package/dist/test/unit/customTransaction.test.js +264 -0
  112. package/dist/test/unit/getBuilderFactory.d.ts +3 -0
  113. package/dist/test/unit/getBuilderFactory.d.ts.map +1 -0
  114. package/dist/test/unit/getBuilderFactory.js +10 -0
  115. package/dist/test/unit/keyPair.d.ts +2 -0
  116. package/dist/test/unit/keyPair.d.ts.map +1 -0
  117. package/dist/test/unit/keyPair.js +71 -0
  118. package/dist/test/unit/transactionBuilder/customTransactionBuilder.d.ts +2 -0
  119. package/dist/test/unit/transactionBuilder/customTransactionBuilder.d.ts.map +1 -0
  120. package/dist/test/unit/transactionBuilder/customTransactionBuilder.js +743 -0
  121. package/dist/test/unit/transactionBuilder/delegationPoolAddStakeTransactionBuilder.d.ts +2 -0
  122. package/dist/test/unit/transactionBuilder/delegationPoolAddStakeTransactionBuilder.d.ts.map +1 -0
  123. package/dist/test/unit/transactionBuilder/delegationPoolAddStakeTransactionBuilder.js +172 -0
  124. package/dist/test/unit/transactionBuilder/delegationPoolUnlockTransactionBuilder.d.ts +2 -0
  125. package/dist/test/unit/transactionBuilder/delegationPoolUnlockTransactionBuilder.d.ts.map +1 -0
  126. package/dist/test/unit/transactionBuilder/delegationPoolUnlockTransactionBuilder.js +148 -0
  127. package/dist/test/unit/transactionBuilder/delegationPoolWithdrawTransactionBuilder.d.ts +2 -0
  128. package/dist/test/unit/transactionBuilder/delegationPoolWithdrawTransactionBuilder.d.ts.map +1 -0
  129. package/dist/test/unit/transactionBuilder/delegationPoolWithdrawTransactionBuilder.js +172 -0
  130. package/dist/test/unit/transactionBuilder/digitalAssetTransferBuilder.d.ts +2 -0
  131. package/dist/test/unit/transactionBuilder/digitalAssetTransferBuilder.d.ts.map +1 -0
  132. package/dist/test/unit/transactionBuilder/digitalAssetTransferBuilder.js +276 -0
  133. package/dist/test/unit/transactionBuilder/fungibleAssetTransferBuilder.d.ts +2 -0
  134. package/dist/test/unit/transactionBuilder/fungibleAssetTransferBuilder.d.ts.map +1 -0
  135. package/dist/test/unit/transactionBuilder/fungibleAssetTransferBuilder.js +449 -0
  136. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
  137. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  138. package/dist/test/unit/transactionBuilder/transferBuilder.js +529 -0
  139. package/dist/test/unit/utils.d.ts +2 -0
  140. package/dist/test/unit/utils.d.ts.map +1 -0
  141. package/dist/test/unit/utils.js +108 -0
  142. package/dist/tsconfig.tsbuildinfo +1 -0
  143. package/package.json +16 -10
  144. package/.eslintignore +0 -4
  145. package/.gitignore +0 -3
  146. package/.mocharc.yml +0 -8
  147. package/.prettierignore +0 -2
  148. package/CHANGELOG.md +0 -16
  149. package/dist/src/lib/transaction.d.ts +0 -8
  150. package/dist/src/lib/transaction.d.ts.map +0 -1
  151. package/dist/src/lib/transaction.js +0 -17
  152. package/dist/src/lib/transactionBuilder.d.ts +0 -45
  153. package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
  154. package/dist/src/lib/transactionBuilder.js +0 -78
  155. package/dist/src/lib/transferBuilder.d.ts.map +0 -1
  156. package/dist/src/lib/transferBuilder.js +0 -15
@@ -0,0 +1,89 @@
1
+ import { EntryFunctionABI, InputGenerateTransactionPayloadData, TransactionPayload } from '@aptos-labs/ts-sdk';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { CustomTransactionParams } from '../iface';
4
+ import { AbstractTransferTransaction } from './abstractTransferTransaction';
5
+ /**
6
+ * Transaction class for custom Aptos transactions.
7
+ */
8
+ export declare class CustomTransaction extends AbstractTransferTransaction {
9
+ private _moduleName;
10
+ private _functionName;
11
+ private _typeArguments;
12
+ private _functionArguments;
13
+ private _entryFunctionAbi?;
14
+ constructor(coinConfig: Readonly<CoinConfig>);
15
+ /**
16
+ * Set the custom transaction parameters
17
+ */
18
+ setCustomTransactionParams(params: CustomTransactionParams): void;
19
+ /**
20
+ * Set the entry function ABI
21
+ */
22
+ setEntryFunctionAbi(abi: EntryFunctionABI): void;
23
+ /**
24
+ * Get the full function name
25
+ */
26
+ get fullFunctionName(): string;
27
+ /**
28
+ * Parse a transaction payload to extract the custom transaction data
29
+ * Requires ABI information for proper type-aware conversion
30
+ *
31
+ * @param {TransactionPayload} payload - The transaction payload to parse
32
+ */
33
+ protected parseTransactionPayload(payload: TransactionPayload): void;
34
+ /**
35
+ * Generate transaction payload data
36
+ */
37
+ protected getTransactionPayloadData(): InputGenerateTransactionPayloadData;
38
+ /**
39
+ * Convert argument based on ABI type information
40
+ */
41
+ private convertArgumentByABI;
42
+ /**
43
+ * Convert primitive argument values based on parameter type
44
+ */
45
+ private convertPrimitiveArgument;
46
+ /**
47
+ * Convert primitive numeric arguments to string
48
+ * - Big numbers break JavaScript (precision loss)
49
+ * - String safer for large U64/U128/U256 values
50
+ * - Aptos SDK converts string to correct type automatically
51
+ */
52
+ private convertPrimitiveNumericArgument;
53
+ /**
54
+ * Convert BCS data argument with 'data' property
55
+ */
56
+ private convertBcsDataArgument;
57
+ /**
58
+ * Convert nested BCS argument with 'value' property
59
+ */
60
+ private convertNestedBcsArgument;
61
+ /**
62
+ * Extract bytes from BCS object with numeric keys
63
+ */
64
+ private extractBytesFromBcsObject;
65
+ /**
66
+ * Get custom transaction parameters
67
+ */
68
+ getCustomTransactionParams(): CustomTransactionParams;
69
+ /**
70
+ * Override recipient getter for custom transactions
71
+ */
72
+ get recipient(): any;
73
+ /**
74
+ * Get validated full function name
75
+ */
76
+ private getValidatedFullFunctionName;
77
+ /**
78
+ * Check if a parameter type is a numeric type
79
+ */
80
+ private isNumericType;
81
+ /**
82
+ * Convert byte arrays to string numbers
83
+ * - Small types (U8/U16/U32): 1-4 bytes, parse manually
84
+ * - Large types (U64/U128/U256): 8+ bytes, use existing utility
85
+ * - Both return string for consistency
86
+ */
87
+ private convertNumericArgument;
88
+ }
89
+ //# sourceMappingURL=customTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customTransaction.d.ts","sourceRoot":"","sources":["../../../../src/lib/transaction/customTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAEhB,mCAAmC,EAEnC,kBAAkB,EAUnB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAGnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,2BAA2B;IAChE,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,kBAAkB,CAA4E;IACtG,OAAO,CAAC,iBAAiB,CAAC,CAAmB;gBAEjC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK5C;;OAEG;IACH,0BAA0B,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI;IAWjE;;OAEG;IACH,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI;IAIhD;;OAEG;IACH,IAAI,gBAAgB,IAAI,MAAM,CAK7B;IAED;;;;;OAKG;IACH,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAyCpE;;OAEG;IACH,SAAS,CAAC,yBAAyB,IAAI,mCAAmC;IAc1E;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAoB5B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAoBhC;;;;;OAKG;IACH,OAAO,CAAC,+BAA+B;IAKvC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAO9B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAoChC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAUjC;;OAEG;IACH,0BAA0B,IAAI,uBAAuB;IAUrD;;OAEG;IACH,IAAI,SAAS,IAAI,GAAG,CAQnB;IAED;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAiBpC;;OAEG;IACH,OAAO,CAAC,aAAa;IAWrB;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;CAkB/B"}
@@ -0,0 +1,278 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CustomTransaction = void 0;
7
+ const ts_sdk_1 = require("@aptos-labs/ts-sdk");
8
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
9
+ const utils_1 = __importDefault(require("../utils"));
10
+ const validation_1 = require("../utils/validation");
11
+ const abstractTransferTransaction_1 = require("./abstractTransferTransaction");
12
+ /**
13
+ * Transaction class for custom Aptos transactions.
14
+ */
15
+ class CustomTransaction extends abstractTransferTransaction_1.AbstractTransferTransaction {
16
+ constructor(coinConfig) {
17
+ super(coinConfig);
18
+ this._typeArguments = [];
19
+ this._functionArguments = [];
20
+ this._type = sdk_core_1.TransactionType.CustomTx;
21
+ }
22
+ /**
23
+ * Set the custom transaction parameters
24
+ */
25
+ setCustomTransactionParams(params) {
26
+ (0, validation_1.validateModuleName)(params.moduleName);
27
+ (0, validation_1.validateFunctionName)(params.functionName);
28
+ this._moduleName = params.moduleName;
29
+ this._functionName = params.functionName;
30
+ this._typeArguments = params.typeArguments || [];
31
+ this._functionArguments = params.functionArguments || [];
32
+ this._entryFunctionAbi = params.abi;
33
+ }
34
+ /**
35
+ * Set the entry function ABI
36
+ */
37
+ setEntryFunctionAbi(abi) {
38
+ this._entryFunctionAbi = abi;
39
+ }
40
+ /**
41
+ * Get the full function name
42
+ */
43
+ get fullFunctionName() {
44
+ if (!this._moduleName || !this._functionName) {
45
+ return '';
46
+ }
47
+ return `${this._moduleName}::${this._functionName}`;
48
+ }
49
+ /**
50
+ * Parse a transaction payload to extract the custom transaction data
51
+ * Requires ABI information for proper type-aware conversion
52
+ *
53
+ * @param {TransactionPayload} payload - The transaction payload to parse
54
+ */
55
+ parseTransactionPayload(payload) {
56
+ if (!(payload instanceof ts_sdk_1.TransactionPayloadEntryFunction)) {
57
+ throw new sdk_core_1.InvalidTransactionError('Expected entry function payload for custom transaction');
58
+ }
59
+ const entryFunction = payload.entryFunction;
60
+ // Extract function data
61
+ const moduleAddress = entryFunction.module_name.address.toString();
62
+ const moduleIdentifier = entryFunction.module_name.name.identifier;
63
+ const functionIdentifier = entryFunction.function_name.identifier;
64
+ const moduleName = `${moduleAddress}::${moduleIdentifier}`;
65
+ // Validate
66
+ (0, validation_1.validateModuleName)(moduleName);
67
+ (0, validation_1.validateFunctionName)(functionIdentifier);
68
+ this._moduleName = moduleName;
69
+ this._functionName = functionIdentifier;
70
+ this._typeArguments = entryFunction.type_args.map((typeArg) => typeArg.toString());
71
+ // Parse arguments using ABI information
72
+ // If ABI is available, parse with type awareness; otherwise store raw args for later processing
73
+ if (this._entryFunctionAbi?.parameters) {
74
+ this._functionArguments = entryFunction.args.map((arg, index) => {
75
+ const paramType = this._entryFunctionAbi?.parameters?.[index];
76
+ if (!paramType) {
77
+ throw new sdk_core_1.InvalidTransactionError(`Missing ABI parameter type for argument ${index} in ${this._moduleName}::${this._functionName}. ` +
78
+ 'ABI parameter count mismatch.');
79
+ }
80
+ return this.convertArgumentByABI(arg, paramType);
81
+ });
82
+ }
83
+ else {
84
+ // Store raw arguments temporarily - transaction will be re-parsed when ABI is provided
85
+ this._functionArguments = entryFunction.args.map((arg) => arg);
86
+ }
87
+ }
88
+ /**
89
+ * Generate transaction payload data
90
+ */
91
+ getTransactionPayloadData() {
92
+ const functionName = this.getValidatedFullFunctionName();
93
+ // Arguments are pre-processed during parsing phase
94
+ const processedArguments = this._functionArguments;
95
+ return {
96
+ function: functionName,
97
+ typeArguments: this._typeArguments,
98
+ functionArguments: processedArguments,
99
+ abi: this._entryFunctionAbi,
100
+ };
101
+ }
102
+ /**
103
+ * Convert argument based on ABI type information
104
+ */
105
+ convertArgumentByABI(arg, paramType) {
106
+ // Handle primitive values (string, number, boolean)
107
+ if (typeof arg === 'string' || typeof arg === 'number' || typeof arg === 'boolean') {
108
+ return this.convertPrimitiveArgument(arg, paramType);
109
+ }
110
+ // Handle BCS-encoded data with 'data' property
111
+ if (arg && typeof arg === 'object' && 'data' in arg && arg.data) {
112
+ return this.convertBcsDataArgument(arg, paramType);
113
+ }
114
+ // Handle nested BCS structures with 'value' property
115
+ if (arg && typeof arg === 'object' && 'value' in arg && arg.value) {
116
+ return this.convertNestedBcsArgument(arg, paramType);
117
+ }
118
+ // For anything else, return as-is
119
+ return arg;
120
+ }
121
+ /**
122
+ * Convert primitive argument values based on parameter type
123
+ */
124
+ convertPrimitiveArgument(arg, paramType) {
125
+ // Address conversion for hex strings
126
+ if (paramType instanceof ts_sdk_1.TypeTagAddress && typeof arg === 'string' && arg.startsWith('0x')) {
127
+ return utils_1.default.tryParseAccountAddress(arg);
128
+ }
129
+ // Type conversions based on parameter type
130
+ if (paramType instanceof ts_sdk_1.TypeTagBool)
131
+ return Boolean(arg);
132
+ // Use unified numeric type handling
133
+ if (this.isNumericType(paramType)) {
134
+ return this.convertPrimitiveNumericArgument(arg);
135
+ }
136
+ return arg;
137
+ }
138
+ /**
139
+ * Convert primitive numeric arguments to string
140
+ * - Big numbers break JavaScript (precision loss)
141
+ * - String safer for large U64/U128/U256 values
142
+ * - Aptos SDK converts string to correct type automatically
143
+ */
144
+ convertPrimitiveNumericArgument(arg) {
145
+ // Always string - safer for big numbers
146
+ return String(arg);
147
+ }
148
+ /**
149
+ * Convert BCS data argument with 'data' property
150
+ */
151
+ convertBcsDataArgument(arg, paramType) {
152
+ const bytes = Array.from(arg.data);
153
+ const hexString = utils_1.default.bytesToHex(bytes);
154
+ return paramType instanceof ts_sdk_1.TypeTagAddress ? utils_1.default.tryParseAccountAddress(hexString) : hexString;
155
+ }
156
+ /**
157
+ * Convert nested BCS argument with 'value' property
158
+ */
159
+ convertNestedBcsArgument(arg, paramType) {
160
+ // Check if inner value is a Uint8Array (common for U64 arguments)
161
+ if (arg.value.value && arg.value.value instanceof Uint8Array) {
162
+ const bytes = Array.from(arg.value.value);
163
+ if (this.isNumericType(paramType)) {
164
+ return this.convertNumericArgument(bytes, paramType);
165
+ }
166
+ // For non-numeric types, convert to hex string
167
+ return utils_1.default.bytesToHex(bytes);
168
+ }
169
+ // Simple value wrapper - fix the bug in original implementation
170
+ if (typeof arg.value !== 'object' || !('value' in arg.value)) {
171
+ return this.convertArgumentByABI(arg.value, paramType);
172
+ }
173
+ // Double nested structure with numeric keys
174
+ const bytes = this.extractBytesFromBcsObject(arg.value.value);
175
+ if (bytes.length === 0)
176
+ return arg;
177
+ let extractedValue;
178
+ // Convert bytes based on parameter type using unified approach
179
+ if (this.isNumericType(paramType)) {
180
+ extractedValue = this.convertNumericArgument(bytes, paramType);
181
+ }
182
+ else if (paramType instanceof ts_sdk_1.TypeTagAddress) {
183
+ extractedValue = utils_1.default.bytesToHex(bytes);
184
+ }
185
+ else if (paramType instanceof ts_sdk_1.TypeTagBool) {
186
+ extractedValue = bytes[0] === 1;
187
+ }
188
+ else {
189
+ extractedValue = utils_1.default.bytesToHex(bytes);
190
+ }
191
+ return this.convertArgumentByABI(extractedValue, paramType);
192
+ }
193
+ /**
194
+ * Extract bytes from BCS object with numeric keys
195
+ */
196
+ extractBytesFromBcsObject(bcsObject) {
197
+ const keys = Object.keys(bcsObject)
198
+ .filter((k) => !isNaN(parseInt(k, 10)))
199
+ .sort((a, b) => parseInt(a, 10) - parseInt(b, 10));
200
+ if (keys.length === 0)
201
+ return [];
202
+ return keys.map((k) => bcsObject[k]);
203
+ }
204
+ /**
205
+ * Get custom transaction parameters
206
+ */
207
+ getCustomTransactionParams() {
208
+ return {
209
+ moduleName: this._moduleName || '',
210
+ functionName: this._functionName || '',
211
+ typeArguments: this._typeArguments,
212
+ functionArguments: this._functionArguments,
213
+ abi: this._entryFunctionAbi,
214
+ };
215
+ }
216
+ /**
217
+ * Override recipient getter for custom transactions
218
+ */
219
+ get recipient() {
220
+ if (this._recipients.length === 0) {
221
+ return {
222
+ address: '',
223
+ amount: '0',
224
+ };
225
+ }
226
+ return this._recipients[0];
227
+ }
228
+ /**
229
+ * Get validated full function name
230
+ */
231
+ getValidatedFullFunctionName() {
232
+ if (!this._moduleName || !this._functionName) {
233
+ throw new Error('Module name and function name must be set before building transaction');
234
+ }
235
+ const fullName = `${this._moduleName}::${this._functionName}`;
236
+ // Basic validation
237
+ const fullFunctionPattern = /^(0x[a-fA-F0-9]{1,64}|[a-zA-Z_][a-zA-Z0-9_]*)::[a-zA-Z_][a-zA-Z0-9_]*::[a-zA-Z_][a-zA-Z0-9_]*$/;
238
+ if (!fullFunctionPattern.test(fullName)) {
239
+ throw new Error(`Invalid full function name format: "${fullName}". Expected format: "address::module::function"`);
240
+ }
241
+ return fullName;
242
+ }
243
+ /**
244
+ * Check if a parameter type is a numeric type
245
+ */
246
+ isNumericType(paramType) {
247
+ return (paramType instanceof ts_sdk_1.TypeTagU8 ||
248
+ paramType instanceof ts_sdk_1.TypeTagU16 ||
249
+ paramType instanceof ts_sdk_1.TypeTagU32 ||
250
+ paramType instanceof ts_sdk_1.TypeTagU64 ||
251
+ paramType instanceof ts_sdk_1.TypeTagU128 ||
252
+ paramType instanceof ts_sdk_1.TypeTagU256);
253
+ }
254
+ /**
255
+ * Convert byte arrays to string numbers
256
+ * - Small types (U8/U16/U32): 1-4 bytes, parse manually
257
+ * - Large types (U64/U128/U256): 8+ bytes, use existing utility
258
+ * - Both return string for consistency
259
+ */
260
+ convertNumericArgument(bytes, paramType) {
261
+ if (paramType instanceof ts_sdk_1.TypeTagU8 || paramType instanceof ts_sdk_1.TypeTagU16 || paramType instanceof ts_sdk_1.TypeTagU32) {
262
+ // Small types: parse bytes manually (1-4 bytes)
263
+ let result = 0;
264
+ for (let i = bytes.length - 1; i >= 0; i--) {
265
+ result = result * 256 + bytes[i];
266
+ }
267
+ return result.toString();
268
+ }
269
+ if (paramType instanceof ts_sdk_1.TypeTagU64 || paramType instanceof ts_sdk_1.TypeTagU128 || paramType instanceof ts_sdk_1.TypeTagU256) {
270
+ // Large types: use existing method (needs 8+ bytes)
271
+ return utils_1.default.getAmountFromPayloadArgs(new Uint8Array(bytes));
272
+ }
273
+ // Unknown type: convert to hex
274
+ return utils_1.default.bytesToHex(bytes);
275
+ }
276
+ }
277
+ exports.CustomTransaction = CustomTransaction;
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tVHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uL2N1c3RvbVRyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLCtDQWdCNEI7QUFDNUIsbURBQWdGO0FBR2hGLHFEQUE2QjtBQUM3QixvREFBK0U7QUFDL0UsK0VBQTRFO0FBRTVFOztHQUVHO0FBQ0gsTUFBYSxpQkFBa0IsU0FBUSx5REFBMkI7SUFPaEUsWUFBWSxVQUFnQztRQUMxQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFMWixtQkFBYyxHQUFhLEVBQUUsQ0FBQztRQUM5Qix1QkFBa0IsR0FBeUUsRUFBRSxDQUFDO1FBS3BHLElBQUksQ0FBQyxLQUFLLEdBQUcsMEJBQWUsQ0FBQyxRQUFRLENBQUM7SUFDeEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsMEJBQTBCLENBQUMsTUFBK0I7UUFDeEQsSUFBQSwrQkFBa0IsRUFBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEMsSUFBQSxpQ0FBb0IsRUFBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFMUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUN6QyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDO1FBQ2pELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDO1FBQ3pELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNILG1CQUFtQixDQUFDLEdBQXFCO1FBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLENBQUM7SUFDL0IsQ0FB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WUFDRCxPQUFPLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMzQixDQUFDO1FBRUQsSUFBSSxTQUFTLFlBQVksbUJBQVUsSUFBSSxTQUFTLFlBQVksb0JBQVcsSUFBSSxTQUFTLFlBQVksb0JBQVcsRUFBRSxDQUFDO1lBQzVHLG9EQUFvRDtZQUNwRCxPQUFPLGVBQUssQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFFRCwrQkFBK0I7UUFDL0IsT0FBTyxlQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7Q0FDRjtBQXRURCw4Q0FzVEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBY2NvdW50QWRkcmVzcyxcbiAgRW50cnlGdW5jdGlvbkFCSSxcbiAgRW50cnlGdW5jdGlvbkFyZ3VtZW50VHlwZXMsXG4gIElucHV0R2VuZXJhdGVUcmFuc2FjdGlvblBheWxvYWREYXRhLFxuICBTaW1wbGVFbnRyeUZ1bmN0aW9uQXJndW1lbnRUeXBlcyxcbiAgVHJhbnNhY3Rpb25QYXlsb2FkLFxuICBUcmFuc2FjdGlvblBheWxvYWRFbnRyeUZ1bmN0aW9uLFxuICBUeXBlVGFnQWRkcmVzcyxcbiAgVHlwZVRhZ0Jvb2wsXG4gIFR5cGVUYWdVMTI4LFxuICBUeXBlVGFnVTE2LFxuICBUeXBlVGFnVTI1NixcbiAgVHlwZVRhZ1UzMixcbiAgVHlwZVRhZ1U2NCxcbiAgVHlwZVRhZ1U4LFxufSBmcm9tICdAYXB0b3MtbGFicy90cy1zZGsnO1xuaW1wb3J0IHsgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEN1c3RvbVRyYW5zYWN0aW9uUGFyYW1zIH0gZnJvbSAnLi4vaWZhY2UnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IHZhbGlkYXRlRnVuY3Rpb25OYW1lLCB2YWxpZGF0ZU1vZHVsZU5hbWUgfSBmcm9tICcuLi91dGlscy92YWxpZGF0aW9uJztcbmltcG9ydCB7IEFic3RyYWN0VHJhbnNmZXJUcmFuc2FjdGlvbiB9IGZyb20gJy4vYWJzdHJhY3RUcmFuc2ZlclRyYW5zYWN0aW9uJztcblxuLyoqXG4gKiBUcmFuc2FjdGlvbiBjbGFzcyBmb3IgY3VzdG9tIEFwdG9zIHRyYW5zYWN0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIEN1c3RvbVRyYW5zYWN0aW9uIGV4dGVuZHMgQWJzdHJhY3RUcmFuc2ZlclRyYW5zYWN0aW9uIHtcbiAgcHJpdmF0ZSBfbW9kdWxlTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIF9mdW5jdGlvbk5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSBfdHlwZUFyZ3VtZW50czogc3RyaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSBfZnVuY3Rpb25Bcmd1bWVudHM6IEFycmF5PEVudHJ5RnVuY3Rpb25Bcmd1bWVudFR5cGVzIHwgU2ltcGxlRW50cnlGdW5jdGlvbkFyZ3VtZW50VHlwZXM+ID0gW107XG4gIHByaXZhdGUgX2VudHJ5RnVuY3Rpb25BYmk/OiBFbnRyeUZ1bmN0aW9uQUJJO1xuXG4gIGNvbnN0cnVjdG9yKGNvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHlwZSA9IFRyYW5zYWN0aW9uVHlwZS5DdXN0b21UeDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGN1c3RvbSB0cmFuc2FjdGlvbiBwYXJhbWV0ZXJzXG4gICAqL1xuICBzZXRDdXN0b21UcmFuc2FjdGlvblBhcmFtcyhwYXJhbXM6IEN1c3RvbVRyYW5zYWN0aW9uUGFyYW1zKTogdm9pZCB7XG4gICAgdmFsaWRhdGVNb2R1bGVOYW1lKHBhcmFtcy5tb2R1bGVOYW1lKTtcbiAgICB2YWxpZGF0ZUZ1bmN0aW9uTmFtZShwYXJhbXMuZnVuY3Rpb25OYW1lKTtcblxuICAgIHRoaXMuX21vZHVsZU5hbWUgPSBwYXJhbXMubW9kdWxlTmFtZTtcbiAgICB0aGlzLl9mdW5jdGlvbk5hbWUgPSBwYXJhbXMuZnVuY3Rpb25OYW1lO1xuICAgIHRoaXMuX3R5cGVBcmd1bWVudHMgPSBwYXJhbXMudHlwZUFyZ3VtZW50cyB8fCBbXTtcbiAgICB0aGlzLl9mdW5jdGlvbkFyZ3VtZW50cyA9IHBhcmFtcy5mdW5jdGlvbkFyZ3VtZW50cyB8fCBbXTtcbiAgICB0aGlzLl9lbnRyeUZ1bmN0aW9uQWJpID0gcGFyYW1zLmFiaTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGVudHJ5IGZ1bmN0aW9uIEFCSVxuICAgKi9cbiAgc2V0RW50cnlGdW5jdGlvbkFiaShhYmk6IEVudHJ5RnVuY3Rpb25BQkkpOiB2b2lkIHtcbiAgICB0aGlzLl9lbnRyeUZ1bmN0aW9uQWJpID0gYWJpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZnVsbCBmdW5jdGlvbiBuYW1lXG4gICAqL1xuICBnZXQgZnVsbEZ1bmN0aW9uTmFtZSgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5fbW9kdWxlTmFtZSB8fCAhdGhpcy5fZnVuY3Rpb25OYW1lKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLl9tb2R1bGVOYW1lfTo6JHt0aGlzLl9mdW5jdGlvbk5hbWV9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZSBhIHRyYW5zYWN0aW9uIHBheWxvYWQgdG8gZXh0cmFjdCB0aGUgY3VzdG9tIHRyYW5zYWN0aW9uIGRhdGFcbiAgICogUmVxdWlyZXMgQUJJIGluZm9ybWF0aW9uIGZvciBwcm9wZXIgdHlwZS1hd2FyZSBjb252ZXJzaW9uXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25QYXlsb2FkfSBwYXlsb2FkIC0gVGhlIHRyYW5zYWN0aW9uIHBheWxvYWQgdG8gcGFyc2VcbiAgICovXG4gIHByb3RlY3RlZCBwYXJzZVRyYW5zYWN0aW9uUGF5bG9hZChwYXlsb2FkOiBUcmFuc2FjdGlvblBheWxvYWQpOiB2b2lkIHtcbiAgICBpZiAoIShwYXlsb2FkIGluc3RhbmNlb2YgVHJhbnNhY3Rpb25QYXlsb2FkRW50cnlGdW5jdGlvbikpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRXhwZWN0ZWQgZW50cnkgZnVuY3Rpb24gcGF5bG9hZCBmb3IgY3VzdG9tIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuXG4gICAgY29uc3QgZW50cnlGdW5jdGlvbiA9IHBheWxvYWQuZW50cnlGdW5jdGlvbjtcblxuICAgIC8vIEV4dHJhY3QgZnVuY3Rpb24gZGF0YVxuICAgIGNvbnN0IG1vZHVsZUFkZHJlc3MgPSBlbnRyeUZ1bmN0aW9uLm1vZHVsZV9uYW1lLmFkZHJlc3MudG9TdHJpbmcoKTtcbiAgICBjb25zdCBtb2R1bGVJZGVudGlmaWVyID0gZW50cnlGdW5jdGlvbi5tb2R1bGVfbmFtZS5uYW1lLmlkZW50aWZpZXI7XG4gICAgY29uc3QgZnVuY3Rpb25JZGVudGlmaWVyID0gZW50cnlGdW5jdGlvbi5mdW5jdGlvbl9uYW1lLmlkZW50aWZpZXI7XG5cbiAgICBjb25zdCBtb2R1bGVOYW1lID0gYCR7bW9kdWxlQWRkcmVzc306OiR7bW9kdWxlSWRlbnRpZmllcn1gO1xuXG4gICAgLy8gVmFsaWRhdGVcbiAgICB2YWxpZGF0ZU1vZHVsZU5hbWUobW9kdWxlTmFtZSk7XG4gICAgdmFsaWRhdGVGdW5jdGlvbk5hbWUoZnVuY3Rpb25JZGVudGlmaWVyKTtcblxuICAgIHRoaXMuX21vZHVsZU5hbWUgPSBtb2R1bGVOYW1lO1xuICAgIHRoaXMuX2Z1bmN0aW9uTmFtZSA9IGZ1bmN0aW9uSWRlbnRpZmllcjtcbiAgICB0aGlzLl90eXBlQXJndW1lbnRzID0gZW50cnlGdW5jdGlvbi50eXBlX2FyZ3MubWFwKCh0eXBlQXJnKSA9PiB0eXBlQXJnLnRvU3RyaW5nKCkpO1xuXG4gICAgLy8gUGFyc2UgYXJndW1lbnRzIHVzaW5nIEFCSSBpbmZvcm1hdGlvblxuICAgIC8vIElmIEFCSSBpcyBhdmFpbGFibGUsIHBhcnNlIHdpdGggdHlwZSBhd2FyZW5lc3M7IG90aGVyd2lzZSBzdG9yZSByYXcgYXJncyBmb3IgbGF0ZXIgcHJvY2Vzc2luZ1xuICAgIGlmICh0aGlzLl9lbnRyeUZ1bmN0aW9uQWJpPy5wYXJhbWV0ZXJzKSB7XG4gICAgICB0aGlzLl9mdW5jdGlvbkFyZ3VtZW50cyA9IGVudHJ5RnVuY3Rpb24uYXJncy5tYXAoKGFyZzogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcmFtVHlwZSA9IHRoaXMuX2VudHJ5RnVuY3Rpb25BYmk/LnBhcmFtZXRlcnM/LltpbmRleF07XG4gICAgICAgIGlmICghcGFyYW1UeXBlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICAgICAgYE1pc3NpbmcgQUJJIHBhcmFtZXRlciB0eXBlIGZvciBhcmd1bWVudCAke2luZGV4fSBpbiAke3RoaXMuX21vZHVsZU5hbWV9Ojoke3RoaXMuX2Z1bmN0aW9uTmFtZX0uIGAgK1xuICAgICAgICAgICAgICAnQUJJIHBhcmFtZXRlciBjb3VudCBtaXNtYXRjaC4nXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0QXJndW1lbnRCeUFCSShhcmcsIHBhcmFtVHlwZSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gU3RvcmUgcmF3IGFyZ3VtZW50cyB0ZW1wb3JhcmlseSAtIHRyYW5zYWN0aW9uIHdpbGwgYmUgcmUtcGFyc2VkIHdoZW4gQUJJIGlzIHByb3ZpZGVkXG4gICAgICB0aGlzLl9mdW5jdGlvbkFyZ3VtZW50cyA9IGVudHJ5RnVuY3Rpb24uYXJncy5tYXAoKGFyZzogYW55KSA9PiBhcmcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSB0cmFuc2FjdGlvbiBwYXlsb2FkIGRhdGFcbiAgICovXG4gIHByb3RlY3RlZCBnZXRUcmFuc2FjdGlvblBheWxvYWREYXRhKCk6IElucHV0R2VuZXJhdGVUcmFuc2FjdGlvblBheWxvYWREYXRhIHtcbiAgICBjb25zdCBmdW5jdGlvbk5hbWUgPSB0aGlzLmdldFZhbGlkYXRlZEZ1bGxGdW5jdGlvbk5hbWUoKTtcblxuICAgIC8vIEFyZ3VtZW50cyBhcmUgcHJlLXByb2Nlc3NlZCBkdXJpbmcgcGFyc2luZyBwaGFzZVxuICAgIGNvbnN0IHByb2Nlc3NlZEFyZ3VtZW50cyA9IHRoaXMuX2Z1bmN0aW9uQXJndW1lbnRzO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGZ1bmN0aW9uOiBmdW5jdGlvbk5hbWUsXG4gICAgICB0eXBlQXJndW1lbnRzOiB0aGlzLl90eXBlQXJndW1lbnRzLFxuICAgICAgZnVuY3Rpb25Bcmd1bWVudHM6IHByb2Nlc3NlZEFyZ3VtZW50cyxcbiAgICAgIGFiaTogdGhpcy5fZW50cnlGdW5jdGlvbkFiaSxcbiAgICB9IGFzIElucHV0R2VuZXJhdGVUcmFuc2FjdGlvblBheWxvYWREYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgYXJndW1lbnQgYmFzZWQgb24gQUJJIHR5cGUgaW5mb3JtYXRpb25cbiAgICovXG4gIHByaXZhdGUgY29udmVydEFyZ3VtZW50QnlBQkkoYXJnOiBhbnksIHBhcmFtVHlwZTogYW55KTogYW55IHtcbiAgICAvLyBIYW5kbGUgcHJpbWl0aXZlIHZhbHVlcyAoc3RyaW5nLCBudW1iZXIsIGJvb2xlYW4pXG4gICAgaWYgKHR5cGVvZiBhcmcgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBhcmcgPT09ICdudW1iZXInIHx8IHR5cGVvZiBhcmcgPT09ICdib29sZWFuJykge1xuICAgICAgcmV0dXJuIHRoaXMuY29udmVydFByaW1pdGl2ZUFyZ3VtZW50KGFyZywgcGFyYW1UeXBlKTtcbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgQkNTLWVuY29kZWQgZGF0YSB3aXRoICdkYXRhJyBwcm9wZXJ0eVxuICAgIGlmIChhcmcgJiYgdHlwZW9mIGFyZyA9PT0gJ29iamVjdCcgJiYgJ2RhdGEnIGluIGFyZyAmJiBhcmcuZGF0YSkge1xuICAgICAgcmV0dXJuIHRoaXMuY29udmVydEJjc0RhdGFBcmd1bWVudChhcmcsIHBhcmFtVHlwZSk7XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIG5lc3RlZCBCQ1Mgc3RydWN0dXJlcyB3aXRoICd2YWx1ZScgcHJvcGVydHlcbiAgICBpZiAoYXJnICYmIHR5cGVvZiBhcmcgPT09ICdvYmplY3QnICYmICd2YWx1ZScgaW4gYXJnICYmIGFyZy52YWx1ZSkge1xuICAgICAgcmV0dXJuIHRoaXMuY29udmVydE5lc3RlZEJjc0FyZ3VtZW50KGFyZywgcGFyYW1UeXBlKTtcbiAgICB9XG5cbiAgICAvLyBGb3IgYW55dGhpbmcgZWxzZSwgcmV0dXJuIGFzLWlzXG4gICAgcmV0dXJuIGFyZztcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IHByaW1pdGl2ZSBhcmd1bWVudCB2YWx1ZXMgYmFzZWQgb24gcGFyYW1ldGVyIHR5cGVcbiAgICovXG4gIHByaXZhdGUgY29udmVydFByaW1pdGl2ZUFyZ3VtZW50KFxuICAgIGFyZzogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbixcbiAgICBwYXJhbVR5cGU6IGFueVxuICApOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgQWNjb3VudEFkZHJlc3Mge1xuICAgIC8vIEFkZHJlc3MgY29udmVyc2lvbiBmb3IgaGV4IHN0cmluZ3NcbiAgICBpZiAocGFyYW1UeXBlIGluc3RhbmNlb2YgVHlwZVRhZ0FkZHJlc3MgJiYgdHlwZW9mIGFyZyA9PT0gJ3N0cmluZycgJiYgYXJnLnN0YXJ0c1dpdGgoJzB4JykpIHtcbiAgICAgIHJldHVybiB1dGlscy50cnlQYXJzZUFjY291bnRBZGRyZXNzKGFyZyk7XG4gICAgfVxuXG4gICAgLy8gVHlwZSBjb252ZXJzaW9ucyBiYXNlZCBvbiBwYXJhbWV0ZXIgdHlwZVxuICAgIGlmIChwYXJhbVR5cGUgaW5zdGFuY2VvZiBUeXBlVGFnQm9vbCkgcmV0dXJuIEJvb2xlYW4oYXJnKTtcblxuICAgIC8vIFVzZSB1bmlmaWVkIG51bWVyaWMgdHlwZSBoYW5kbGluZ1xuICAgIGlmICh0aGlzLmlzTnVtZXJpY1R5cGUocGFyYW1UeXBlKSkge1xuICAgICAgcmV0dXJuIHRoaXMuY29udmVydFByaW1pdGl2ZU51bWVyaWNBcmd1bWVudChhcmcpO1xuICAgIH1cblxuICAgIHJldHVybiBhcmc7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCBwcmltaXRpdmUgbnVtZXJpYyBhcmd1bWVudHMgdG8gc3RyaW5nXG4gICAqIC0gQmlnIG51bWJlcnMgYnJlYWsgSmF2YVNjcmlwdCAocHJlY2lzaW9uIGxvc3MpXG4gICAqIC0gU3RyaW5nIHNhZmVyIGZvciBsYXJnZSBVNjQvVTEyOC9VMjU2IHZhbHVlc1xuICAgKiAtIEFwdG9zIFNESyBjb252ZXJ0cyBzdHJpbmcgdG8gY29ycmVjdCB0eXBlIGF1dG9tYXRpY2FsbHlcbiAgICovXG4gIHByaXZhdGUgY29udmVydFByaW1pdGl2ZU51bWVyaWNBcmd1bWVudChhcmc6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgIC8vIEFsd2F5cyBzdHJpbmcgLSBzYWZlciBmb3IgYmlnIG51bWJlcnNcbiAgICByZXR1cm4gU3RyaW5nKGFyZyk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCBCQ1MgZGF0YSBhcmd1bWVudCB3aXRoICdkYXRhJyBwcm9wZXJ0eVxuICAgKi9cbiAgcHJpdmF0ZSBjb252ZXJ0QmNzRGF0YUFyZ3VtZW50KGFyZzogYW55LCBwYXJhbVR5cGU6IGFueSk6IHN0cmluZyB8IEFjY291bnRBZGRyZXNzIHtcbiAgICBjb25zdCBieXRlcyA9IEFycmF5LmZyb20oYXJnLmRhdGEpIGFzIG51bWJlcltdO1xuICAgIGNvbnN0IGhleFN0cmluZyA9IHV0aWxzLmJ5dGVzVG9IZXgoYnl0ZXMpO1xuXG4gICAgcmV0dXJuIHBhcmFtVHlwZSBpbnN0YW5jZW9mIFR5cGVUYWdBZGRyZXNzID8gdXRpbHMudHJ5UGFyc2VBY2NvdW50QWRkcmVzcyhoZXhTdHJpbmcpIDogaGV4U3RyaW5nO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgbmVzdGVkIEJDUyBhcmd1bWVudCB3aXRoICd2YWx1ZScgcHJvcGVydHlcbiAgICovXG4gIHByaXZhdGUgY29udmVydE5lc3RlZEJjc0FyZ3VtZW50KGFyZzogYW55LCBwYXJhbVR5cGU6IGFueSk6IGFueSB7XG4gICAgLy8gQ2hlY2sgaWYgaW5uZXIgdmFsdWUgaXMgYSBVaW50OEFycmF5IChjb21tb24gZm9yIFU2NCBhcmd1bWVudHMpXG4gICAgaWYgKGFyZy52YWx1ZS52YWx1ZSAmJiBhcmcudmFsdWUudmFsdWUgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICBjb25zdCBieXRlcyA9IEFycmF5LmZyb20oYXJnLnZhbHVlLnZhbHVlKSBhcyBudW1iZXJbXTtcbiAgICAgIGlmICh0aGlzLmlzTnVtZXJpY1R5cGUocGFyYW1UeXBlKSkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0TnVtZXJpY0FyZ3VtZW50KGJ5dGVzLCBwYXJhbVR5cGUpO1xuICAgICAgfVxuICAgICAgLy8gRm9yIG5vbi1udW1lcmljIHR5cGVzLCBjb252ZXJ0IHRvIGhleCBzdHJpbmdcbiAgICAgIHJldHVybiB1dGlscy5ieXRlc1RvSGV4KGJ5dGVzKTtcbiAgICB9XG5cbiAgICAvLyBTaW1wbGUgdmFsdWUgd3JhcHBlciAtIGZpeCB0aGUgYnVnIGluIG9yaWdpbmFsIGltcGxlbWVudGF0aW9uXG4gICAgaWYgKHR5cGVvZiBhcmcudmFsdWUgIT09ICdvYmplY3QnIHx8ICEoJ3ZhbHVlJyBpbiBhcmcudmFsdWUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb252ZXJ0QXJndW1lbnRCeUFCSShhcmcudmFsdWUsIHBhcmFtVHlwZSk7XG4gICAgfVxuXG4gICAgLy8gRG91YmxlIG5lc3RlZCBzdHJ1Y3R1cmUgd2l0aCBudW1lcmljIGtleXNcbiAgICBjb25zdCBieXRlcyA9IHRoaXMuZXh0cmFjdEJ5dGVzRnJvbUJjc09iamVjdChhcmcudmFsdWUudmFsdWUpO1xuICAgIGlmIChieXRlcy5sZW5ndGggPT09IDApIHJldHVybiBhcmc7XG5cbiAgICBsZXQgZXh0cmFjdGVkVmFsdWU6IGFueTtcblxuICAgIC8vIENvbnZlcnQgYnl0ZXMgYmFzZWQgb24gcGFyYW1ldGVyIHR5cGUgdXNpbmcgdW5pZmllZCBhcHByb2FjaFxuICAgIGlmICh0aGlzLmlzTnVtZXJpY1R5cGUocGFyYW1UeXBlKSkge1xuICAgICAgZXh0cmFjdGVkVmFsdWUgPSB0aGlzLmNvbnZlcnROdW1lcmljQXJndW1lbnQoYnl0ZXMsIHBhcmFtVHlwZSk7XG4gICAgfSBlbHNlIGlmIChwYXJhbVR5cGUgaW5zdGFuY2VvZiBUeXBlVGFnQWRkcmVzcykge1xuICAgICAgZXh0cmFjdGVkVmFsdWUgPSB1dGlscy5ieXRlc1RvSGV4KGJ5dGVzKTtcbiAgICB9IGVsc2UgaWYgKHBhcmFtVHlwZSBpbnN0YW5jZW9mIFR5cGVUYWdCb29sKSB7XG4gICAgICBleHRyYWN0ZWRWYWx1ZSA9IGJ5dGVzWzBdID09PSAxO1xuICAgIH0gZWxzZSB7XG4gICAgICBleHRyYWN0ZWRWYWx1ZSA9IHV0aWxzLmJ5dGVzVG9IZXgoYnl0ZXMpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNvbnZlcnRBcmd1bWVudEJ5QUJJKGV4dHJhY3RlZFZhbHVlLCBwYXJhbVR5cGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3QgYnl0ZXMgZnJvbSBCQ1Mgb2JqZWN0IHdpdGggbnVtZXJpYyBrZXlzXG4gICAqL1xuICBwcml2YXRlIGV4dHJhY3RCeXRlc0Zyb21CY3NPYmplY3QoYmNzT2JqZWN0OiBhbnkpOiBudW1iZXJbXSB7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGJjc09iamVjdClcbiAgICAgIC5maWx0ZXIoKGspID0+ICFpc05hTihwYXJzZUludChrLCAxMCkpKVxuICAgICAgLnNvcnQoKGEsIGIpID0+IHBhcnNlSW50KGEsIDEwKSAtIHBhcnNlSW50KGIsIDEwKSk7XG5cbiAgICBpZiAoa2V5cy5sZW5ndGggPT09IDApIHJldHVybiBbXTtcblxuICAgIHJldHVybiBrZXlzLm1hcCgoaykgPT4gYmNzT2JqZWN0W2tdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY3VzdG9tIHRyYW5zYWN0aW9uIHBhcmFtZXRlcnNcbiAgICovXG4gIGdldEN1c3RvbVRyYW5zYWN0aW9uUGFyYW1zKCk6IEN1c3RvbVRyYW5zYWN0aW9uUGFyYW1zIHtcbiAgICByZXR1cm4ge1xuICAgICAgbW9kdWxlTmFtZTogdGhpcy5fbW9kdWxlTmFtZSB8fCAnJyxcbiAgICAgIGZ1bmN0aW9uTmFtZTogdGhpcy5fZnVuY3Rpb25OYW1lIHx8ICcnLFxuICAgICAgdHlwZUFyZ3VtZW50czogdGhpcy5fdHlwZUFyZ3VtZW50cyxcbiAgICAgIGZ1bmN0aW9uQXJndW1lbnRzOiB0aGlzLl9mdW5jdGlvbkFyZ3VtZW50cyxcbiAgICAgIGFiaTogdGhpcy5fZW50cnlGdW5jdGlvbkFiaSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIHJlY2lwaWVudCBnZXR0ZXIgZm9yIGN1c3RvbSB0cmFuc2FjdGlvbnNcbiAgICovXG4gIGdldCByZWNpcGllbnQoKTogYW55IHtcbiAgICBpZiAodGhpcy5fcmVjaXBpZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFkZHJlc3M6ICcnLFxuICAgICAgICBhbW91bnQ6ICcwJyxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9yZWNpcGllbnRzWzBdO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB2YWxpZGF0ZWQgZnVsbCBmdW5jdGlvbiBuYW1lXG4gICAqL1xuICBwcml2YXRlIGdldFZhbGlkYXRlZEZ1bGxGdW5jdGlvbk5hbWUoKTogYCR7c3RyaW5nfTo6JHtzdHJpbmd9Ojoke3N0cmluZ31gIHtcbiAgICBpZiAoIXRoaXMuX21vZHVsZU5hbWUgfHwgIXRoaXMuX2Z1bmN0aW9uTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNb2R1bGUgbmFtZSBhbmQgZnVuY3Rpb24gbmFtZSBtdXN0IGJlIHNldCBiZWZvcmUgYnVpbGRpbmcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG5cbiAgICBjb25zdCBmdWxsTmFtZSA9IGAke3RoaXMuX21vZHVsZU5hbWV9Ojoke3RoaXMuX2Z1bmN0aW9uTmFtZX1gO1xuXG4gICAgLy8gQmFzaWMgdmFsaWRhdGlvblxuICAgIGNvbnN0IGZ1bGxGdW5jdGlvblBhdHRlcm4gPVxuICAgICAgL14oMHhbYS1mQS1GMC05XXsxLDY0fXxbYS16QS1aX11bYS16QS1aMC05X10qKTo6W2EtekEtWl9dW2EtekEtWjAtOV9dKjo6W2EtekEtWl9dW2EtekEtWjAtOV9dKiQvO1xuICAgIGlmICghZnVsbEZ1bmN0aW9uUGF0dGVybi50ZXN0KGZ1bGxOYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGZ1bGwgZnVuY3Rpb24gbmFtZSBmb3JtYXQ6IFwiJHtmdWxsTmFtZX1cIi4gRXhwZWN0ZWQgZm9ybWF0OiBcImFkZHJlc3M6Om1vZHVsZTo6ZnVuY3Rpb25cImApO1xuICAgIH1cblxuICAgIHJldHVybiBmdWxsTmFtZSBhcyBgJHtzdHJpbmd9Ojoke3N0cmluZ306OiR7c3RyaW5nfWA7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgYSBwYXJhbWV0ZXIgdHlwZSBpcyBhIG51bWVyaWMgdHlwZVxuICAgKi9cbiAgcHJpdmF0ZSBpc051bWVyaWNUeXBlKHBhcmFtVHlwZTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHBhcmFtVHlwZSBpbnN0YW5jZW9mIFR5cGVUYWdVOCB8fFxuICAgICAgcGFyYW1UeXBlIGluc3RhbmNlb2YgVHlwZVRhZ1UxNiB8fFxuICAgICAgcGFyYW1UeXBlIGluc3RhbmNlb2YgVHlwZVRhZ1UzMiB8fFxuICAgICAgcGFyYW1UeXBlIGluc3RhbmNlb2YgVHlwZVRhZ1U2NCB8fFxuICAgICAgcGFyYW1UeXBlIGluc3RhbmNlb2YgVHlwZVRhZ1UxMjggfHxcbiAgICAgIHBhcmFtVHlwZSBpbnN0YW5jZW9mIFR5cGVUYWdVMjU2XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGJ5dGUgYXJyYXlzIHRvIHN0cmluZyBudW1iZXJzXG4gICAqIC0gU21hbGwgdHlwZXMgKFU4L1UxNi9VMzIpOiAxLTQgYnl0ZXMsIHBhcnNlIG1hbnVhbGx5XG4gICAqIC0gTGFyZ2UgdHlwZXMgKFU2NC9VMTI4L1UyNTYpOiA4KyBieXRlcywgdXNlIGV4aXN0aW5nIHV0aWxpdHlcbiAgICogLSBCb3RoIHJldHVybiBzdHJpbmcgZm9yIGNvbnNpc3RlbmN5XG4gICAqL1xuICBwcml2YXRlIGNvbnZlcnROdW1lcmljQXJndW1lbnQoYnl0ZXM6IG51bWJlcltdLCBwYXJhbVR5cGU6IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKHBhcmFtVHlwZSBpbnN0YW5jZW9mIFR5cGVUYWdVOCB8fCBwYXJhbVR5cGUgaW5zdGFuY2VvZiBUeXBlVGFnVTE2IHx8IHBhcmFtVHlwZSBpbnN0YW5jZW9mIFR5cGVUYWdVMzIpIHtcbiAgICAgIC8vIFNtYWxsIHR5cGVzOiBwYXJzZSBieXRlcyBtYW51YWxseSAoMS00IGJ5dGVzKVxuICAgICAgbGV0IHJlc3VsdCA9IDA7XG4gICAgICBmb3IgKGxldCBpID0gYnl0ZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICogMjU2ICsgYnl0ZXNbaV07XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtVHlwZSBpbnN0YW5jZW9mIFR5cGVUYWdVNjQgfHwgcGFyYW1UeXBlIGluc3RhbmNlb2YgVHlwZVRhZ1UxMjggfHwgcGFyYW1UeXBlIGluc3RhbmNlb2YgVHlwZVRhZ1UyNTYpIHtcbiAgICAgIC8vIExhcmdlIHR5cGVzOiB1c2UgZXhpc3RpbmcgbWV0aG9kIChuZWVkcyA4KyBieXRlcylcbiAgICAgIHJldHVybiB1dGlscy5nZXRBbW91bnRGcm9tUGF5bG9hZEFyZ3MobmV3IFVpbnQ4QXJyYXkoYnl0ZXMpKTtcbiAgICB9XG5cbiAgICAvLyBVbmtub3duIHR5cGU6IGNvbnZlcnQgdG8gaGV4XG4gICAgcmV0dXJuIHV0aWxzLmJ5dGVzVG9IZXgoYnl0ZXMpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,10 @@
1
+ import { MoveFunctionId } from '@aptos-labs/ts-sdk';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { AbstractDelegationPoolAmountBasedTransaction } from './abstractDelegationPoolAmountBasedTransaction';
4
+ import { InputsAndOutputs } from './transaction';
5
+ export declare class DelegationPoolAddStakeTransaction extends AbstractDelegationPoolAmountBasedTransaction {
6
+ constructor(coinConfig: Readonly<CoinConfig>);
7
+ moveFunctionId(): MoveFunctionId;
8
+ inputsAndOutputs(): InputsAndOutputs;
9
+ }
10
+ //# sourceMappingURL=delegationPoolAddStakeTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegationPoolAddStakeTransaction.d.ts","sourceRoot":"","sources":["../../../../src/lib/transaction/delegationPoolAddStakeTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,4CAA4C,EAAE,MAAM,gDAAgD,CAAC;AAC9G,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,qBAAa,iCAAkC,SAAQ,4CAA4C;gBACrF,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAKnC,cAAc,IAAI,cAAc;IAIhC,gBAAgB,IAAI,gBAAgB;CA4B9C"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DelegationPoolAddStakeTransaction = void 0;
4
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
5
+ const constants_1 = require("../constants");
6
+ const abstractDelegationPoolAmountBasedTransaction_1 = require("./abstractDelegationPoolAmountBasedTransaction");
7
+ class DelegationPoolAddStakeTransaction extends abstractDelegationPoolAmountBasedTransaction_1.AbstractDelegationPoolAmountBasedTransaction {
8
+ constructor(coinConfig) {
9
+ super(coinConfig);
10
+ this._type = sdk_core_1.TransactionType.StakingDelegate;
11
+ }
12
+ moveFunctionId() {
13
+ return constants_1.DELEGATION_POOL_ADD_STAKE_FUNCTION;
14
+ }
15
+ inputsAndOutputs() {
16
+ const { sender, validatorAddress, amount } = this;
17
+ if (sender === undefined)
18
+ throw new Error('sender is undefined');
19
+ if (validatorAddress === undefined)
20
+ throw new Error('validatorAddress is undefined');
21
+ if (amount === undefined)
22
+ throw new Error('amount is undefined');
23
+ return {
24
+ inputs: [
25
+ {
26
+ address: sender,
27
+ value: amount,
28
+ coin: this._coinConfig.name,
29
+ },
30
+ ],
31
+ outputs: [
32
+ {
33
+ address: validatorAddress,
34
+ value: amount,
35
+ coin: this._coinConfig.name,
36
+ },
37
+ ],
38
+ externalOutputs: [
39
+ {
40
+ address: validatorAddress,
41
+ amount: amount,
42
+ },
43
+ ],
44
+ };
45
+ }
46
+ }
47
+ exports.DelegationPoolAddStakeTransaction = DelegationPoolAddStakeTransaction;
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZWdhdGlvblBvb2xBZGRTdGFrZVRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbi9kZWxlZ2F0aW9uUG9vbEFkZFN0YWtlVHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsbURBQXVEO0FBR3ZELDRDQUFrRTtBQUNsRSxpSEFBOEc7QUFHOUcsTUFBYSxpQ0FBa0MsU0FBUSwyRkFBNEM7SUFDakcsWUFBWSxVQUFnQztRQUMxQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRywwQkFBZSxDQUFDLGVBQWUsQ0FBQztJQUMvQyxDQUFDO0lBRVEsY0FBYztRQUNyQixPQUFPLDhDQUFrQyxDQUFDO0lBQzVDLENBQUM7SUFFUSxnQkFBZ0I7UUFDdkIsTUFBTSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDbEQsSUFBSSxNQUFNLEtBQUssU0FBUztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNqRSxJQUFJLGdCQUFnQixLQUFLLFNBQVM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDckYsSUFBSSxNQUFNLEtBQUssU0FBUztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNqRSxPQUFPO1lBQ0wsTUFBTSxFQUFFO2dCQUNOO29CQUNFLE9BQU8sRUFBRSxNQUFNO29CQUNmLEtBQUssRUFBRSxNQUFNO29CQUNiLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUk7aUJBQzVCO2FBQ0Y7WUFDRCxPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsT0FBTyxFQUFFLGdCQUFnQjtvQkFDekIsS0FBSyxFQUFFLE1BQU07b0JBQ2IsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSTtpQkFDNUI7YUFDRjtZQUNELGVBQWUsRUFBRTtnQkFDZjtvQkFDRSxPQUFPLEVBQUUsZ0JBQWdCO29CQUN6QixNQUFNLEVBQUUsTUFBTTtpQkFDZjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXRDRCw4RUFzQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb3ZlRnVuY3Rpb25JZCB9IGZyb20gJ0BhcHRvcy1sYWJzL3RzLXNkayc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5cbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IERFTEVHQVRJT05fUE9PTF9BRERfU1RBS0VfRlVOQ1RJT04gfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQWJzdHJhY3REZWxlZ2F0aW9uUG9vbEFtb3VudEJhc2VkVHJhbnNhY3Rpb24gfSBmcm9tICcuL2Fic3RyYWN0RGVsZWdhdGlvblBvb2xBbW91bnRCYXNlZFRyYW5zYWN0aW9uJztcbmltcG9ydCB7IElucHV0c0FuZE91dHB1dHMgfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcblxuZXhwb3J0IGNsYXNzIERlbGVnYXRpb25Qb29sQWRkU3Rha2VUcmFuc2FjdGlvbiBleHRlbmRzIEFic3RyYWN0RGVsZWdhdGlvblBvb2xBbW91bnRCYXNlZFRyYW5zYWN0aW9uIHtcbiAgY29uc3RydWN0b3IoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihjb2luQ29uZmlnKTtcbiAgICB0aGlzLl90eXBlID0gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdEZWxlZ2F0ZTtcbiAgfVxuXG4gIG92ZXJyaWRlIG1vdmVGdW5jdGlvbklkKCk6IE1vdmVGdW5jdGlvbklkIHtcbiAgICByZXR1cm4gREVMRUdBVElPTl9QT09MX0FERF9TVEFLRV9GVU5DVElPTjtcbiAgfVxuXG4gIG92ZXJyaWRlIGlucHV0c0FuZE91dHB1dHMoKTogSW5wdXRzQW5kT3V0cHV0cyB7XG4gICAgY29uc3QgeyBzZW5kZXIsIHZhbGlkYXRvckFkZHJlc3MsIGFtb3VudCB9ID0gdGhpcztcbiAgICBpZiAoc2VuZGVyID09PSB1bmRlZmluZWQpIHRocm93IG5ldyBFcnJvcignc2VuZGVyIGlzIHVuZGVmaW5lZCcpO1xuICAgIGlmICh2YWxpZGF0b3JBZGRyZXNzID09PSB1bmRlZmluZWQpIHRocm93IG5ldyBFcnJvcigndmFsaWRhdG9yQWRkcmVzcyBpcyB1bmRlZmluZWQnKTtcbiAgICBpZiAoYW1vdW50ID09PSB1bmRlZmluZWQpIHRocm93IG5ldyBFcnJvcignYW1vdW50IGlzIHVuZGVmaW5lZCcpO1xuICAgIHJldHVybiB7XG4gICAgICBpbnB1dHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGFkZHJlc3M6IHNlbmRlcixcbiAgICAgICAgICB2YWx1ZTogYW1vdW50LFxuICAgICAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBvdXRwdXRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBhZGRyZXNzOiB2YWxpZGF0b3JBZGRyZXNzLFxuICAgICAgICAgIHZhbHVlOiBhbW91bnQsXG4gICAgICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGV4dGVybmFsT3V0cHV0czogW1xuICAgICAgICB7XG4gICAgICAgICAgYWRkcmVzczogdmFsaWRhdG9yQWRkcmVzcyxcbiAgICAgICAgICBhbW91bnQ6IGFtb3VudCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -0,0 +1,10 @@
1
+ import { MoveFunctionId } from '@aptos-labs/ts-sdk';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { AbstractDelegationPoolAmountBasedTransaction } from './abstractDelegationPoolAmountBasedTransaction';
4
+ import { InputsAndOutputs } from './transaction';
5
+ export declare class DelegationPoolUnlockTransaction extends AbstractDelegationPoolAmountBasedTransaction {
6
+ constructor(coinConfig: Readonly<CoinConfig>);
7
+ moveFunctionId(): MoveFunctionId;
8
+ inputsAndOutputs(): InputsAndOutputs;
9
+ }
10
+ //# sourceMappingURL=delegationPoolUnlockTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegationPoolUnlockTransaction.d.ts","sourceRoot":"","sources":["../../../../src/lib/transaction/delegationPoolUnlockTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,4CAA4C,EAAE,MAAM,gDAAgD,CAAC;AAC9G,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,qBAAa,+BAAgC,SAAQ,4CAA4C;gBACnF,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAKnC,cAAc,IAAI,cAAc;IAIhC,gBAAgB,IAAI,gBAAgB;CAO9C"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DelegationPoolUnlockTransaction = void 0;
4
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
5
+ const constants_1 = require("../constants");
6
+ const abstractDelegationPoolAmountBasedTransaction_1 = require("./abstractDelegationPoolAmountBasedTransaction");
7
+ class DelegationPoolUnlockTransaction extends abstractDelegationPoolAmountBasedTransaction_1.AbstractDelegationPoolAmountBasedTransaction {
8
+ constructor(coinConfig) {
9
+ super(coinConfig);
10
+ this._type = sdk_core_1.TransactionType.StakingUnlock;
11
+ }
12
+ moveFunctionId() {
13
+ return constants_1.DELEGATION_POOL_UNLOCK_FUNCTION;
14
+ }
15
+ inputsAndOutputs() {
16
+ return {
17
+ inputs: [],
18
+ outputs: [],
19
+ externalOutputs: [],
20
+ };
21
+ }
22
+ }
23
+ exports.DelegationPoolUnlockTransaction = DelegationPoolUnlockTransaction;
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZWdhdGlvblBvb2xVbmxvY2tUcmFuc2FjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb24vZGVsZWdhdGlvblBvb2xVbmxvY2tUcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxtREFBdUQ7QUFHdkQsNENBQStEO0FBQy9ELGlIQUE4RztBQUc5RyxNQUFhLCtCQUFnQyxTQUFRLDJGQUE0QztJQUMvRixZQUFZLFVBQWdDO1FBQzFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLDBCQUFlLENBQUMsYUFBYSxDQUFDO0lBQzdDLENBQUM7SUFFUSxjQUFjO1FBQ3JCLE9BQU8sMkNBQStCLENBQUM7SUFDekMsQ0FBQztJQUVRLGdCQUFnQjtRQUN2QixPQUFPO1lBQ0wsTUFBTSxFQUFFLEVBQUU7WUFDVixPQUFPLEVBQUUsRUFBRTtZQUNYLGVBQWUsRUFBRSxFQUFFO1NBQ3BCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFqQkQsMEVBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW92ZUZ1bmN0aW9uSWQgfSBmcm9tICdAYXB0b3MtbGFicy90cy1zZGsnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuXG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBERUxFR0FUSU9OX1BPT0xfVU5MT0NLX0ZVTkNUSU9OIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEFic3RyYWN0RGVsZWdhdGlvblBvb2xBbW91bnRCYXNlZFRyYW5zYWN0aW9uIH0gZnJvbSAnLi9hYnN0cmFjdERlbGVnYXRpb25Qb29sQW1vdW50QmFzZWRUcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBJbnB1dHNBbmRPdXRwdXRzIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5cbmV4cG9ydCBjbGFzcyBEZWxlZ2F0aW9uUG9vbFVubG9ja1RyYW5zYWN0aW9uIGV4dGVuZHMgQWJzdHJhY3REZWxlZ2F0aW9uUG9vbEFtb3VudEJhc2VkVHJhbnNhY3Rpb24ge1xuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICAgIHRoaXMuX3R5cGUgPSBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1VubG9jaztcbiAgfVxuXG4gIG92ZXJyaWRlIG1vdmVGdW5jdGlvbklkKCk6IE1vdmVGdW5jdGlvbklkIHtcbiAgICByZXR1cm4gREVMRUdBVElPTl9QT09MX1VOTE9DS19GVU5DVElPTjtcbiAgfVxuXG4gIG92ZXJyaWRlIGlucHV0c0FuZE91dHB1dHMoKTogSW5wdXRzQW5kT3V0cHV0cyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlucHV0czogW10sXG4gICAgICBvdXRwdXRzOiBbXSxcbiAgICAgIGV4dGVybmFsT3V0cHV0czogW10sXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -0,0 +1,10 @@
1
+ import { MoveFunctionId } from '@aptos-labs/ts-sdk';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { AbstractDelegationPoolAmountBasedTransaction } from './abstractDelegationPoolAmountBasedTransaction';
4
+ import { InputsAndOutputs } from './transaction';
5
+ export declare class DelegationPoolWithdrawTransaction extends AbstractDelegationPoolAmountBasedTransaction {
6
+ constructor(coinConfig: Readonly<CoinConfig>);
7
+ moveFunctionId(): MoveFunctionId;
8
+ inputsAndOutputs(): InputsAndOutputs;
9
+ }
10
+ //# sourceMappingURL=delegationPoolWithdrawTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegationPoolWithdrawTransaction.d.ts","sourceRoot":"","sources":["../../../../src/lib/transaction/delegationPoolWithdrawTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,4CAA4C,EAAE,MAAM,gDAAgD,CAAC;AAC9G,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,qBAAa,iCAAkC,SAAQ,4CAA4C;gBACrF,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAKnC,cAAc,IAAI,cAAc;IAIhC,gBAAgB,IAAI,gBAAgB;CAuB9C"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DelegationPoolWithdrawTransaction = void 0;
4
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
5
+ const constants_1 = require("../constants");
6
+ const abstractDelegationPoolAmountBasedTransaction_1 = require("./abstractDelegationPoolAmountBasedTransaction");
7
+ class DelegationPoolWithdrawTransaction extends abstractDelegationPoolAmountBasedTransaction_1.AbstractDelegationPoolAmountBasedTransaction {
8
+ constructor(coinConfig) {
9
+ super(coinConfig);
10
+ this._type = sdk_core_1.TransactionType.StakingWithdraw;
11
+ }
12
+ moveFunctionId() {
13
+ return constants_1.DELEGATION_POOL_WITHDRAW_FUNCTION;
14
+ }
15
+ inputsAndOutputs() {
16
+ const { sender, validatorAddress, amount } = this;
17
+ if (sender === undefined)
18
+ throw new Error('sender is undefined');
19
+ if (validatorAddress === undefined)
20
+ throw new Error('validatorAddress is undefined');
21
+ if (amount === undefined)
22
+ throw new Error('amount is undefined');
23
+ return {
24
+ inputs: [
25
+ {
26
+ address: validatorAddress,
27
+ value: amount,
28
+ coin: this._coinConfig.name,
29
+ },
30
+ ],
31
+ outputs: [
32
+ {
33
+ address: sender,
34
+ value: amount,
35
+ coin: this._coinConfig.name,
36
+ },
37
+ ],
38
+ externalOutputs: [],
39
+ };
40
+ }
41
+ }
42
+ exports.DelegationPoolWithdrawTransaction = DelegationPoolWithdrawTransaction;
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZWdhdGlvblBvb2xXaXRoZHJhd1RyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbi9kZWxlZ2F0aW9uUG9vbFdpdGhkcmF3VHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsbURBQXVEO0FBR3ZELDRDQUFpRTtBQUNqRSxpSEFBOEc7QUFHOUcsTUFBYSxpQ0FBa0MsU0FBUSwyRkFBNEM7SUFDakcsWUFBWSxVQUFnQztRQUMxQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRywwQkFBZSxDQUFDLGVBQWUsQ0FBQztJQUMvQyxDQUFDO0lBRVEsY0FBYztRQUNyQixPQUFPLDZDQUFpQyxDQUFDO0lBQzNDLENBQUM7SUFFUSxnQkFBZ0I7UUFDdkIsTUFBTSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDbEQsSUFBSSxNQUFNLEtBQUssU0FBUztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNqRSxJQUFJLGdCQUFnQixLQUFLLFNBQVM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDckYsSUFBSSxNQUFNLEtBQUssU0FBUztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNqRSxPQUFPO1lBQ0wsTUFBTSxFQUFFO2dCQUNOO29CQUNFLE9BQU8sRUFBRSxnQkFBZ0I7b0JBQ3pCLEtBQUssRUFBRSxNQUFNO29CQUNiLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUk7aUJBQzVCO2FBQ0Y7WUFDRCxPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsT0FBTyxFQUFFLE1BQU07b0JBQ2YsS0FBSyxFQUFFLE1BQU07b0JBQ2IsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSTtpQkFDNUI7YUFDRjtZQUNELGVBQWUsRUFBRSxFQUFFO1NBQ3BCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFqQ0QsOEVBaUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW92ZUZ1bmN0aW9uSWQgfSBmcm9tICdAYXB0b3MtbGFicy90cy1zZGsnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuXG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBERUxFR0FUSU9OX1BPT0xfV0lUSERSQVdfRlVOQ1RJT04gfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQWJzdHJhY3REZWxlZ2F0aW9uUG9vbEFtb3VudEJhc2VkVHJhbnNhY3Rpb24gfSBmcm9tICcuL2Fic3RyYWN0RGVsZWdhdGlvblBvb2xBbW91bnRCYXNlZFRyYW5zYWN0aW9uJztcbmltcG9ydCB7IElucHV0c0FuZE91dHB1dHMgfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcblxuZXhwb3J0IGNsYXNzIERlbGVnYXRpb25Qb29sV2l0aGRyYXdUcmFuc2FjdGlvbiBleHRlbmRzIEFic3RyYWN0RGVsZWdhdGlvblBvb2xBbW91bnRCYXNlZFRyYW5zYWN0aW9uIHtcbiAgY29uc3RydWN0b3IoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihjb2luQ29uZmlnKTtcbiAgICB0aGlzLl90eXBlID0gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdXaXRoZHJhdztcbiAgfVxuXG4gIG92ZXJyaWRlIG1vdmVGdW5jdGlvbklkKCk6IE1vdmVGdW5jdGlvbklkIHtcbiAgICByZXR1cm4gREVMRUdBVElPTl9QT09MX1dJVEhEUkFXX0ZVTkNUSU9OO1xuICB9XG5cbiAgb3ZlcnJpZGUgaW5wdXRzQW5kT3V0cHV0cygpOiBJbnB1dHNBbmRPdXRwdXRzIHtcbiAgICBjb25zdCB7IHNlbmRlciwgdmFsaWRhdG9yQWRkcmVzcywgYW1vdW50IH0gPSB0aGlzO1xuICAgIGlmIChzZW5kZXIgPT09IHVuZGVmaW5lZCkgdGhyb3cgbmV3IEVycm9yKCdzZW5kZXIgaXMgdW5kZWZpbmVkJyk7XG4gICAgaWYgKHZhbGlkYXRvckFkZHJlc3MgPT09IHVuZGVmaW5lZCkgdGhyb3cgbmV3IEVycm9yKCd2YWxpZGF0b3JBZGRyZXNzIGlzIHVuZGVmaW5lZCcpO1xuICAgIGlmIChhbW91bnQgPT09IHVuZGVmaW5lZCkgdGhyb3cgbmV3IEVycm9yKCdhbW91bnQgaXMgdW5kZWZpbmVkJyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlucHV0czogW1xuICAgICAgICB7XG4gICAgICAgICAgYWRkcmVzczogdmFsaWRhdG9yQWRkcmVzcyxcbiAgICAgICAgICB2YWx1ZTogYW1vdW50LFxuICAgICAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBvdXRwdXRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBhZGRyZXNzOiBzZW5kZXIsXG4gICAgICAgICAgdmFsdWU6IGFtb3VudCxcbiAgICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgZXh0ZXJuYWxPdXRwdXRzOiBbXSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,10 @@
1
+ import { InputGenerateTransactionPayloadData, TransactionPayload } from '@aptos-labs/ts-sdk';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { AbstractTransferTransaction } from './abstractTransferTransaction';
4
+ export declare class DigitalAssetTransfer extends AbstractTransferTransaction {
5
+ constructor(coinConfig: Readonly<CoinConfig>);
6
+ protected parseTransactionPayload(payload: TransactionPayload): void;
7
+ protected getTransactionPayloadData(): InputGenerateTransactionPayloadData;
8
+ private transferDigitalAssetAbi;
9
+ }
10
+ //# sourceMappingURL=digitalAssetTransfer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digitalAssetTransfer.d.ts","sourceRoot":"","sources":["../../../../src/lib/transaction/digitalAssetTransfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,mCAAmC,EAGnC,kBAAkB,EAKnB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAM7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,qBAAa,oBAAqB,SAAQ,2BAA2B;gBACvD,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK5C,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAmBpE,SAAS,CAAC,yBAAyB,IAAI,mCAAmC;IAY1E,OAAO,CAAC,uBAAuB,CAG7B;CACH"}