@bitgo-beta/sdk-coin-sui 3.0.3-beta.86 → 3.0.3-beta.861
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/CHANGELOG.md +777 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +7 -2
- package/dist/src/lib/compareTransactionBlocks.js +2 -3
- package/dist/src/lib/constants.d.ts +9 -2
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +18 -2
- package/dist/src/lib/customTransaction.d.ts +57 -0
- package/dist/src/lib/customTransaction.d.ts.map +1 -0
- package/dist/src/lib/customTransaction.js +159 -0
- package/dist/src/lib/customTransactionBuilder.d.ts +46 -0
- package/dist/src/lib/customTransactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/customTransactionBuilder.js +117 -0
- package/dist/src/lib/iface.d.ts +76 -10
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +40 -5
- package/dist/src/lib/index.d.ts +8 -0
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +40 -10
- package/dist/src/lib/keyPair.js +24 -10
- package/dist/src/lib/mystenlab/builder/Inputs.d.ts +9 -9
- package/dist/src/lib/mystenlab/builder/Inputs.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/builder/Inputs.js +18 -19
- package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts +40 -354
- package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/builder/TransactionBlock.js +22 -25
- package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts +74 -74
- package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/builder/TransactionDataBlock.js +41 -44
- package/dist/src/lib/mystenlab/builder/Transactions.d.ts +133 -188
- package/dist/src/lib/mystenlab/builder/Transactions.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/builder/Transactions.js +52 -53
- package/dist/src/lib/mystenlab/builder/bcs.d.ts +1 -1
- package/dist/src/lib/mystenlab/builder/bcs.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/builder/bcs.js +2 -2
- package/dist/src/lib/mystenlab/builder/index.js +6 -2
- package/dist/src/lib/mystenlab/builder/serializer.js +6 -8
- package/dist/src/lib/mystenlab/builder/utils.d.ts +1 -1
- package/dist/src/lib/mystenlab/builder/utils.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/builder/utils.js +4 -4
- package/dist/src/lib/mystenlab/cryptography/hash.js +3 -4
- package/dist/src/lib/mystenlab/framework/framework.d.ts +6 -6
- package/dist/src/lib/mystenlab/framework/framework.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/framework/framework.js +22 -25
- package/dist/src/lib/mystenlab/framework/index.js +6 -2
- package/dist/src/lib/mystenlab/framework/sui-system-state.js +2 -2
- package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.js +2 -2
- package/dist/src/lib/mystenlab/types/coin.d.ts +10 -10
- package/dist/src/lib/mystenlab/types/coin.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/types/coin.js +19 -19
- package/dist/src/lib/mystenlab/types/common.d.ts +8 -8
- package/dist/src/lib/mystenlab/types/common.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/types/common.js +22 -22
- package/dist/src/lib/mystenlab/types/events.d.ts +14 -14
- package/dist/src/lib/mystenlab/types/events.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/types/events.js +17 -17
- package/dist/src/lib/mystenlab/types/index.js +6 -2
- package/dist/src/lib/mystenlab/types/normalized.d.ts +21 -21
- package/dist/src/lib/mystenlab/types/normalized.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/types/normalized.js +41 -41
- package/dist/src/lib/mystenlab/types/objects.d.ts +51 -51
- package/dist/src/lib/mystenlab/types/objects.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/types/objects.js +96 -106
- package/dist/src/lib/mystenlab/types/option.d.ts +1 -1
- package/dist/src/lib/mystenlab/types/option.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/types/option.js +2 -3
- package/dist/src/lib/mystenlab/types/sui-bcs.d.ts +8 -8
- package/dist/src/lib/mystenlab/types/sui-bcs.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/types/sui-bcs.js +5 -5
- package/dist/src/lib/mystenlab/types/transactions.d.ts +625 -625
- package/dist/src/lib/mystenlab/types/transactions.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/types/transactions.js +178 -194
- package/dist/src/lib/mystenlab/types/validator.d.ts +9 -9
- package/dist/src/lib/mystenlab/types/validator.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/types/validator.js +124 -124
- package/dist/src/lib/resources/walrusConfig.d.ts +22 -0
- package/dist/src/lib/resources/walrusConfig.d.ts.map +1 -0
- package/dist/src/lib/resources/walrusConfig.js +37 -0
- package/dist/src/lib/rpcClient.d.ts +5 -0
- package/dist/src/lib/rpcClient.d.ts.map +1 -0
- package/dist/src/lib/rpcClient.js +74 -0
- package/dist/src/lib/stakingBuilder.d.ts.map +1 -1
- package/dist/src/lib/stakingBuilder.js +23 -7
- package/dist/src/lib/stakingTransaction.d.ts +1 -1
- package/dist/src/lib/stakingTransaction.d.ts.map +1 -1
- package/dist/src/lib/stakingTransaction.js +26 -15
- package/dist/src/lib/tokenTransferBuilder.d.ts +38 -0
- package/dist/src/lib/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/src/lib/tokenTransferBuilder.js +132 -0
- package/dist/src/lib/tokenTransferTransaction.d.ts +57 -0
- package/dist/src/lib/tokenTransferTransaction.d.ts.map +1 -0
- package/dist/src/lib/tokenTransferTransaction.js +250 -0
- package/dist/src/lib/transaction.d.ts +12 -4
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +91 -18
- package/dist/src/lib/transactionBuilder.d.ts +2 -3
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilder.js +4 -4
- package/dist/src/lib/transactionBuilderFactory.d.ts +14 -2
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +42 -1
- package/dist/src/lib/transferBuilder.d.ts.map +1 -1
- package/dist/src/lib/transferBuilder.js +21 -5
- package/dist/src/lib/transferTransaction.d.ts +1 -1
- package/dist/src/lib/transferTransaction.d.ts.map +1 -1
- package/dist/src/lib/transferTransaction.js +31 -8
- package/dist/src/lib/unstakingBuilder.js +6 -6
- package/dist/src/lib/unstakingTransaction.d.ts +1 -1
- package/dist/src/lib/unstakingTransaction.d.ts.map +1 -1
- package/dist/src/lib/unstakingTransaction.js +31 -17
- package/dist/src/lib/utils.d.ts +15 -4
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +264 -29
- package/dist/src/lib/walrusStakingBuilder.d.ts +66 -0
- package/dist/src/lib/walrusStakingBuilder.d.ts.map +1 -0
- package/dist/src/lib/walrusStakingBuilder.js +200 -0
- package/dist/src/lib/walrusStakingTransaction.d.ts +52 -0
- package/dist/src/lib/walrusStakingTransaction.d.ts.map +1 -0
- package/dist/src/lib/walrusStakingTransaction.js +269 -0
- package/dist/src/lib/walrusWithdrawStakeBuilder.d.ts +36 -0
- package/dist/src/lib/walrusWithdrawStakeBuilder.d.ts.map +1 -0
- package/dist/src/lib/walrusWithdrawStakeBuilder.js +173 -0
- package/dist/src/lib/walrusWithdrawStakeTransaction.d.ts +21 -0
- package/dist/src/lib/walrusWithdrawStakeTransaction.d.ts.map +1 -0
- package/dist/src/lib/walrusWithdrawStakeTransaction.js +186 -0
- package/dist/src/register.d.ts.map +1 -1
- package/dist/src/register.js +5 -1
- package/dist/src/sui.d.ts +44 -8
- package/dist/src/sui.d.ts.map +1 -1
- package/dist/src/sui.js +472 -32
- package/dist/src/suiToken.d.ts +22 -0
- package/dist/src/suiToken.d.ts.map +1 -0
- package/dist/src/suiToken.js +61 -0
- package/dist/src/tsui.js +1 -1
- package/package.json +10 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walrusStakingBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/walrusStakingBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAe,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAkD,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAChH,OAAO,EACL,0BAA0B,EAC1B,cAAc,EAEd,oCAAoC,EACrC,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAU5D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,qBAAa,oBAAqB,SAAQ,kBAAkB,CAAC,oCAAoC,CAAC;IAChG,SAAS,CAAC,gBAAgB,EAAE,0BAA0B,EAAE,CAAC;IACzD,SAAS,CAAC,aAAa,EAAE,YAAY,EAAE,CAAC;IAExC,OAAO,CAAC,YAAY,CAAM;gBAEd,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAQ7C;;;;OAIG;IACH,SAAS,CAAC,qBAAqB,IAAI,cAAc,CAAC,oCAAoC,CAAC;IAYvF;;;;;OAKG;IACH,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,EAAE,mBAAmB,GAAG,IAAI;IAO3D,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,OAAO;IAKjB;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,0BAA0B,EAAE,GAAG,IAAI;IAclD;;;;;OAKG;IACH,YAAY,CAAC,YAAY,EAAE,YAAY,EAAE,GAAG,IAAI;IAMhD,OAAO,CAAC,oBAAoB;IAU5B,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW,CAAC,oCAAoC,CAAC;IAQvG,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC,oCAAoC,CAAC,CAAC;IAgBjG;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,oCAAoC,CAAC,GAAG,IAAI;IAmBxE;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAYjC;;;;;OAKG;IACH,SAAS,CAAC,mBAAmB,IAAI,cAAc,CAAC,oCAAoC,CAAC;CAiDtF"}
|
|
@@ -0,0 +1,200 @@
|
|
|
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.WalrusStakingBuilder = void 0;
|
|
7
|
+
const statics_1 = require("@bitgo-beta/statics");
|
|
8
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
9
|
+
const iface_1 = require("./iface");
|
|
10
|
+
const transactionBuilder_1 = require("./transactionBuilder");
|
|
11
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
12
|
+
const assert_1 = __importDefault(require("assert"));
|
|
13
|
+
const stakingTransaction_1 = require("./stakingTransaction");
|
|
14
|
+
const builder_1 = require("./mystenlab/builder");
|
|
15
|
+
const constants_1 = require("./constants");
|
|
16
|
+
const walrusConfig_1 = require("./resources/walrusConfig");
|
|
17
|
+
class WalrusStakingBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
18
|
+
constructor(_coinConfig) {
|
|
19
|
+
super(_coinConfig);
|
|
20
|
+
this._transaction = new stakingTransaction_1.StakingTransaction(_coinConfig);
|
|
21
|
+
// TODO improve mainnet vs. testnet configuration
|
|
22
|
+
this.walrusConfig = _coinConfig.network.type === statics_1.NetworkType.MAINNET ? walrusConfig_1.WALRUS_PROD_CONFIG : walrusConfig_1.WALRUS_TESTNET_CONFIG;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Build a MoveCall transaction ready to be signed and executed.
|
|
26
|
+
*
|
|
27
|
+
* @returns {BitGoSuiTransaction} an unsigned Sui transaction
|
|
28
|
+
*/
|
|
29
|
+
buildStakeTransaction() {
|
|
30
|
+
return {
|
|
31
|
+
type: iface_1.SuiTransactionType.WalrusStakeWithPool,
|
|
32
|
+
sender: this._sender,
|
|
33
|
+
tx: {
|
|
34
|
+
inputs: [],
|
|
35
|
+
transactions: [],
|
|
36
|
+
},
|
|
37
|
+
gasData: this._gasData,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Get staking transaction type
|
|
42
|
+
*
|
|
43
|
+
* @return {TransactionType}
|
|
44
|
+
* @protected
|
|
45
|
+
*/
|
|
46
|
+
get transactionType() {
|
|
47
|
+
return sdk_core_1.TransactionType.StakingAdd;
|
|
48
|
+
}
|
|
49
|
+
/** @inheritdoc */
|
|
50
|
+
validateTransaction(transaction) {
|
|
51
|
+
if (!transaction.suiTransaction) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
this.validateTransactionFields();
|
|
55
|
+
}
|
|
56
|
+
/** @inheritdoc */
|
|
57
|
+
sign(key) {
|
|
58
|
+
this.transaction.setSuiTransaction(this.buildSuiTransaction());
|
|
59
|
+
super.sign(key);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Create a new transaction for staking coins ready to be signed and executed.
|
|
63
|
+
*
|
|
64
|
+
* @param {RequestWalrusStakeWithPool[]} request: a list of staking request
|
|
65
|
+
*/
|
|
66
|
+
stake(request) {
|
|
67
|
+
request.forEach((req) => {
|
|
68
|
+
utils_1.default.validateAddress(req.validatorAddress, 'validatorAddress');
|
|
69
|
+
(0, assert_1.default)(utils_1.default.isValidAmount(req.amount), 'Invalid recipient amount');
|
|
70
|
+
if (this._sender === req.validatorAddress) {
|
|
71
|
+
throw new sdk_core_1.BuildTransactionError('Sender address cannot be the same as the Staking address');
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
this._stakeWithPoolTx = request;
|
|
75
|
+
return this;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Set the $WAL objects to be used for staking.
|
|
79
|
+
*
|
|
80
|
+
* @param tokens The WAL objects to be used
|
|
81
|
+
* @returns this
|
|
82
|
+
*/
|
|
83
|
+
inputObjects(inputObjects) {
|
|
84
|
+
this.validateInputObjects(inputObjects);
|
|
85
|
+
this._inputObjects = inputObjects;
|
|
86
|
+
return this;
|
|
87
|
+
}
|
|
88
|
+
validateInputObjects(inputObjects) {
|
|
89
|
+
(0, assert_1.default)(inputObjects && inputObjects.length > 0, new sdk_core_1.BuildTransactionError('input objects required before building'));
|
|
90
|
+
inputObjects.forEach((inputObject) => {
|
|
91
|
+
this.validateSuiObjectRef(inputObject, 'input object');
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/** @inheritdoc */
|
|
95
|
+
fromImplementation(rawTransaction) {
|
|
96
|
+
const tx = new stakingTransaction_1.StakingTransaction(this._coinConfig);
|
|
97
|
+
this.validateRawTransaction(rawTransaction);
|
|
98
|
+
tx.fromRawTransaction(rawTransaction);
|
|
99
|
+
this.initBuilder(tx);
|
|
100
|
+
return this.transaction;
|
|
101
|
+
}
|
|
102
|
+
/** @inheritdoc */
|
|
103
|
+
async buildImplementation() {
|
|
104
|
+
this.transaction.setSuiTransaction(this.buildSuiTransaction());
|
|
105
|
+
this.transaction.transactionType(this.transactionType);
|
|
106
|
+
if (this._signer) {
|
|
107
|
+
this.transaction.sign(this._signer);
|
|
108
|
+
}
|
|
109
|
+
this._signatures.forEach((signature) => {
|
|
110
|
+
this.transaction.addSignature(signature.publicKey, signature.signature);
|
|
111
|
+
});
|
|
112
|
+
this.transaction.loadInputsAndOutputs();
|
|
113
|
+
return this.transaction;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Initialize the transaction builder fields using the decoded transaction data
|
|
117
|
+
*
|
|
118
|
+
* @param {StakingTransaction} tx the transaction data
|
|
119
|
+
*/
|
|
120
|
+
initBuilder(tx) {
|
|
121
|
+
this._transaction = tx;
|
|
122
|
+
if (tx.signature && tx.signature.length > 0) {
|
|
123
|
+
this._signatures = [tx.suiSignature];
|
|
124
|
+
}
|
|
125
|
+
const txData = tx.toJson();
|
|
126
|
+
this.type(iface_1.SuiTransactionType.WalrusStakeWithPool);
|
|
127
|
+
this.sender(txData.sender);
|
|
128
|
+
this.gasData(txData.gasData);
|
|
129
|
+
const requests = utils_1.default.getWalrusStakeWithPoolRequests(tx.suiTransaction.tx);
|
|
130
|
+
this.stake(requests);
|
|
131
|
+
(0, assert_1.default)(txData.inputObjects);
|
|
132
|
+
this.inputObjects(txData.inputObjects);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Validates all fields are defined
|
|
136
|
+
*/
|
|
137
|
+
validateTransactionFields() {
|
|
138
|
+
(0, assert_1.default)(this._type, new sdk_core_1.BuildTransactionError('type is required before building'));
|
|
139
|
+
(0, assert_1.default)(this._sender, new sdk_core_1.BuildTransactionError('sender is required before building'));
|
|
140
|
+
this._stakeWithPoolTx.forEach((req) => {
|
|
141
|
+
(0, assert_1.default)(req.validatorAddress, new sdk_core_1.BuildTransactionError('validator address is required before building'));
|
|
142
|
+
(0, assert_1.default)(req.amount, new sdk_core_1.BuildTransactionError('staking amount is required before building'));
|
|
143
|
+
});
|
|
144
|
+
(0, assert_1.default)(this._gasData, new sdk_core_1.BuildTransactionError('gasData is required before building'));
|
|
145
|
+
this.validateGasData(this._gasData);
|
|
146
|
+
this.validateInputObjects(this._inputObjects);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Build SuiTransaction
|
|
150
|
+
*
|
|
151
|
+
* @return {BitGoSuiTransaction<MoveCallTx>}
|
|
152
|
+
* @protected
|
|
153
|
+
*/
|
|
154
|
+
buildSuiTransaction() {
|
|
155
|
+
this.validateTransactionFields();
|
|
156
|
+
const programmableTxBuilder = new builder_1.TransactionBlock();
|
|
157
|
+
switch (this._type) {
|
|
158
|
+
case iface_1.SuiTransactionType.WalrusStakeWithPool:
|
|
159
|
+
const inputObjects = this._inputObjects.map((token) => programmableTxBuilder.object(builder_1.Inputs.ObjectRef(token)));
|
|
160
|
+
const mergedObject = inputObjects.shift();
|
|
161
|
+
if (inputObjects.length > 0) {
|
|
162
|
+
programmableTxBuilder.mergeCoins(mergedObject, inputObjects);
|
|
163
|
+
}
|
|
164
|
+
// Create a new coin with staking balance, based on the coins used as gas payment.
|
|
165
|
+
const stakedWals = this._stakeWithPoolTx.map((req) => {
|
|
166
|
+
const splitObject = programmableTxBuilder.splitCoins(mergedObject, [
|
|
167
|
+
programmableTxBuilder.pure(Number(req.amount)),
|
|
168
|
+
]);
|
|
169
|
+
// Stake the split coin to a specific validator address.
|
|
170
|
+
return programmableTxBuilder.moveCall({
|
|
171
|
+
target: `${this.walrusConfig.WALRUS_PKG_ID}::${this.walrusConfig.WALRUS_STAKING_MODULE_NAME}::${this.walrusConfig.WALRUS_STAKE_WITH_POOL_FUN_NAME}`,
|
|
172
|
+
arguments: [
|
|
173
|
+
programmableTxBuilder.object(builder_1.Inputs.SharedObjectRef(this.walrusConfig.WALRUS_STAKING_OBJECT)),
|
|
174
|
+
splitObject,
|
|
175
|
+
programmableTxBuilder.object(req.validatorAddress),
|
|
176
|
+
],
|
|
177
|
+
});
|
|
178
|
+
});
|
|
179
|
+
programmableTxBuilder.transferObjects(stakedWals, programmableTxBuilder.object(this._sender));
|
|
180
|
+
break;
|
|
181
|
+
default:
|
|
182
|
+
throw new sdk_core_1.InvalidTransactionError(`unsupported target method`);
|
|
183
|
+
}
|
|
184
|
+
const txData = programmableTxBuilder.blockData;
|
|
185
|
+
return {
|
|
186
|
+
type: this._type,
|
|
187
|
+
sender: this._sender,
|
|
188
|
+
tx: {
|
|
189
|
+
inputs: [...txData.inputs],
|
|
190
|
+
transactions: [...txData.transactions],
|
|
191
|
+
},
|
|
192
|
+
gasData: {
|
|
193
|
+
...this._gasData,
|
|
194
|
+
payment: this._gasData.payment.slice(0, constants_1.MAX_GAS_OBJECTS - 1),
|
|
195
|
+
},
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
exports.WalrusStakingBuilder = WalrusStakingBuilder;
|
|
200
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FscnVzU3Rha2luZ0J1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3dhbHJ1c1N0YWtpbmdCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGlEQUEwRTtBQUMxRSxtREFBZ0g7QUFDaEgsbUNBS2lCO0FBQ2pCLDZEQUEwRDtBQUUxRCxvREFBNEI7QUFDNUIsb0RBQTRCO0FBRTVCLDZEQUEwRDtBQUMxRCxpREFLNkI7QUFDN0IsMkNBQThDO0FBQzlDLDJEQUFxRjtBQUdyRixNQUFhLG9CQUFxQixTQUFRLHVDQUF3RDtJQU1oRyxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksdUNBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFeEQsaURBQWlEO1FBQ2pELElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUsscUJBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGlDQUFrQixDQUFDLENBQUMsQ0FBQyxvQ0FBcUIsQ0FBQztJQUNwSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLHFCQUFxQjtRQUM3QixPQUFPO1lBQ0wsSUFBSSxFQUFFLDBCQUFrQixDQUFDLG1CQUFtQjtZQUM1QyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDcEIsRUFBRSxFQUFFO2dCQUNGLE1BQU0sRUFBRSxFQUFFO2dCQUNWLFlBQVksRUFBRSxFQUFFO2FBQ2pCO1lBQ0QsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3ZCLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLFVBQVUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLG1CQUFtQixDQUFDLFdBQWdDO1FBQ2xELElBQUksQ0FBQyxXQUFX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QUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztnQkFDMUIsWUFBWSxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO2FBQ3ZDO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLEdBQUcsSUFBSSxDQUFDLFFBQVE7Z0JBQ2hCLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLDJCQUFlLEdBQUcsQ0FBQyxDQUFDO2FBQzdEO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXhORCxvREF3TkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnLCBOZXR3b3JrVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgQmFzZUtleSwgQnVpbGRUcmFuc2FjdGlvbkVycm9yLCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHtcbiAgUmVxdWVzdFdhbHJ1c1N0YWtlV2l0aFBvb2wsXG4gIFN1aVRyYW5zYWN0aW9uLFxuICBTdWlUcmFuc2FjdGlvblR5cGUsXG4gIFdhbHJ1c1N0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbixcbn0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgVHJhbnNmZXJUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNmZXJUcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBTdGFraW5nVHJhbnNhY3Rpb24gfSBmcm9tICcuL3N0YWtpbmdUcmFuc2FjdGlvbic7XG5pbXBvcnQge1xuICBJbnB1dHMsXG4gIE1vdmVDYWxsVHJhbnNhY3Rpb24sXG4gIFRyYW5zYWN0aW9uQXJndW1lbnQsXG4gIFRyYW5zYWN0aW9uQmxvY2sgYXMgUHJvZ3JhbW1pbmdUcmFuc2FjdGlvbkJsb2NrQnVpbGRlcixcbn0gZnJvbSAnLi9teXN0ZW5sYWIvYnVpbGRlcic7XG5pbXBvcnQgeyBNQVhfR0FTX09CSkVDVFMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBXQUxSVVNfUFJPRF9DT05GSUcsIFdBTFJVU19URVNUTkVUX0NPTkZJRyB9IGZyb20gJy4vcmVzb3VyY2VzL3dhbHJ1c0NvbmZpZyc7XG5pbXBvcnQgeyBTdWlPYmplY3RSZWYgfSBmcm9tICcuL215c3RlbmxhYi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBXYWxydXNTdGFraW5nQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlcjxXYWxydXNTdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+IHtcbiAgcHJvdGVjdGVkIF9zdGFrZVdpdGhQb29sVHg6IFJlcXVlc3RXYWxydXNTdGFrZVdpdGhQb29sW107XG4gIHByb3RlY3RlZCBfaW5wdXRPYmplY3RzOiBTdWlPYmplY3RSZWZbXTtcblxuICBwcml2YXRlIHdhbHJ1c0NvbmZpZzogYW55OyAvLyBUT0RPIGltcHJvdmVcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSBuZXcgU3Rha2luZ1RyYW5zYWN0aW9uKF9jb2luQ29uZmlnKTtcblxuICAgIC8vIFRPRE8gaW1wcm92ZSBtYWlubmV0IHZzLiB0ZXN0bmV0IGNvbmZpZ3VyYXRpb25cbiAgICB0aGlzLndhbHJ1c0NvbmZpZyA9IF9jb2luQ29uZmlnLm5ldHdvcmsudHlwZSA9PT0gTmV0d29ya1R5cGUuTUFJTk5FVCA/IFdBTFJVU19QUk9EX0NPTkZJRyA6IFdBTFJVU19URVNUTkVUX0NPTkZJRztcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhIE1vdmVDYWxsIHRyYW5zYWN0aW9uIHJlYWR5IHRvIGJlIHNpZ25lZCBhbmQgZXhlY3V0ZWQuXG4gICAqXG4gICAqIEByZXR1cm5zIHtCaXRHb1N1aVRyYW5zYWN0aW9ufSBhbiB1bnNpZ25lZCBTdWkgdHJhbnNhY3Rpb25cbiAgICovXG4gIHByb3RlY3RlZCBidWlsZFN0YWtlVHJhbnNhY3Rpb24oKTogU3VpVHJhbnNhY3Rpb248V2FscnVzU3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFN1aVRyYW5zYWN0aW9uVHlwZS5XYWxydXNTdGFrZVdpdGhQb29sLFxuICAgICAgc2VuZGVyOiB0aGlzLl9zZW5kZXIsXG4gICAgICB0eDoge1xuICAgICAgICBpbnB1dHM6IFtdLFxuICAgICAgICB0cmFuc2FjdGlvbnM6IFtdLFxuICAgICAgfSxcbiAgICAgIGdhc0RhdGE6IHRoaXMuX2dhc0RhdGEsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgc3Rha2luZyB0cmFuc2FjdGlvbiB0eXBlXG4gICAqXG4gICAqIEByZXR1cm4ge1RyYW5zYWN0aW9uVHlwZX1cbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdBZGQ7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVUcmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNmZXJUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIGlmICghdHJhbnNhY3Rpb24uc3VpVHJhbnNhY3Rpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy52YWxpZGF0ZVRyYW5zYWN0aW9uRmllbGRzKCk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgc2lnbihrZXk6IEJhc2VLZXkpIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnNldFN1aVRyYW5zYWN0aW9uKHRoaXMuYnVpbGRTdWlUcmFuc2FjdGlvbigpKTtcbiAgICBzdXBlci5zaWduKGtleSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IHRyYW5zYWN0aW9uIGZvciBzdGFraW5nIGNvaW5zIHJlYWR5IHRvIGJlIHNpZ25lZCBhbmQgZXhlY3V0ZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVxdWVzdFdhbHJ1c1N0YWtlV2l0aFBvb2xbXX0gcmVxdWVzdDogYSBsaXN0IG9mIHN0YWtpbmcgcmVxdWVzdFxuICAgKi9cbiAgc3Rha2UocmVxdWVzdDogUmVxdWVzdFdhbHJ1c1N0YWtlV2l0aFBvb2xbXSk6IHRoaXMge1xuICAgIHJlcXVlc3QuZm9yRWFjaCgocmVxKSA9PiB7XG4gICAgICB1dGlscy52YWxpZGF0ZUFkZHJlc3MocmVxLnZhbGlkYXRvckFkZHJlc3MsICd2YWxpZGF0b3JBZGRyZXNzJyk7XG4gICAgICBhc3NlcnQodXRpbHMuaXNWYWxpZEFtb3VudChyZXEuYW1vdW50KSwgJ0ludmFsaWQgcmVjaXBpZW50IGFtb3VudCcpO1xuXG4gICAgICBpZiAodGhpcy5fc2VuZGVyID09PSByZXEudmFsaWRhdG9yQWRkcmVzcykge1xuICAgICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdTZW5kZXIgYWRkcmVzcyBjYW5ub3QgYmUgdGhlIHNhbWUgYXMgdGhlIFN0YWtpbmcgYWRkcmVzcycpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5fc3Rha2VXaXRoUG9vbFR4ID0gcmVxdWVzdDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlICRXQUwgb2JqZWN0cyB0byBiZSB1c2VkIGZvciBzdGFraW5nLlxuICAgKlxuICAgKiBAcGFyYW0gdG9rZW5zIFRoZSBXQUwgb2JqZWN0cyB0byBiZSB1c2VkXG4gICAqIEByZXR1cm5zIHRoaXNcbiAgICovXG4gIGlucHV0T2JqZWN0cyhpbnB1dE9iamVjdHM6IFN1aU9iamVjdFJlZltdKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZUlucHV0T2JqZWN0cyhpbnB1dE9iamVjdHMpO1xuICAgIHRoaXMuX2lucHV0T2JqZWN0cyA9IGlucHV0T2JqZWN0cztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVJbnB1dE9iamVjdHMoaW5wdXRPYmplY3RzOiBTdWlPYmplY3RSZWZbXSk6IHZvaWQge1xuICAgIGFzc2VydChcbiAgICAgIGlucHV0T2JqZWN0cyAmJiBpbnB1dE9iamVjdHMubGVuZ3RoID4gMCxcbiAgICAgIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ2lucHV0IG9iamVjdHMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJylcbiAgICApO1xuICAgIGlucHV0T2JqZWN0cy5mb3JFYWNoKChpbnB1dE9iamVjdCkgPT4ge1xuICAgICAgdGhpcy52YWxpZGF0ZVN1aU9iamVjdFJlZihpbnB1dE9iamVjdCwgJ2lucHV0IG9iamVjdCcpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBmcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFRyYW5zYWN0aW9uPFdhbHJ1c1N0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj4ge1xuICAgIGNvbnN0IHR4ID0gbmV3IFN0YWtpbmdUcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICB0aGlzLnZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIHR4LmZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgdGhpcy5pbml0QnVpbGRlcih0eCk7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxUcmFuc2FjdGlvbjxXYWxydXNTdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+PiB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXRTdWlUcmFuc2FjdGlvbih0aGlzLmJ1aWxkU3VpVHJhbnNhY3Rpb24oKSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvblR5cGUodGhpcy50cmFuc2FjdGlvblR5cGUpO1xuXG4gICAgaWYgKHRoaXMuX3NpZ25lcikge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi5zaWduKHRoaXMuX3NpZ25lcik7XG4gICAgfVxuXG4gICAgdGhpcy5fc2lnbmF0dXJlcy5mb3JFYWNoKChzaWduYXR1cmUpID0+IHtcbiAgICAgIHRoaXMudHJhbnNhY3Rpb24uYWRkU2lnbmF0dXJlKHNpZ25hdHVyZS5wdWJsaWNLZXksIHNpZ25hdHVyZS5zaWduYXR1cmUpO1xuICAgIH0pO1xuXG4gICAgdGhpcy50cmFuc2FjdGlvbi5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIHRyYW5zYWN0aW9uIGJ1aWxkZXIgZmllbGRzIHVzaW5nIHRoZSBkZWNvZGVkIHRyYW5zYWN0aW9uIGRhdGFcbiAgICpcbiAgICogQHBhcmFtIHtTdGFraW5nVHJhbnNhY3Rpb259IHR4IHRoZSB0cmFuc2FjdGlvbiBkYXRhXG4gICAqL1xuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb248V2FscnVzU3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPik6IHZvaWQge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHg7XG5cbiAgICBpZiAodHguc2lnbmF0dXJlICYmIHR4LnNpZ25hdHVyZS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLl9zaWduYXR1cmVzID0gW3R4LnN1aVNpZ25hdHVyZV07XG4gICAgfVxuXG4gICAgY29uc3QgdHhEYXRhID0gdHgudG9Kc29uKCk7XG4gICAgdGhpcy50eXBlKFN1aVRyYW5zYWN0aW9uVHlwZS5XYWxydXNTdGFrZVdpdGhQb29sKTtcbiAgICB0aGlzLnNlbmRlcih0eERhdGEuc2VuZGVyKTtcbiAgICB0aGlzLmdhc0RhdGEodHhEYXRhLmdhc0RhdGEpO1xuXG4gICAgY29uc3QgcmVxdWVzdHMgPSB1dGlscy5nZXRXYWxydXNTdGFrZVdpdGhQb29sUmVxdWVzdHModHguc3VpVHJhbnNhY3Rpb24udHgpO1xuICAgIHRoaXMuc3Rha2UocmVxdWVzdHMpO1xuXG4gICAgYXNzZXJ0KHR4RGF0YS5pbnB1dE9iamVjdHMpO1xuICAgIHRoaXMuaW5wdXRPYmplY3RzKHR4RGF0YS5pbnB1dE9iamVjdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBhbGwgZmllbGRzIGFyZSBkZWZpbmVkXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlVHJhbnNhY3Rpb25GaWVsZHMoKTogdm9pZCB7XG4gICAgYXNzZXJ0KHRoaXMuX3R5cGUsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ3R5cGUgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuICAgIGFzc2VydCh0aGlzLl9zZW5kZXIsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ3NlbmRlciBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgdGhpcy5fc3Rha2VXaXRoUG9vbFR4LmZvckVhY2goKHJlcSkgPT4ge1xuICAgICAgYXNzZXJ0KHJlcS52YWxpZGF0b3JBZGRyZXNzLCBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCd2YWxpZGF0b3IgYWRkcmVzcyBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgICBhc3NlcnQocmVxLmFtb3VudCwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignc3Rha2luZyBhbW91bnQgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuICAgIH0pO1xuICAgIGFzc2VydCh0aGlzLl9nYXNEYXRhLCBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdnYXNEYXRhIGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpKTtcbiAgICB0aGlzLnZhbGlkYXRlR2FzRGF0YSh0aGlzLl9nYXNEYXRhKTtcbiAgICB0aGlzLnZhbGlkYXRlSW5wdXRPYmplY3RzKHRoaXMuX2lucHV0T2JqZWN0cyk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgU3VpVHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHJldHVybiB7Qml0R29TdWlUcmFuc2FjdGlvbjxNb3ZlQ2FsbFR4Pn1cbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkU3VpVHJhbnNhY3Rpb24oKTogU3VpVHJhbnNhY3Rpb248V2FscnVzU3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy52YWxpZGF0ZVRyYW5zYWN0aW9uRmllbGRzKCk7XG5cbiAgICBjb25zdCBwcm9ncmFtbWFibGVUeEJ1aWxkZXIgPSBuZXcgUHJvZ3JhbW1pbmdUcmFuc2FjdGlvbkJsb2NrQnVpbGRlcigpO1xuICAgIHN3aXRjaCAodGhpcy5fdHlwZSkge1xuICAgICAgY2FzZSBTdWlUcmFuc2FjdGlvblR5cGUuV2FscnVzU3Rha2VXaXRoUG9vbDpcbiAgICAgICAgY29uc3QgaW5wdXRPYmplY3RzID0gdGhpcy5faW5wdXRPYmplY3RzLm1hcCgodG9rZW4pID0+IHByb2dyYW1tYWJsZVR4QnVpbGRlci5vYmplY3QoSW5wdXRzLk9iamVjdFJlZih0b2tlbikpKTtcbiAgICAgICAgY29uc3QgbWVyZ2VkT2JqZWN0ID0gaW5wdXRPYmplY3RzLnNoaWZ0KCkgYXMgVHJhbnNhY3Rpb25Bcmd1bWVudDtcblxuICAgICAgICBpZiAoaW5wdXRPYmplY3RzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBwcm9ncmFtbWFibGVUeEJ1aWxkZXIubWVyZ2VDb2lucyhtZXJnZWRPYmplY3QsIGlucHV0T2JqZWN0cyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgY29pbiB3aXRoIHN0YWtpbmcgYmFsYW5jZSwgYmFzZWQgb24gdGhlIGNvaW5zIHVzZWQgYXMgZ2FzIHBheW1lbnQuXG4gICAgICAgIGNvbnN0IHN0YWtlZFdhbHMgPSB0aGlzLl9zdGFrZVdpdGhQb29sVHgubWFwKChyZXEpID0+IHtcbiAgICAgICAgICBjb25zdCBzcGxpdE9iamVjdCA9IHByb2dyYW1tYWJsZVR4QnVpbGRlci5zcGxpdENvaW5zKG1lcmdlZE9iamVjdCwgW1xuICAgICAgICAgICAgcHJvZ3JhbW1hYmxlVHhCdWlsZGVyLnB1cmUoTnVtYmVyKHJlcS5hbW91bnQpKSxcbiAgICAgICAgICBdKTtcbiAgICAgICAgICAvLyBTdGFrZSB0aGUgc3BsaXQgY29pbiB0byBhIHNwZWNpZmljIHZhbGlkYXRvciBhZGRyZXNzLlxuICAgICAgICAgIHJldHVybiBwcm9ncmFtbWFibGVUeEJ1aWxkZXIubW92ZUNhbGwoe1xuICAgICAgICAgICAgdGFyZ2V0OiBgJHt0aGlzLndhbHJ1c0NvbmZpZy5XQUxSVVNfUEtHX0lEfTo6JHt0aGlzLndhbHJ1c0NvbmZpZy5XQUxSVVNfU1RBS0lOR19NT0RVTEVfTkFNRX06OiR7dGhpcy53YWxydXNDb25maWcuV0FMUlVTX1NUQUtFX1dJVEhfUE9PTF9GVU5fTkFNRX1gLFxuICAgICAgICAgICAgYXJndW1lbnRzOiBbXG4gICAgICAgICAgICAgIHByb2dyYW1tYWJsZVR4QnVpbGRlci5vYmplY3QoSW5wdXRzLlNoYXJlZE9iamVjdFJlZih0aGlzLndhbHJ1c0NvbmZpZy5XQUxSVVNfU1RBS0lOR19PQkpFQ1QpKSxcbiAgICAgICAgICAgICAgc3BsaXRPYmplY3QsXG4gICAgICAgICAgICAgIHByb2dyYW1tYWJsZVR4QnVpbGRlci5vYmplY3QocmVxLnZhbGlkYXRvckFkZHJlc3MpLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9IGFzIHVua25vd24gYXMgTW92ZUNhbGxUcmFuc2FjdGlvbik7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHByb2dyYW1tYWJsZVR4QnVpbGRlci50cmFuc2Zlck9iamVjdHMoc3Rha2VkV2FscywgcHJvZ3JhbW1hYmxlVHhCdWlsZGVyLm9iamVjdCh0aGlzLl9zZW5kZXIpKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYHVuc3VwcG9ydGVkIHRhcmdldCBtZXRob2RgKTtcbiAgICB9XG5cbiAgICBjb25zdCB0eERhdGEgPSBwcm9ncmFtbWFibGVUeEJ1aWxkZXIuYmxvY2tEYXRhO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB0aGlzLl90eXBlLFxuICAgICAgc2VuZGVyOiB0aGlzLl9zZW5kZXIsXG4gICAgICB0eDoge1xuICAgICAgICBpbnB1dHM6IFsuLi50eERhdGEuaW5wdXRzXSxcbiAgICAgICAgdHJhbnNhY3Rpb25zOiBbLi4udHhEYXRhLnRyYW5zYWN0aW9uc10sXG4gICAgICB9LFxuICAgICAgZ2FzRGF0YToge1xuICAgICAgICAuLi50aGlzLl9nYXNEYXRhLFxuICAgICAgICBwYXltZW50OiB0aGlzLl9nYXNEYXRhLnBheW1lbnQuc2xpY2UoMCwgTUFYX0dBU19PQkpFQ1RTIC0gMSksXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { BaseKey, PublicKey as BasePublicKey, Signature, TransactionType } from '@bitgo-beta/sdk-core';
|
|
2
|
+
import { WalrusStakingProgrammableTransaction, SuiTransaction, TransactionExplanation, TxData } from './iface';
|
|
3
|
+
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
4
|
+
import { Buffer } from 'buffer';
|
|
5
|
+
import { Transaction } from './transaction';
|
|
6
|
+
export declare class WalrusStakingTransaction extends Transaction<WalrusStakingProgrammableTransaction> {
|
|
7
|
+
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
8
|
+
get suiTransaction(): SuiTransaction<WalrusStakingProgrammableTransaction>;
|
|
9
|
+
setSuiTransaction(tx: SuiTransaction<WalrusStakingProgrammableTransaction>): void;
|
|
10
|
+
addSignature(publicKey: BasePublicKey, signature: Buffer): void;
|
|
11
|
+
get suiSignature(): Signature;
|
|
12
|
+
/** @inheritdoc */
|
|
13
|
+
canSign(key: BaseKey): boolean;
|
|
14
|
+
/** @inheritdoc */
|
|
15
|
+
toBroadcastFormat(): string;
|
|
16
|
+
/** @inheritdoc */
|
|
17
|
+
toJson(): TxData;
|
|
18
|
+
/** @inheritDoc */
|
|
19
|
+
explainTransaction(): TransactionExplanation;
|
|
20
|
+
/**
|
|
21
|
+
* Set the transaction type.
|
|
22
|
+
*
|
|
23
|
+
* @param {TransactionType} transactionType The transaction type to be set.
|
|
24
|
+
*/
|
|
25
|
+
transactionType(transactionType: TransactionType): void;
|
|
26
|
+
/**
|
|
27
|
+
* Load the input and output data on this transaction.
|
|
28
|
+
*/
|
|
29
|
+
loadInputsAndOutputs(): void;
|
|
30
|
+
/**
|
|
31
|
+
* Sets this transaction payload
|
|
32
|
+
*
|
|
33
|
+
* @param {string} rawTransaction
|
|
34
|
+
*/
|
|
35
|
+
fromRawTransaction(rawTransaction: string): void;
|
|
36
|
+
/**
|
|
37
|
+
* Helper function for serialize() to get the correct txData with transaction type
|
|
38
|
+
*
|
|
39
|
+
* @return {TxData}
|
|
40
|
+
*/
|
|
41
|
+
getTxData(): TxData;
|
|
42
|
+
/**
|
|
43
|
+
* Returns a complete explanation for a staking transaction
|
|
44
|
+
*
|
|
45
|
+
* @param {TxData} json The transaction data in json format
|
|
46
|
+
* @param {TransactionExplanation} explanationResult The transaction explanation to be completed
|
|
47
|
+
* @returns {TransactionExplanation}
|
|
48
|
+
*/
|
|
49
|
+
explainAddDelegationTransaction(json: TxData, explanationResult: TransactionExplanation): TransactionExplanation;
|
|
50
|
+
private getInputObjectsFromTx;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=walrusStakingTransaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walrusStakingTransaction.d.ts","sourceRoot":"","sources":["../../../src/lib/walrusStakingTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAGP,SAAS,IAAI,aAAa,EAC1B,SAAS,EAET,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,oCAAoC,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC/G,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAc5C,qBAAa,wBAAyB,SAAQ,WAAW,CAAC,oCAAoC,CAAC;gBACjF,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,IAAI,cAAc,IAAI,cAAc,CAAC,oCAAoC,CAAC,CAEzE;IAED,iBAAiB,CAAC,EAAE,EAAE,cAAc,CAAC,oCAAoC,CAAC,GAAG,IAAI;IAIjF,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAM/D,IAAI,YAAY,IAAI,SAAS,CAE5B;IAED,kBAAkB;IAClB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI9B,kBAAkB;IAClB,iBAAiB,IAAI,MAAM;IAO3B,kBAAkB;IAClB,MAAM,IAAI,MAAM;IAgBhB,kBAAkB;IAClB,kBAAkB,IAAI,sBAAsB;IAmC5C;;;;OAIG;IACH,eAAe,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAIvD;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAsB5B;;;;OAIG;IACH,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAchD;;;;OAIG;IACH,SAAS,IAAI,MAAM;IA0CnB;;;;;;OAMG;IACH,+BAA+B,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,sBAAsB,GAAG,sBAAsB;IAgChH,OAAO,CAAC,qBAAqB;CA2B9B"}
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.WalrusStakingTransaction = void 0;
|
|
37
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
38
|
+
const utils_1 = __importStar(require("./utils"));
|
|
39
|
+
const buffer_1 = require("buffer");
|
|
40
|
+
const transaction_1 = require("./transaction");
|
|
41
|
+
const builder_1 = require("./mystenlab/builder");
|
|
42
|
+
const types_1 = require("./mystenlab/types");
|
|
43
|
+
const bcs_1 = require("@mysten/bcs");
|
|
44
|
+
const constants_1 = require("./constants");
|
|
45
|
+
class WalrusStakingTransaction extends transaction_1.Transaction {
|
|
46
|
+
constructor(_coinConfig) {
|
|
47
|
+
super(_coinConfig);
|
|
48
|
+
}
|
|
49
|
+
get suiTransaction() {
|
|
50
|
+
return this._suiTransaction;
|
|
51
|
+
}
|
|
52
|
+
setSuiTransaction(tx) {
|
|
53
|
+
this._suiTransaction = tx;
|
|
54
|
+
}
|
|
55
|
+
addSignature(publicKey, signature) {
|
|
56
|
+
this._signatures.push(signature.toString('hex'));
|
|
57
|
+
this._signature = { publicKey, signature };
|
|
58
|
+
this.serialize();
|
|
59
|
+
}
|
|
60
|
+
get suiSignature() {
|
|
61
|
+
return this._signature;
|
|
62
|
+
}
|
|
63
|
+
/** @inheritdoc */
|
|
64
|
+
canSign(key) {
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
/** @inheritdoc */
|
|
68
|
+
toBroadcastFormat() {
|
|
69
|
+
if (!this._suiTransaction) {
|
|
70
|
+
throw new sdk_core_1.InvalidTransactionError('Empty transaction');
|
|
71
|
+
}
|
|
72
|
+
return this.serialize();
|
|
73
|
+
}
|
|
74
|
+
/** @inheritdoc */
|
|
75
|
+
toJson() {
|
|
76
|
+
if (!this._suiTransaction) {
|
|
77
|
+
throw new sdk_core_1.ParseTransactionError('Empty transaction');
|
|
78
|
+
}
|
|
79
|
+
const tx = this._suiTransaction;
|
|
80
|
+
return {
|
|
81
|
+
id: this._id,
|
|
82
|
+
sender: tx.sender,
|
|
83
|
+
kind: { ProgrammableTransaction: tx.tx },
|
|
84
|
+
gasData: tx.gasData,
|
|
85
|
+
expiration: { None: null },
|
|
86
|
+
inputObjects: this.getInputObjectsFromTx(tx.tx),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/** @inheritDoc */
|
|
90
|
+
explainTransaction() {
|
|
91
|
+
const result = this.toJson();
|
|
92
|
+
const displayOrder = [
|
|
93
|
+
'id',
|
|
94
|
+
'outputs',
|
|
95
|
+
'outputAmount',
|
|
96
|
+
'changeOutputs',
|
|
97
|
+
'changeAmount',
|
|
98
|
+
'fee',
|
|
99
|
+
'type',
|
|
100
|
+
'module',
|
|
101
|
+
'function',
|
|
102
|
+
'validatorAddress',
|
|
103
|
+
];
|
|
104
|
+
const outputs = [];
|
|
105
|
+
const explanationResult = {
|
|
106
|
+
displayOrder,
|
|
107
|
+
id: this.id,
|
|
108
|
+
outputs,
|
|
109
|
+
outputAmount: '0',
|
|
110
|
+
changeOutputs: [],
|
|
111
|
+
changeAmount: '0',
|
|
112
|
+
fee: { fee: this.suiTransaction.gasData.budget.toString() },
|
|
113
|
+
type: this.type,
|
|
114
|
+
};
|
|
115
|
+
switch (this.type) {
|
|
116
|
+
case sdk_core_1.TransactionType.StakingAdd:
|
|
117
|
+
return this.explainAddDelegationTransaction(result, explanationResult);
|
|
118
|
+
default:
|
|
119
|
+
throw new sdk_core_1.InvalidTransactionError('Transaction type not supported');
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Set the transaction type.
|
|
124
|
+
*
|
|
125
|
+
* @param {TransactionType} transactionType The transaction type to be set.
|
|
126
|
+
*/
|
|
127
|
+
transactionType(transactionType) {
|
|
128
|
+
this._type = transactionType;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Load the input and output data on this transaction.
|
|
132
|
+
*/
|
|
133
|
+
loadInputsAndOutputs() {
|
|
134
|
+
if (!this.suiTransaction) {
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
const requests = utils_1.default.getWalrusStakeWithPoolRequests(this.suiTransaction.tx);
|
|
138
|
+
this._outputs = requests.map((request) => {
|
|
139
|
+
return {
|
|
140
|
+
address: request.validatorAddress,
|
|
141
|
+
value: request.amount.toString(),
|
|
142
|
+
coin: this._coinConfig.name,
|
|
143
|
+
};
|
|
144
|
+
});
|
|
145
|
+
this._inputs = [
|
|
146
|
+
{
|
|
147
|
+
address: this.suiTransaction.sender,
|
|
148
|
+
value: this._outputs.reduce((acc, output) => acc + Number(output.value), 0).toString(),
|
|
149
|
+
coin: this._coinConfig.name,
|
|
150
|
+
},
|
|
151
|
+
];
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Sets this transaction payload
|
|
155
|
+
*
|
|
156
|
+
* @param {string} rawTransaction
|
|
157
|
+
*/
|
|
158
|
+
fromRawTransaction(rawTransaction) {
|
|
159
|
+
try {
|
|
160
|
+
utils_1.default.isValidRawTransaction(rawTransaction);
|
|
161
|
+
this._suiTransaction = transaction_1.Transaction.deserializeSuiTransaction(rawTransaction);
|
|
162
|
+
this._type = sdk_core_1.TransactionType.StakingAdd;
|
|
163
|
+
this._id = this._suiTransaction.id;
|
|
164
|
+
this.loadInputsAndOutputs();
|
|
165
|
+
}
|
|
166
|
+
catch (e) {
|
|
167
|
+
throw e;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Helper function for serialize() to get the correct txData with transaction type
|
|
172
|
+
*
|
|
173
|
+
* @return {TxData}
|
|
174
|
+
*/
|
|
175
|
+
getTxData() {
|
|
176
|
+
if (!this._suiTransaction) {
|
|
177
|
+
throw new sdk_core_1.InvalidTransactionError('empty transaction');
|
|
178
|
+
}
|
|
179
|
+
const inputs = this._suiTransaction.tx.inputs.map((input, index) => {
|
|
180
|
+
if (input.hasOwnProperty('Object')) {
|
|
181
|
+
return input;
|
|
182
|
+
}
|
|
183
|
+
if (input.hasOwnProperty('Pure')) {
|
|
184
|
+
if (input.Pure.length === constants_1.SUI_ADDRESS_LENGTH) {
|
|
185
|
+
const address = (0, types_1.normalizeSuiAddress)(builder_1.builder.de(bcs_1.BCS.ADDRESS, buffer_1.Buffer.from(input.Pure).toString('base64'), 'base64'));
|
|
186
|
+
return builder_1.Inputs.Pure(address, bcs_1.BCS.ADDRESS);
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
const amount = builder_1.builder.de(bcs_1.BCS.U64, buffer_1.Buffer.from(input.Pure).toString('base64'), 'base64');
|
|
190
|
+
return builder_1.Inputs.Pure(amount, bcs_1.BCS.U64);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
if (input.kind === 'Input' && (input.value.hasOwnProperty('Object') || input.value.hasOwnProperty('Pure'))) {
|
|
194
|
+
return input.value;
|
|
195
|
+
}
|
|
196
|
+
// what's left is the pure number or address string
|
|
197
|
+
return builder_1.Inputs.Pure(input.value, input.type === 'pure' ? bcs_1.BCS.U64 : bcs_1.BCS.ADDRESS);
|
|
198
|
+
});
|
|
199
|
+
const programmableTx = {
|
|
200
|
+
inputs: inputs,
|
|
201
|
+
transactions: this._suiTransaction.tx.transactions,
|
|
202
|
+
};
|
|
203
|
+
return {
|
|
204
|
+
sender: this._suiTransaction.sender,
|
|
205
|
+
expiration: { None: null },
|
|
206
|
+
gasData: this._suiTransaction.gasData,
|
|
207
|
+
kind: {
|
|
208
|
+
ProgrammableTransaction: programmableTx,
|
|
209
|
+
},
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Returns a complete explanation for a staking transaction
|
|
214
|
+
*
|
|
215
|
+
* @param {TxData} json The transaction data in json format
|
|
216
|
+
* @param {TransactionExplanation} explanationResult The transaction explanation to be completed
|
|
217
|
+
* @returns {TransactionExplanation}
|
|
218
|
+
*/
|
|
219
|
+
explainAddDelegationTransaction(json, explanationResult) {
|
|
220
|
+
const outputs = [];
|
|
221
|
+
this.suiTransaction.tx.transactions.forEach((transaction, txIndex) => {
|
|
222
|
+
if (builder_1.SplitCoinsTransaction.is(transaction)) {
|
|
223
|
+
const amountInputIdx = transaction.amounts[0].index;
|
|
224
|
+
const amount = BigInt(this.suiTransaction.tx.inputs[amountInputIdx].value);
|
|
225
|
+
// For WalrusStake, every split is followed by a move call
|
|
226
|
+
const validatorAddressInputIdx = this.suiTransaction.tx.transactions[txIndex + 1]
|
|
227
|
+
.arguments[2].index;
|
|
228
|
+
const validatorAddress = utils_1.default.getAddress(this.suiTransaction.tx.inputs[validatorAddressInputIdx]);
|
|
229
|
+
outputs.push({
|
|
230
|
+
address: validatorAddress,
|
|
231
|
+
amount: amount.toString(10),
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
const outputAmount = outputs.reduce((sum, output) => sum + BigInt(output.amount), BigInt(0)).toString(10);
|
|
236
|
+
return {
|
|
237
|
+
...explanationResult,
|
|
238
|
+
outputAmount,
|
|
239
|
+
outputs,
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
getInputObjectsFromTx(tx) {
|
|
243
|
+
const inputs = tx.inputs;
|
|
244
|
+
const transaction = tx.transactions[0];
|
|
245
|
+
let args = [];
|
|
246
|
+
if (transaction.kind === 'MergeCoins') {
|
|
247
|
+
const { destination, sources } = transaction;
|
|
248
|
+
args = [destination, ...sources];
|
|
249
|
+
}
|
|
250
|
+
else if (transaction.kind === 'SplitCoins') {
|
|
251
|
+
args = [transaction.coin];
|
|
252
|
+
}
|
|
253
|
+
const inputObjects = [];
|
|
254
|
+
args.forEach((arg) => {
|
|
255
|
+
if (arg.kind === 'Input') {
|
|
256
|
+
let input = inputs[arg.index];
|
|
257
|
+
if ('value' in input) {
|
|
258
|
+
input = input.value;
|
|
259
|
+
}
|
|
260
|
+
if ('Object' in input && (0, utils_1.isImmOrOwnedObj)(input.Object)) {
|
|
261
|
+
inputObjects.push(input.Object.ImmOrOwned);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
});
|
|
265
|
+
return inputObjects;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
exports.WalrusStakingTransaction = WalrusStakingTransaction;
|
|
269
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FscnVzU3Rha2luZ1RyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi93YWxydXNTdGFraW5nVHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBUThCO0FBRzlCLGlEQUFpRDtBQUNqRCxtQ0FBZ0M7QUFDaEMsK0NBQTRDO0FBQzVDLGlEQVE2QjtBQUM3Qiw2Q0FBK0U7QUFDL0UscUNBQWtDO0FBQ2xDLDJDQUFpRDtBQUVqRCxNQUFhLHdCQUF5QixTQUFRLHlCQUFpRDtJQUM3RixZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBd0Q7UUFDeEUsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUF3QixFQUFFLFNBQWlCO1FBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsT0FBTyxDQUFDLEdBQVk7UUFDbEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGlCQUFpQjtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDMUIs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QW1CLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDbkIsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUN6QixJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM5QixJQUFJLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQztvQkFDckIsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQ3RCLENBQUM7Z0JBQ0QsSUFBSSxRQUFRLElBQUksS0FBSyxJQUFJLElBQUEsdUJBQWUsRUFBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztvQkFDdkQsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUM3QyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztDQUNGO0FBL1BELDREQStQQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhc2VLZXksXG4gIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLFxuICBQYXJzZVRyYW5zYWN0aW9uRXJyb3IsXG4gIFB1YmxpY0tleSBhcyBCYXNlUHVibGljS2V5LFxuICBTaWduYXR1cmUsXG4gIFRyYW5zYWN0aW9uUmVjaXBpZW50LFxuICBUcmFuc2FjdGlvblR5cGUsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFdhbHJ1c1N0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbiwgU3VpVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24sIFR4RGF0YSB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHV0aWxzLCB7IGlzSW1tT3JPd25lZE9iaiB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQge1xuICBidWlsZGVyLFxuICBJbnB1dHMsXG4gIE1vdmVDYWxsVHJhbnNhY3Rpb24sXG4gIFNwbGl0Q29pbnNUcmFuc2FjdGlvbixcbiAgVHJhbnNhY3Rpb25Bcmd1bWVudCxcbiAgVHJhbnNhY3Rpb25CbG9ja0lucHV0LFxuICBUcmFuc2FjdGlvblR5cGUgYXMgU3VpVHJhbnNhY3Rpb25CbG9ja1R5cGUsXG59IGZyb20gJy4vbXlzdGVubGFiL2J1aWxkZXInO1xuaW1wb3J0IHsgQ2FsbEFyZywgbm9ybWFsaXplU3VpQWRkcmVzcywgU3VpT2JqZWN0UmVmIH0gZnJvbSAnLi9teXN0ZW5sYWIvdHlwZXMnO1xuaW1wb3J0IHsgQkNTIH0gZnJvbSAnQG15c3Rlbi9iY3MnO1xuaW1wb3J0IHsgU1VJX0FERFJFU1NfTEVOR1RIIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY2xhc3MgV2FscnVzU3Rha2luZ1RyYW5zYWN0aW9uIGV4dGVuZHMgVHJhbnNhY3Rpb248V2FscnVzU3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPiB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIGdldCBzdWlUcmFuc2FjdGlvbigpOiBTdWlUcmFuc2FjdGlvbjxXYWxydXNTdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24+IHtcbiAgICByZXR1cm4gdGhpcy5fc3VpVHJhbnNhY3Rpb247XG4gIH1cblxuICBzZXRTdWlUcmFuc2FjdGlvbih0eDogU3VpVHJhbnNhY3Rpb248V2FscnVzU3Rha2luZ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uPik6IHZvaWQge1xuICAgIHRoaXMuX3N1aVRyYW5zYWN0aW9uID0gdHg7XG4gIH1cblxuICBhZGRTaWduYXR1cmUocHVibGljS2V5OiBCYXNlUHVibGljS2V5LCBzaWduYXR1cmU6IEJ1ZmZlcik6IHZvaWQge1xuICAgIHRoaXMuX3NpZ25hdHVyZXMucHVzaChzaWduYXR1cmUudG9TdHJpbmcoJ2hleCcpKTtcbiAgICB0aGlzLl9zaWduYXR1cmUgPSB7IHB1YmxpY0tleSwgc2lnbmF0dXJlIH07XG4gICAgdGhpcy5zZXJpYWxpemUoKTtcbiAgfVxuXG4gIGdldCBzdWlTaWduYXR1cmUoKTogU2lnbmF0dXJlIHtcbiAgICByZXR1cm4gdGhpcy5fc2lnbmF0dXJlO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGNhblNpZ24oa2V5OiBCYXNlS2V5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Ccm9hZGNhc3RGb3JtYXQoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuX3N1aVRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZSgpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRvSnNvbigpOiBUeERhdGEge1xuICAgIGlmICghdGhpcy5fc3VpVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuXG4gICAgY29uc3QgdHggPSB0aGlzLl9zdWlUcmFuc2FjdGlvbjtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHRoaXMuX2lkLFxuICAgICAgc2VuZGVyOiB0eC5zZW5kZXIsXG4gICAgICBraW5kOiB7IFByb2dyYW1tYWJsZVRyYW5zYWN0aW9uOiB0eC50eCB9LFxuICAgICAgZ2FzRGF0YTogdHguZ2FzRGF0YSxcbiAgICAgIGV4cGlyYXRpb246IHsgTm9uZTogbnVsbCB9LFxuICAgICAgaW5wdXRPYmplY3RzOiB0aGlzLmdldElucHV0T2JqZWN0c0Zyb21UeCh0eC50eCksXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBleHBsYWluVHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy50b0pzb24oKTtcbiAgICBjb25zdCBkaXNwbGF5T3JkZXIgPSBbXG4gICAgICAnaWQnLFxuICAgICAgJ291dHB1dHMnLFxuICAgICAgJ291dHB1dEFtb3VudCcsXG4gICAgICAnY2hhbmdlT3V0cHV0cycsXG4gICAgICAnY2hhbmdlQW1vdW50JyxcbiAgICAgICdmZWUnLFxuICAgICAgJ3R5cGUnLFxuICAgICAgJ21vZHVsZScsXG4gICAgICAnZnVuY3Rpb24nLFxuICAgICAgJ3ZhbGlkYXRvckFkZHJlc3MnLFxuICAgIF07XG4gICAgY29uc3Qgb3V0cHV0czogVHJhbnNhY3Rpb25SZWNpcGllbnRbXSA9IFtdO1xuXG4gICAgY29uc3QgZXhwbGFuYXRpb25SZXN1bHQ6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gPSB7XG4gICAgICBkaXNwbGF5T3JkZXIsXG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIG91dHB1dHMsXG4gICAgICBvdXRwdXRBbW91bnQ6ICcwJyxcbiAgICAgIGNoYW5nZU91dHB1dHM6IFtdLFxuICAgICAgY2hhbmdlQW1vdW50OiAnMCcsXG4gICAgICBmZWU6IHsgZmVlOiB0aGlzLnN1aVRyYW5zYWN0aW9uLmdhc0RhdGEuYnVkZ2V0LnRvU3RyaW5nKCkgfSxcbiAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICB9O1xuXG4gICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdBZGQ6XG4gICAgICAgIHJldHVybiB0aGlzLmV4cGxhaW5BZGREZWxlZ2F0aW9uVHJhbnNhY3Rpb24ocmVzdWx0LCBleHBsYW5hdGlvblJlc3VsdCk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ1RyYW5zYWN0aW9uIHR5cGUgbm90IHN1cHBvcnRlZCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRyYW5zYWN0aW9uIHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25UeXBlfSB0cmFuc2FjdGlvblR5cGUgVGhlIHRyYW5zYWN0aW9uIHR5cGUgdG8gYmUgc2V0LlxuICAgKi9cbiAgdHJhbnNhY3Rpb25UeXBlKHRyYW5zYWN0aW9uVHlwZTogVHJhbnNhY3Rpb25UeXBlKTogdm9pZCB7XG4gICAgdGhpcy5fdHlwZSA9IHRyYW5zYWN0aW9uVHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIHRoZSBpbnB1dCBhbmQgb3V0cHV0IGRhdGEgb24gdGhpcyB0cmFuc2FjdGlvbi5cbiAgICovXG4gIGxvYWRJbnB1dHNBbmRPdXRwdXRzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zdWlUcmFuc2FjdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByZXF1ZXN0cyA9IHV0aWxzLmdldFdhbHJ1c1N0YWtlV2l0aFBvb2xSZXF1ZXN0cyh0aGlzLnN1aVRyYW5zYWN0aW9uLnR4KTtcbiAgICB0aGlzLl9vdXRwdXRzID0gcmVxdWVzdHMubWFwKChyZXF1ZXN0KSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhZGRyZXNzOiByZXF1ZXN0LnZhbGlkYXRvckFkZHJlc3MsXG4gICAgICAgIHZhbHVlOiByZXF1ZXN0LmFtb3VudC50b1N0cmluZygpLFxuICAgICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgdGhpcy5faW5wdXRzID0gW1xuICAgICAge1xuICAgICAgICBhZGRyZXNzOiB0aGlzLnN1aVRyYW5zYWN0aW9uLnNlbmRlcixcbiAgICAgICAgdmFsdWU6IHRoaXMuX291dHB1dHMucmVkdWNlKChhY2MsIG91dHB1dCkgPT4gYWNjICsgTnVtYmVyKG91dHB1dC52YWx1ZSksIDApLnRvU3RyaW5nKCksXG4gICAgICAgIGNvaW46IHRoaXMuX2NvaW5Db25maWcubmFtZSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoaXMgdHJhbnNhY3Rpb24gcGF5bG9hZFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmF3VHJhbnNhY3Rpb25cbiAgICovXG4gIGZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIHV0aWxzLmlzVmFsaWRSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgICB0aGlzLl9zdWlUcmFuc2FjdGlvbiA9IFRyYW5zYWN0aW9uLmRlc2VyaWFsaXplU3VpVHJhbnNhY3Rpb24oXG4gICAgICAgIHJhd1RyYW5zYWN0aW9uXG4gICAgICApIGFzIFN1aVRyYW5zYWN0aW9uPFdhbHJ1c1N0YWtpbmdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj47XG4gICAgICB0aGlzLl90eXBlID0gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdBZGQ7XG4gICAgICB0aGlzLl9pZCA9IHRoaXMuX3N1aVRyYW5zYWN0aW9uLmlkO1xuICAgICAgdGhpcy5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciBmdW5jdGlvbiBmb3Igc2VyaWFsaXplKCkgdG8gZ2V0IHRoZSBjb3JyZWN0IHR4RGF0YSB3aXRoIHRyYW5zYWN0aW9uIHR5cGVcbiAgICpcbiAgICogQHJldHVybiB7VHhEYXRhfVxuICAgKi9cbiAgZ2V0VHhEYXRhKCk6IFR4RGF0YSB7XG4gICAgaWYgKCF0aGlzLl9zdWlUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdlbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBjb25zdCBpbnB1dHM6IENhbGxBcmdbXSB8IFRyYW5zYWN0aW9uQmxvY2tJbnB1dFtdID0gdGhpcy5fc3VpVHJhbnNhY3Rpb24udHguaW5wdXRzLm1hcCgoaW5wdXQsIGluZGV4KSA9PiB7XG4gICAgICBpZiAoaW5wdXQuaGFzT3duUHJvcGVydHkoJ09iamVjdCcpKSB7XG4gICAgICAgIHJldHVybiBpbnB1dDtcbiAgICAgIH1cbiAgICAgIGlmIChpbnB1dC5oYXNPd25Qcm9wZXJ0eSgnUHVyZScpKSB7XG4gICAgICAgIGlmIChpbnB1dC5QdXJlLmxlbmd0aCA9PT0gU1VJX0FERFJFU1NfTEVOR1RIKSB7XG4gICAgICAgICAgY29uc3QgYWRkcmVzcyA9IG5vcm1hbGl6ZVN1aUFkZHJlc3MoXG4gICAgICAgICAgICBidWlsZGVyLmRlKEJDUy5BRERSRVNTLCBCdWZmZXIuZnJvbShpbnB1dC5QdXJlKS50b1N0cmluZygnYmFzZTY0JyksICdiYXNlNjQnKVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIElucHV0cy5QdXJlKGFkZHJlc3MsIEJDUy5BRERSRVNTKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBhbW91bnQgPSBidWlsZGVyLmRlKEJDUy5VNjQsIEJ1ZmZlci5mcm9tKGlucHV0LlB1cmUpLnRvU3RyaW5nKCdiYXNlNjQnKSwgJ2Jhc2U2NCcpO1xuICAgICAgICAgIHJldHVybiBJbnB1dHMuUHVyZShhbW91bnQsIEJDUy5VNjQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoaW5wdXQua2luZCA9PT0gJ0lucHV0JyAmJiAoaW5wdXQudmFsdWUuaGFzT3duUHJvcGVydHkoJ09iamVjdCcpIHx8IGlucHV0LnZhbHVlLmhhc093blByb3BlcnR5KCdQdXJlJykpKSB7XG4gICAgICAgIHJldHVybiBpbnB1dC52YWx1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gd2hhdCdzIGxlZnQgaXMgdGhlIHB1cmUgbnVtYmVyIG9yIGFkZHJlc3Mgc3RyaW5nXG4gICAgICByZXR1cm4gSW5wdXRzLlB1cmUoaW5wdXQudmFsdWUsIGlucHV0LnR5cGUgPT09ICdwdXJlJyA/IEJDUy5VNjQgOiBCQ1MuQUREUkVTUyk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBwcm9ncmFtbWFibGVUeCA9IHtcbiAgICAgIGlucHV0czogaW5wdXRzLFxuICAgICAgdHJhbnNhY3Rpb25zOiB0aGlzLl9zdWlUcmFuc2FjdGlvbi50eC50cmFuc2FjdGlvbnMsXG4gICAgfSBhcyBXYWxydXNTdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb247XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2VuZGVyOiB0aGlzLl9zdWlUcmFuc2FjdGlvbi5zZW5kZXIsXG4gICAgICBleHBpcmF0aW9uOiB7IE5vbmU6IG51bGwgfSxcbiAgICAgIGdhc0RhdGE6IHRoaXMuX3N1aVRyYW5zYWN0aW9uLmdhc0RhdGEsXG4gICAgICBraW5kOiB7XG4gICAgICAgIFByb2dyYW1tYWJsZVRyYW5zYWN0aW9uOiBwcm9ncmFtbWFibGVUeCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgY29tcGxldGUgZXhwbGFuYXRpb24gZm9yIGEgc3Rha2luZyB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge1R4RGF0YX0ganNvbiBUaGUgdHJhbnNhY3Rpb24gZGF0YSBpbiBqc29uIGZvcm1hdFxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uRXhwbGFuYXRpb259IGV4cGxhbmF0aW9uUmVzdWx0IFRoZSB0cmFuc2FjdGlvbiBleHBsYW5hdGlvbiB0byBiZSBjb21wbGV0ZWRcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uRXhwbGFuYXRpb259XG4gICAqL1xuICBleHBsYWluQWRkRGVsZWdhdGlvblRyYW5zYWN0aW9uKGpzb246IFR4RGF0YSwgZXhwbGFuYXRpb25SZXN1bHQ6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24pOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgICBjb25zdCBvdXRwdXRzOiBUcmFuc2FjdGlvblJlY2lwaWVudFtdID0gW107XG4gICAgdGhpcy5zdWlUcmFuc2FjdGlvbi50eC50cmFuc2FjdGlvbnMuZm9yRWFjaCgodHJhbnNhY3Rpb24sIHR4SW5kZXgpID0+IHtcbiAgICAgIGlmIChTcGxpdENvaW5zVHJhbnNhY3Rpb24uaXModHJhbnNhY3Rpb24pKSB7XG4gICAgICAgIGNvbnN0IGFtb3VudElucHV0SWR4ID0gKHRyYW5zYWN0aW9uLmFtb3VudHNbMF0gYXMgVHJhbnNhY3Rpb25CbG9ja0lucHV0KS5pbmRleDtcbiAgICAgICAgY29uc3QgYW1vdW50ID0gQmlnSW50KCh0aGlzLnN1aVRyYW5zYWN0aW9uLnR4LmlucHV0c1thbW91bnRJbnB1dElkeF0gYXMgVHJhbnNhY3Rpb25CbG9ja0lucHV0KS52YWx1ZSk7XG5cbiAgICAgICAgLy8gRm9yIFdhbHJ1c1N0YWtlLCBldmVyeSBzcGxpdCBpcyBmb2xsb3dlZCBieSBhIG1vdmUgY2FsbFxuICAgICAgICBjb25zdCB2YWxpZGF0b3JBZGRyZXNzSW5wdXRJZHggPSAoXG4gICAgICAgICAgKHRoaXMuc3VpVHJhbnNhY3Rpb24udHgudHJhbnNhY3Rpb25zW3R4SW5kZXggKyAxXSBhcyBNb3ZlQ2FsbFRyYW5zYWN0aW9uKVxuICAgICAgICAgICAgLmFyZ3VtZW50c1syXSBhcyBUcmFuc2FjdGlvbkJsb2NrSW5wdXRcbiAgICAgICAgKS5pbmRleDtcbiAgICAgICAgY29uc3QgdmFsaWRhdG9yQWRkcmVzcyA9IHV0aWxzLmdldEFkZHJlc3MoXG4gICAgICAgICAgdGhpcy5zdWlUcmFuc2FjdGlvbi50eC5pbnB1dHNbdmFsaWRhdG9yQWRkcmVzc0lucHV0SWR4XSBhcyBUcmFuc2FjdGlvbkJsb2NrSW5wdXRcbiAgICAgICAgKTtcblxuICAgICAgICBvdXRwdXRzLnB1c2goe1xuICAgICAgICAgIGFkZHJlc3M6IHZhbGlkYXRvckFkZHJlc3MsXG4gICAgICAgICAgYW1vdW50OiBhbW91bnQudG9TdHJpbmcoMTApLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IG91dHB1dEFtb3VudCA9IG91dHB1dHMucmVkdWNlKChzdW0sIG91dHB1dCkgPT4gc3VtICsgQmlnSW50KG91dHB1dC5hbW91bnQpLCBCaWdJbnQoMCkpLnRvU3RyaW5nKDEwKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5leHBsYW5hdGlvblJlc3VsdCxcbiAgICAgIG91dHB1dEFtb3VudCxcbiAgICAgIG91dHB1dHMsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW5wdXRPYmplY3RzRnJvbVR4KHR4OiBXYWxydXNTdGFraW5nUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24pOiBTdWlPYmplY3RSZWZbXSB7XG4gICAgY29uc3QgaW5wdXRzID0gdHguaW5wdXRzO1xuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdHgudHJhbnNhY3Rpb25zWzBdIGFzIFN1aVRyYW5zYWN0aW9uQmxvY2tUeXBlO1xuXG4gICAgbGV0IGFyZ3M6IFRyYW5zYWN0aW9uQXJndW1lbnRbXSA9IFtdO1xuICAgIGlmICh0cmFuc2FjdGlvbi5raW5kID09PSAnTWVyZ2VDb2lucycpIHtcbiAgICAgIGNvbnN0IHsgZGVzdGluYXRpb24sIHNvdXJjZXMgfSA9IHRyYW5zYWN0aW9uO1xuICAgICAgYXJncyA9IFtkZXN0aW5hdGlvbiwgLi4uc291cmNlc107XG4gICAgfSBlbHNlIGlmICh0cmFuc2FjdGlvbi5raW5kID09PSAnU3BsaXRDb2lucycpIHtcbiAgICAgIGFyZ3MgPSBbdHJhbnNhY3Rpb24uY29pbl07XG4gICAgfVxuXG4gICAgY29uc3QgaW5wdXRPYmplY3RzOiBTdWlPYmplY3RSZWZbXSA9IFtdO1xuICAgIGFyZ3MuZm9yRWFjaCgoYXJnKSA9PiB7XG4gICAgICBpZiAoYXJnLmtpbmQgPT09ICdJbnB1dCcpIHtcbiAgICAgICAgbGV0IGlucHV0ID0gaW5wdXRzW2FyZy5pbmRleF07XG4gICAgICAgIGlmICgndmFsdWUnIGluIGlucHV0KSB7XG4gICAgICAgICAgaW5wdXQgPSBpbnB1dC52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoJ09iamVjdCcgaW4gaW5wdXQgJiYgaXNJbW1Pck93bmVkT2JqKGlucHV0Lk9iamVjdCkpIHtcbiAgICAgICAgICBpbnB1dE9iamVjdHMucHVzaChpbnB1dC5PYmplY3QuSW1tT3JPd25lZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBpbnB1dE9iamVjdHM7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { SuiTransaction, RequestWalrusWithdrawStake, WalrusWithdrawStakeProgrammableTransaction } from './iface';
|
|
2
|
+
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
3
|
+
import { TransactionBuilder } from './transactionBuilder';
|
|
4
|
+
import { BaseKey, TransactionType } from '@bitgo-beta/sdk-core';
|
|
5
|
+
import { TransferTransaction } from './transferTransaction';
|
|
6
|
+
import { Transaction } from './transaction';
|
|
7
|
+
export declare class WalrusWithdrawStakeBuilder extends TransactionBuilder<WalrusWithdrawStakeProgrammableTransaction> {
|
|
8
|
+
protected _withdrawStake: RequestWalrusWithdrawStake;
|
|
9
|
+
private walrusConfig;
|
|
10
|
+
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
11
|
+
/**
|
|
12
|
+
* Get staking transaction type
|
|
13
|
+
*
|
|
14
|
+
* @return {TransactionType}
|
|
15
|
+
* @protected
|
|
16
|
+
*/
|
|
17
|
+
protected get transactionType(): TransactionType;
|
|
18
|
+
/** @inheritDoc */
|
|
19
|
+
validateTransaction(transaction: TransferTransaction): void;
|
|
20
|
+
/** @inheritDoc */
|
|
21
|
+
sign(key: BaseKey): void;
|
|
22
|
+
/**
|
|
23
|
+
* Create a new transaction for requesting coin withdrawal, ready to be signed and executed.
|
|
24
|
+
*
|
|
25
|
+
* @param request - the request object
|
|
26
|
+
*/
|
|
27
|
+
requestWithdrawStake(request: RequestWalrusWithdrawStake): this;
|
|
28
|
+
/** @inheritDoc */
|
|
29
|
+
protected fromImplementation(rawTransaction: string): Transaction<WalrusWithdrawStakeProgrammableTransaction>;
|
|
30
|
+
/** @inheritDoc */
|
|
31
|
+
protected buildImplementation(): Promise<Transaction<WalrusWithdrawStakeProgrammableTransaction>>;
|
|
32
|
+
initBuilder(tx: Transaction<WalrusWithdrawStakeProgrammableTransaction>): void;
|
|
33
|
+
private validateTransactionFields;
|
|
34
|
+
protected buildSuiTransaction(): SuiTransaction<WalrusWithdrawStakeProgrammableTransaction>;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=walrusWithdrawStakeBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walrusWithdrawStakeBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/walrusWithdrawStakeBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,0BAA0B,EAC1B,0CAA0C,EAE3C,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAe,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAK1D,OAAO,EAAE,OAAO,EAAyB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAU5C,qBAAa,0BAA2B,SAAQ,kBAAkB,CAAC,0CAA0C,CAAC;IAC5G,SAAS,CAAC,cAAc,EAAE,0BAA0B,CAAC;IAErD,OAAO,CAAC,YAAY,CAAM;gBAEd,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAQ7C;;;;;OAKG;IACH,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,EAAE,mBAAmB,GAAG,IAAI;IAO3D,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,OAAO;IAKjB;;;;OAIG;IACH,oBAAoB,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;IAW/D,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW,CAAC,0CAA0C,CAAC;IAQ7G,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC,0CAA0C,CAAC,CAAC;IAgBvG,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,0CAA0C,CAAC,GAAG,IAAI;IAsB9E,OAAO,CAAC,yBAAyB;IAQjC,SAAS,CAAC,mBAAmB,IAAI,cAAc,CAAC,0CAA0C,CAAC;CAiE5F"}
|