@bitgo-beta/sdk-coin-apt 1.0.1-beta.90 → 1.0.1-beta.901
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/apt.d.ts +9 -2
- package/dist/src/apt.d.ts.map +1 -1
- package/dist/src/apt.js +37 -11
- package/dist/src/aptNFTCollection.d.ts +18 -0
- package/dist/src/aptNFTCollection.d.ts.map +1 -0
- package/dist/src/aptNFTCollection.js +52 -0
- package/dist/src/aptToken.d.ts +19 -0
- package/dist/src/aptToken.d.ts.map +1 -0
- package/dist/src/aptToken.js +52 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -1
- package/dist/src/lib/constants.d.ts +16 -0
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +18 -2
- package/dist/src/lib/iface.d.ts +99 -2
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +1 -1
- package/dist/src/lib/index.d.ts +18 -4
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +35 -7
- package/dist/src/lib/transaction/abstractDelegationPoolAmountBasedTransaction.d.ts +21 -0
- package/dist/src/lib/transaction/abstractDelegationPoolAmountBasedTransaction.d.ts.map +1 -0
- package/dist/src/lib/transaction/abstractDelegationPoolAmountBasedTransaction.js +61 -0
- package/dist/src/lib/transaction/abstractDelegationPoolTransaction.d.ts +13 -0
- package/dist/src/lib/transaction/abstractDelegationPoolTransaction.d.ts.map +1 -0
- package/dist/src/lib/transaction/abstractDelegationPoolTransaction.js +23 -0
- package/dist/src/lib/transaction/abstractTransferTransaction.d.ts +10 -0
- package/dist/src/lib/transaction/abstractTransferTransaction.d.ts.map +1 -0
- package/dist/src/lib/transaction/abstractTransferTransaction.js +39 -0
- package/dist/src/lib/transaction/customTransaction.d.ts +89 -0
- package/dist/src/lib/transaction/customTransaction.d.ts.map +1 -0
- package/dist/src/lib/transaction/customTransaction.js +278 -0
- package/dist/src/lib/transaction/delegationPoolAddStakeTransaction.d.ts +10 -0
- package/dist/src/lib/transaction/delegationPoolAddStakeTransaction.d.ts.map +1 -0
- package/dist/src/lib/transaction/delegationPoolAddStakeTransaction.js +48 -0
- package/dist/src/lib/transaction/delegationPoolUnlockTransaction.d.ts +10 -0
- package/dist/src/lib/transaction/delegationPoolUnlockTransaction.d.ts.map +1 -0
- package/dist/src/lib/transaction/delegationPoolUnlockTransaction.js +24 -0
- package/dist/src/lib/transaction/delegationPoolWithdrawTransaction.d.ts +10 -0
- package/dist/src/lib/transaction/delegationPoolWithdrawTransaction.d.ts.map +1 -0
- package/dist/src/lib/transaction/delegationPoolWithdrawTransaction.js +43 -0
- package/dist/src/lib/transaction/digitalAssetTransfer.d.ts +10 -0
- package/dist/src/lib/transaction/digitalAssetTransfer.d.ts.map +1 -0
- package/dist/src/lib/transaction/digitalAssetTransfer.js +45 -0
- package/dist/src/lib/transaction/fungibleAssetTransfer.d.ts +12 -0
- package/dist/src/lib/transaction/fungibleAssetTransfer.d.ts.map +1 -0
- package/dist/src/lib/transaction/fungibleAssetTransfer.js +73 -0
- package/dist/src/lib/transaction/transaction.d.ts +45 -7
- package/dist/src/lib/transaction/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction/transaction.js +175 -61
- package/dist/src/lib/transaction/transferTransaction.d.ts +10 -8
- package/dist/src/lib/transaction/transferTransaction.d.ts.map +1 -1
- package/dist/src/lib/transaction/transferTransaction.js +48 -40
- package/dist/src/lib/transactionBuilder/customTransactionBuilder.d.ts +64 -0
- package/dist/src/lib/transactionBuilder/customTransactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder/customTransactionBuilder.js +127 -0
- package/dist/src/lib/transactionBuilder/delegationPoolAddStakeTransactionBuilder.d.ts +15 -0
- package/dist/src/lib/transactionBuilder/delegationPoolAddStakeTransactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder/delegationPoolAddStakeTransactionBuilder.js +50 -0
- package/dist/src/lib/transactionBuilder/delegationPoolUnlockTransactionBuilder.d.ts +15 -0
- package/dist/src/lib/transactionBuilder/delegationPoolUnlockTransactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder/delegationPoolUnlockTransactionBuilder.js +50 -0
- package/dist/src/lib/transactionBuilder/delegationPoolWithdrawTransactionBuilder.d.ts +15 -0
- package/dist/src/lib/transactionBuilder/delegationPoolWithdrawTransactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder/delegationPoolWithdrawTransactionBuilder.js +50 -0
- package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.d.ts +14 -0
- package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.js +55 -0
- package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.d.ts +15 -0
- package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.js +61 -0
- package/dist/src/lib/{transactionBuilder.d.ts → transactionBuilder/transactionBuilder.d.ts} +25 -11
- package/dist/src/lib/transactionBuilder/transactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder/transactionBuilder.js +169 -0
- package/dist/src/lib/{transferBuilder.d.ts → transactionBuilder/transferBuilder.d.ts} +5 -7
- package/dist/src/lib/transactionBuilder/transferBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder/transferBuilder.js +56 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts +26 -10
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +82 -18
- package/dist/src/lib/utils/validation.d.ts +32 -0
- package/dist/src/lib/utils/validation.d.ts.map +1 -0
- package/dist/src/lib/utils/validation.js +99 -0
- package/dist/src/lib/utils.d.ts +29 -5
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +111 -28
- package/dist/src/register.d.ts.map +1 -1
- package/dist/src/register.js +9 -1
- package/dist/test/integration/index.d.ts +1 -0
- package/dist/test/integration/index.d.ts.map +1 -0
- package/dist/test/integration/index.js +1 -0
- package/dist/test/resources/apt.d.ts +56 -0
- package/dist/test/resources/apt.d.ts.map +1 -0
- package/dist/test/resources/apt.js +115 -0
- package/dist/test/unit/apt.d.ts +2 -0
- package/dist/test/unit/apt.d.ts.map +1 -0
- package/dist/test/unit/apt.js +375 -0
- package/dist/test/unit/aptToken.d.ts +2 -0
- package/dist/test/unit/aptToken.d.ts.map +1 -0
- package/dist/test/unit/aptToken.js +92 -0
- package/dist/test/unit/customTransaction.test.d.ts +2 -0
- package/dist/test/unit/customTransaction.test.d.ts.map +1 -0
- package/dist/test/unit/customTransaction.test.js +264 -0
- package/dist/test/unit/getBuilderFactory.d.ts +3 -0
- package/dist/test/unit/getBuilderFactory.d.ts.map +1 -0
- package/dist/test/unit/getBuilderFactory.js +10 -0
- package/dist/test/unit/keyPair.d.ts +2 -0
- package/dist/test/unit/keyPair.d.ts.map +1 -0
- package/dist/test/unit/keyPair.js +71 -0
- package/dist/test/unit/transactionBuilder/customTransactionBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/customTransactionBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/customTransactionBuilder.js +743 -0
- package/dist/test/unit/transactionBuilder/delegationPoolAddStakeTransactionBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/delegationPoolAddStakeTransactionBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/delegationPoolAddStakeTransactionBuilder.js +172 -0
- package/dist/test/unit/transactionBuilder/delegationPoolUnlockTransactionBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/delegationPoolUnlockTransactionBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/delegationPoolUnlockTransactionBuilder.js +148 -0
- package/dist/test/unit/transactionBuilder/delegationPoolWithdrawTransactionBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/delegationPoolWithdrawTransactionBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/delegationPoolWithdrawTransactionBuilder.js +172 -0
- package/dist/test/unit/transactionBuilder/digitalAssetTransferBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/digitalAssetTransferBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/digitalAssetTransferBuilder.js +276 -0
- package/dist/test/unit/transactionBuilder/fungibleAssetTransferBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/fungibleAssetTransferBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/fungibleAssetTransferBuilder.js +449 -0
- package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/transferBuilder.js +529 -0
- package/dist/test/unit/utils.d.ts +2 -0
- package/dist/test/unit/utils.d.ts.map +1 -0
- package/dist/test/unit/utils.js +108 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +14 -11
- package/.eslintignore +0 -4
- package/.gitignore +0 -3
- package/.mocharc.yml +0 -8
- package/.prettierignore +0 -2
- package/CHANGELOG.md +0 -72
- package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
- package/dist/src/lib/transactionBuilder.js +0 -118
- package/dist/src/lib/transferBuilder.d.ts.map +0 -1
- package/dist/src/lib/transferBuilder.js +0 -25
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tVHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uL2N1c3RvbVRyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLCtDQWdCNEI7QUFDNUIsbURBQWdGO0FBR2hGLHFEQUE2QjtBQUM3QixvREFBK0U7QUFDL0UsK0VBQTRFO0FBRTVFOztHQUVHO0FBQ0gsTUFBYSxpQkFBa0IsU0FBUSx5REFBMkI7SUFPaEUsWUFBWSxVQUFnQztRQUMxQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFMWixtQkFBYyxHQUFhLEVBQUUsQ0FBQztRQUM5Qix1QkFBa0IsR0FBeUUsRUFBRSxDQUFDO1FBS3BHLElBQUksQ0FBQyxLQUFLLEdBQUcsMEJBQWUsQ0FBQyxRQUFRLENBQUM7SUFDeEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsMEJBQTBCLENBQUMsTUFBK0I7UUFDeEQsSUFBQSwrQkFBa0IsRUFBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEMsSUFBQSxpQ0FBb0IsRUFBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFMUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUN6QyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDO1FBQ2pELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDO1FBQ3pELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNILG1CQUFtQixDQUFDLEdBQXFCO1FBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxnQkFBZ0I7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDN0MsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNPLHVCQUF1QixDQUFDLE9BQTJCO1FBQzNELElBQUksQ0FBQyxDQUFDLE9BQU8sWUFBWSx3Q0FBK0IsQ0FBQyxFQUFFLENBQUM7WUFDMUQsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHdEQUF3RCxDQUFDLENBQUM7UUFDOUYsQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFFNUMsd0JBQXdCO1FBQ3hCLE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25FLE1BQU0sZ0JBQWdCLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ25FLE1BQU0sa0JBQWtCLEdBQUcsYUFBYSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7UUFFbEUsTUFBTSxVQUFVLEdBQUcsR0FBRyxhQUFhLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztRQUUzRCxXQUFXO1FBQ1gsSUFBQSwrQkFBa0IsRUFBQyxVQUFVLENBQUMsQ0FBQztRQUMvQixJQUFBLGlDQUFvQixFQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFekMsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7UUFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxrQkFBa0IsQ0FBQztRQUN4QyxJQUFJLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUVuRix3Q0FBd0M7UUFDeEMsZ0dBQWdHO1FBQ2hHLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxLQUFhLEVBQUUsRUFBRTtnQkFDM0UsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM5RCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQ2YsTUFBTSxJQUFJLGtDQUF1QixDQUMvQiwyQ0FBMkMsS0FBSyxPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLGFBQWEsSUFBSTt3QkFDaEcsK0JBQStCLENBQ2xDLENBQUM7Z0JBQ0osQ0FBQztnQkFDRCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDbkQsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLHVGQUF1RjtZQUN2RixJQUFJLENBQUMsa0JBQWtCLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDTyx5QkFBeUI7UUFDakMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFFekQsbURBQW1EO1FBQ25ELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBRW5ELE9BQU87WUFDTCxRQUFRLEVBQUUsWUFBWTtZQUN0QixhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbEMsaUJBQWlCLEVBQUUsa0JBQWtCO1lBQ3JDLEdBQUcsRUFBRSxJQUFJLENBQUMsaUJBQWlCO1NBQ1csQ0FBQztJQUMzQyxDQUFDO0lBRUQ7O09BRUc7SUFDSyxvQkFBb0IsQ0FBQyxHQUFRLEVBQUUsU0FBYztRQUNuRCxvREFBb0Q7UUFDcEQsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLE9BQU8sR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ25GLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBRUQsK0NBQStDO1FBQy9DLElBQUksR0FBRyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNoRSxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUVELHFEQUFxRDtRQUNyRCxJQUFJLEdBQUcsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksT0FBTyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbEUsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFFRCxrQ0FBa0M7UUFDbEMsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7O09BRUc7SUFDSyx3QkFBd0IsQ0FDOUIsR0FBOEIsRUFDOUIsU0FBYztRQUVkLHFDQUFxQztRQUNyQyxJQUFJLFNBQVMsWUFBWSx1QkFBYyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDM0YsT0FBTyxlQUFLLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUVELDJDQUEyQztRQUMzQyxJQUFJLFNBQVMsWUFBWSxvQkFBVztZQUFFLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTFELG9DQUFvQztRQUNwQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxPQUFPLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSywrQkFBK0IsQ0FBQyxHQUE4QjtRQUNwRSx3Q0FBd0M7UUFDeEMsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssc0JBQXNCLENBQUMsR0FBUSxFQUFFLFNBQWM7UUFDckQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFhLENBQUM7UUFDL0MsTUFBTSxTQUFTLEdBQUcsZUFBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQyxPQUFPLFNBQVMsWUFBWSx1QkFBYyxDQUFDLENBQUMsQ0FBQyxlQUFLLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNuRyxDQUFDO0lBRUQ7O09BRUc7SUFDSyx3QkFBd0IsQ0FBQyxHQUFRLEVBQUUsU0FBYztRQUN2RCxrRUFBa0U7UUFDbEUsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssWUFBWSxVQUFVLEVBQUUsQ0FBQztZQUM3RCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFhLENBQUM7WUFDdEQsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xDLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN2RCxDQUFDO1lBQ0QsK0NBQStDO1lBQy9DLE9BQU8sZUFBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBRUQsZ0VBQWdFO1FBQ2hFLElBQUksT0FBTyxHQUFHLENBQUMsS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzdELE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDekQsQ0FBQztRQUVELDRDQUE0QztRQUM1QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RCxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU8sR0FBRyxDQUFDO1FBRW5DLElBQUksY0FBbUIsQ0FBQztRQUV4QiwrREFBK0Q7UUFDL0QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDbEMsY0FBYyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDakUsQ0FBQzthQUFNLElBQUksU0FBUyxZQUFZLHVCQUFjLEVBQUUsQ0FBQztZQUMvQyxjQUFjLEdBQUcsZUFBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxDQUFDO2FBQU0sSUFBSSxTQUFTLFlBQVksb0JBQVcsRUFBRSxDQUFDO1lBQzVDLGNBQWMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLENBQUM7YUFBTSxDQUFDO1lBQ04sY0FBYyxHQUFHLGVBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQ7O09BRUc7SUFDSyx5QkFBeUIsQ0FBQyxTQUFjO1FBQzlDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO2FBQ2hDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3RDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXJELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFFakMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCwwQkFBMEI7UUFDeEIsT0FBTztZQUNMLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUU7WUFDbEMsWUFBWSxFQUFFLElBQUksQ0FBQyxhQUFhLElBQUksRUFBRTtZQUN0QyxhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbEMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtZQUMxQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtTQUM1QixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxTQUFTO1FBQ1gsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxPQUFPO2dCQUNMLE9BQU8sRUFBRSxFQUFFO2dCQUNYLE1BQU0sRUFBRSxHQUFHO2FBQ1osQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ssNEJBQTRCO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzdDLE1BQU0sSUFBSSxLQUFLLENBQUMsdUVBQXVFLENBQUMsQ0FBQztRQUMzRixDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUU5RCxtQkFBbUI7UUFDbkIsTUFBTSxtQkFBbUIsR0FDdkIsZ0dBQWdHLENBQUM7UUFDbkcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLFFBQVEsaURBQWlELENBQUMsQ0FBQztRQUNwSCxDQUFDO1FBRUQsT0FBTyxRQUE2QyxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7T0FFRztJQUNLLGFBQWEsQ0FBQyxTQUFjO1FBQ2xDLE9BQU8sQ0FDTCxTQUFTLFlBQVksa0JBQVM7WUFDOUIsU0FBUyxZQUFZLG1CQUFVO1lBQy9CLFNBQVMsWUFBWSxtQkFBVTtZQUMvQixTQUFTLFlBQVksbUJBQVU7WUFDL0IsU0FBUyxZQUFZLG9CQUFXO1lBQ2hDLFNBQVMsWUFBWSxvQkFBVyxDQUNqQyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssc0JBQXNCLENBQUMsS0FBZSxFQUFFLFNBQWM7UUFDNUQsSUFBSSxTQUFTLFlBQVksa0JBQVMsSUFBSSxTQUFTLFlBQVksbUJBQVUsSUFBSSxTQUFTLFlBQVksbUJBQVUsRUFBRSxDQUFDO1lBQ3pHLGdEQUFnRDtZQUNoRCxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDZixLQUFLLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDM0MsTUFBTSxHQUFHLE1BQU0sR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25DLENBQUM7WUFDRCxPQUFPLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMzQixDQUFDO1FBRUQsSUFBSSxTQUFTLFlBQVksbUJBQVUsSUFBSSxTQUFTLFlBQVksb0JBQVcsSUFBSSxTQUFTLFlBQVksb0JBQVcsRUFBRSxDQUFDO1lBQzVHLG9EQUFvRDtZQUNwRCxPQUFPLGVBQUssQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFFRCwrQkFBK0I7UUFDL0IsT0FBTyxlQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7Q0FDRjtBQXRURCw4Q0FzVEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBY2NvdW50QWRkcmVzcyxcbiAgRW50cnlGdW5jdGlvbkFCSSxcbiAgRW50cnlGdW5jdGlvbkFyZ3VtZW50VHlwZXMsXG4gIElucHV0R2VuZXJhdGVUcmFuc2FjdGlvblBheWxvYWREYXRhLFxuICBTaW1wbGVFbnRyeUZ1bmN0aW9uQXJndW1lbnRUeXBlcyxcbiAgVHJhbnNhY3Rpb25QYXlsb2FkLFxuICBUcmFuc2FjdGlvblBheWxvYWRFbnRyeUZ1bmN0aW9uLFxuICBUeXBlVGFnQWRkcmVzcyxcbiAgVHlwZVRhZ0Jvb2wsXG4gIFR5cGVUYWdVMTI4LFxuICBUeXBlVGFnVTE2LFxuICBUeXBlVGFnVTI1NixcbiAgVHlwZVRhZ1UzMixcbiAgVHlwZVRhZ1U2NCxcbiAgVHlwZVRhZ1U4LFxufSBmcm9tICdAYXB0b3MtbGFicy90cy1zZGsnO1xuaW1wb3J0IHsgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEN1c3RvbVRyYW5zYWN0aW9uUGFyYW1zIH0gZnJvbSAnLi4vaWZhY2UnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IHZhbGlkYXRlRnVuY3Rpb25OYW1lLCB2YWxpZGF0ZU1vZHVsZU5hbWUgfSBmcm9tICcuLi91dGlscy92YWxpZGF0aW9uJztcbmltcG9ydCB7IEFic3RyYWN0VHJhbnNmZXJUcmFuc2FjdGlvbiB9IGZyb20gJy4vYWJzdHJhY3RUcmFuc2ZlclRyYW5zYWN0aW9uJztcblxuLyoqXG4gKiBUcmFuc2FjdGlvbiBjbGFzcyBmb3IgY3VzdG9tIEFwdG9zIHRyYW5zYWN0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIEN1c3RvbVRyYW5zYWN0aW9uIGV4dGVuZHMgQWJzdHJhY3RUcmFuc2ZlclRyYW5zYWN0aW9uIHtcbiAgcHJpdmF0ZSBfbW9kdWxlTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIF9mdW5jdGlvbk5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSBfdHlwZUFyZ3VtZW50czogc3RyaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSBfZnVuY3Rpb25Bcmd1bWVudHM6IEFycmF5PEVudHJ5RnVuY3Rpb25Bcmd1bWVudFR5cGVzIHwgU2ltcGxlRW50cnlGdW5jdGlvbkFyZ3VtZW50VHlwZXM+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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DigitalAssetTransfer = void 0;
|
|
4
|
+
const ts_sdk_1 = require("@aptos-labs/ts-sdk");
|
|
5
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
6
|
+
const constants_1 = require("../constants");
|
|
7
|
+
const abstractTransferTransaction_1 = require("./abstractTransferTransaction");
|
|
8
|
+
class DigitalAssetTransfer extends abstractTransferTransaction_1.AbstractTransferTransaction {
|
|
9
|
+
constructor(coinConfig) {
|
|
10
|
+
super(coinConfig);
|
|
11
|
+
this.transferDigitalAssetAbi = {
|
|
12
|
+
typeParameters: [{ constraints: [ts_sdk_1.MoveAbility.KEY] }],
|
|
13
|
+
parameters: [new ts_sdk_1.TypeTagStruct((0, ts_sdk_1.objectStructTag)(new ts_sdk_1.TypeTagGeneric(0))), new ts_sdk_1.TypeTagAddress()],
|
|
14
|
+
};
|
|
15
|
+
this._type = sdk_core_1.TransactionType.SendNFT;
|
|
16
|
+
}
|
|
17
|
+
parseTransactionPayload(payload) {
|
|
18
|
+
if (!(payload instanceof ts_sdk_1.TransactionPayloadEntryFunction) ||
|
|
19
|
+
payload.entryFunction.args.length !== 2 ||
|
|
20
|
+
payload.entryFunction.type_args.length !== 1 ||
|
|
21
|
+
constants_1.DIGITAL_ASSET_TYPE_ARGUMENT !== payload.entryFunction.type_args[0].toString()) {
|
|
22
|
+
throw new sdk_core_1.InvalidTransactionError('Invalid transaction payload');
|
|
23
|
+
}
|
|
24
|
+
const entryFunction = payload.entryFunction;
|
|
25
|
+
this._assetId = entryFunction.args[0].toString();
|
|
26
|
+
this.recipients = [
|
|
27
|
+
{
|
|
28
|
+
address: entryFunction.args[1].toString(),
|
|
29
|
+
amount: constants_1.DIGITAL_ASSET_TRANSFER_AMOUNT,
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
}
|
|
33
|
+
getTransactionPayloadData() {
|
|
34
|
+
const recipientAddress = ts_sdk_1.AccountAddress.fromString(this.recipients[0].address);
|
|
35
|
+
const digitalAssetAddress = ts_sdk_1.AccountAddress.fromString(this._assetId);
|
|
36
|
+
return {
|
|
37
|
+
function: constants_1.DIGITAL_ASSET_TRANSFER_FUNCTION,
|
|
38
|
+
typeArguments: [constants_1.DIGITAL_ASSET_TYPE_ARGUMENT],
|
|
39
|
+
functionArguments: [digitalAssetAddress, recipientAddress],
|
|
40
|
+
abi: this.transferDigitalAssetAbi,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.DigitalAssetTransfer = DigitalAssetTransfer;
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXRhbEFzc2V0VHJhbnNmZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uL2RpZ2l0YWxBc3NldFRyYW5zZmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtDQVc0QjtBQUM1QixtREFBc0c7QUFFdEcsNENBSXNCO0FBQ3RCLCtFQUE0RTtBQUU1RSxNQUFhLG9CQUFxQixTQUFRLHlEQUEyQjtJQUNuRSxZQUFZLFVBQWdDO1FBQzFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQW1DWiw0QkFBdUIsR0FBcUI7WUFDbEQsY0FBYyxFQUFFLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxvQkFBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDcEQsVUFBVSxFQUFFLENBQUMsSUFBSSxzQkFBYSxDQUFDLElBQUEsd0JBQWUsRUFBQyxJQUFJLHVCQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksdUJBQWMsRUFBRSxDQUFDO1NBQzlGLENBQUM7UUFyQ0EsSUFBSSxDQUFDLEtBQUssR0FBRywwQkFBZSxDQUFDLE9BQU8sQ0FBQztJQUN2QyxDQUFDO0lBRVMsdUJBQXVCLENBQUMsT0FBMkI7UUFDM0QsSUFDRSxDQUFDLENBQUMsT0FBTyxZQUFZLHdDQUErQixDQUFDO1lBQ3JELE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQ3ZDLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQzVDLHVDQUEyQixLQUFLLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUM3RSxDQUFDO1lBQ0QsTUFBTSxJQUFJLGtDQUF1QixDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDbkUsQ0FBQztRQUNELE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDNUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pELElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDaEI7Z0JBQ0UsT0FBTyxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO2dCQUN6QyxNQUFNLEVBQUUseUNBQTZCO2FBQ3RDO1NBQ3dCLENBQUM7SUFDOUIsQ0FBQztJQUVTLHlCQUF5QjtRQUNqQyxNQUFNLGdCQUFnQixHQUFHLHVCQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0UsTUFBTSxtQkFBbUIsR0FBRyx1QkFBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFckUsT0FBTztZQUNMLFFBQVEsRUFBRSwyQ0FBK0I7WUFDekMsYUFBYSxFQUFFLENBQUMsdUNBQTJCLENBQUM7WUFDNUMsaUJBQWlCLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxnQkFBZ0IsQ0FBQztZQUMxRCxHQUFHLEVBQUUsSUFBSSxDQUFDLHVCQUF1QjtTQUNsQyxDQUFDO0lBQ0osQ0FBQztDQU1GO0FBekNELG9EQXlDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFjY291bnRBZGRyZXNzLFxuICBFbnRyeUZ1bmN0aW9uQUJJLFxuICBJbnB1dEdlbmVyYXRlVHJhbnNhY3Rpb25QYXlsb2FkRGF0YSxcbiAgTW92ZUFiaWxpdHksXG4gIG9iamVjdFN0cnVjdFRhZyxcbiAgVHJhbnNhY3Rpb25QYXlsb2FkLFxuICBUcmFuc2FjdGlvblBheWxvYWRFbnRyeUZ1bmN0aW9uLFxuICBUeXBlVGFnQWRkcmVzcyxcbiAgVHlwZVRhZ0dlbmVyaWMsXG4gIFR5cGVUYWdTdHJ1Y3QsXG59IGZyb20gJ0BhcHRvcy1sYWJzL3RzLXNkayc7XG5pbXBvcnQgeyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25SZWNpcGllbnQsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7XG4gIERJR0lUQUxfQVNTRVRfVFJBTlNGRVJfQU1PVU5ULFxuICBESUdJVEFMX0FTU0VUX1RSQU5TRkVSX0ZVTkNUSU9OLFxuICBESUdJVEFMX0FTU0VUX1RZUEVfQVJHVU1FTlQsXG59IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBBYnN0cmFjdFRyYW5zZmVyVHJhbnNhY3Rpb24gfSBmcm9tICcuL2Fic3RyYWN0VHJhbnNmZXJUcmFuc2FjdGlvbic7XG5cbmV4cG9ydCBjbGFzcyBEaWdpdGFsQXNzZXRUcmFuc2ZlciBleHRlbmRzIEFic3RyYWN0VHJhbnNmZXJUcmFuc2FjdGlvbiB7XG4gIGNvbnN0cnVjdG9yKGNvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHlwZSA9IFRyYW5zYWN0aW9uVHlwZS5TZW5kTkZUO1xuICB9XG5cbiAgcHJvdGVjdGVkIHBhcnNlVHJhbnNhY3Rpb25QYXlsb2FkKHBheWxvYWQ6IFRyYW5zYWN0aW9uUGF5bG9hZCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICEocGF5bG9hZCBpbnN0YW5jZW9mIFRyYW5zYWN0aW9uUGF5bG9hZEVudHJ5RnVuY3Rpb24pIHx8XG4gICAgICBwYXlsb2FkLmVudHJ5RnVuY3Rpb24uYXJncy5sZW5ndGggIT09IDIgfHxcbiAgICAgIHBheWxvYWQuZW50cnlGdW5jdGlvbi50eXBlX2FyZ3MubGVuZ3RoICE9PSAxIHx8XG4gICAgICBESUdJVEFMX0FTU0VUX1RZUEVfQVJHVU1FTlQgIT09IHBheWxvYWQuZW50cnlGdW5jdGlvbi50eXBlX2FyZ3NbMF0udG9TdHJpbmcoKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uIHBheWxvYWQnKTtcbiAgICB9XG4gICAgY29uc3QgZW50cnlGdW5jdGlvbiA9IHBheWxvYWQuZW50cnlGdW5jdGlvbjtcbiAgICB0aGlzLl9hc3NldElkID0gZW50cnlGdW5jdGlvbi5hcmdzWzBdLnRvU3RyaW5nKCk7XG4gICAgdGhpcy5yZWNpcGllbnRzID0gW1xuICAgICAge1xuICAgICAgICBhZGRyZXNzOiBlbnRyeUZ1bmN0aW9uLmFyZ3NbMV0udG9TdHJpbmcoKSxcbiAgICAgICAgYW1vdW50OiBESUdJVEFMX0FTU0VUX1RSQU5TRkVSX0FNT1VOVCxcbiAgICAgIH0sXG4gICAgXSBhcyBUcmFuc2FjdGlvblJlY2lwaWVudFtdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFRyYW5zYWN0aW9uUGF5bG9hZERhdGEoKTogSW5wdXRHZW5lcmF0ZVRyYW5zYWN0aW9uUGF5bG9hZERhdGEge1xuICAgIGNvbnN0IHJlY2lwaWVudEFkZHJlc3MgPSBBY2NvdW50QWRkcmVzcy5mcm9tU3RyaW5nKHRoaXMucmVjaXBpZW50c1swXS5hZGRyZXNzKTtcbiAgICBjb25zdCBkaWdpdGFsQXNzZXRBZGRyZXNzID0gQWNjb3VudEFkZHJlc3MuZnJvbVN0cmluZyh0aGlzLl9hc3NldElkKTtcblxuICAgIHJldHVybiB7XG4gICAgICBmdW5jdGlvbjogRElHSVRBTF9BU1NFVF9UUkFOU0ZFUl9GVU5DVElPTixcbiAgICAgIHR5cGVBcmd1bWVudHM6IFtESUdJVEFMX0FTU0VUX1RZUEVfQVJHVU1FTlRdLFxuICAgICAgZnVuY3Rpb25Bcmd1bWVudHM6IFtkaWdpdGFsQXNzZXRBZGRyZXNzLCByZWNpcGllbnRBZGRyZXNzXSxcbiAgICAgIGFiaTogdGhpcy50cmFuc2ZlckRpZ2l0YWxBc3NldEFiaSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFuc2ZlckRpZ2l0YWxBc3NldEFiaTogRW50cnlGdW5jdGlvbkFCSSA9IHtcbiAgICB0eXBlUGFyYW1ldGVyczogW3sgY29uc3RyYWludHM6IFtNb3ZlQWJpbGl0eS5LRVldIH1dLFxuICAgIHBhcmFtZXRlcnM6IFtuZXcgVHlwZVRhZ1N0cnVjdChvYmplY3RTdHJ1Y3RUYWcobmV3IFR5cGVUYWdHZW5lcmljKDApKSksIG5ldyBUeXBlVGFnQWRkcmVzcygpXSxcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
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 FungibleAssetTransfer extends AbstractTransferTransaction {
|
|
5
|
+
constructor(coinConfig: Readonly<CoinConfig>);
|
|
6
|
+
protected parseTransactionPayload(payload: TransactionPayload): void;
|
|
7
|
+
protected getTransactionPayloadData(): InputGenerateTransactionPayloadData;
|
|
8
|
+
private isValidPayload;
|
|
9
|
+
private faTransferAbi;
|
|
10
|
+
private batchFaTransferAbi;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=fungibleAssetTransfer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fungibleAssetTransfer.d.ts","sourceRoot":"","sources":["../../../../src/lib/transaction/fungibleAssetTransfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,mCAAmC,EAEnC,kBAAkB,EAKnB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAS7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,qBAAa,qBAAsB,SAAQ,2BAA2B;gBACxD,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK5C,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAWpE,SAAS,CAAC,yBAAyB,IAAI,mCAAmC;IA2B1E,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,aAAa,CAGnB;IAEF,OAAO,CAAC,kBAAkB,CAOxB;CACH"}
|