@bitgo-beta/sdk-coin-sol 2.4.3-beta.52 → 2.4.3-beta.521

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/CHANGELOG.md +778 -0
  2. package/dist/src/index.js +6 -2
  3. package/dist/src/lib/ataInitializationBuilder.js +16 -12
  4. package/dist/src/lib/closeAtaBuilder.d.ts +19 -0
  5. package/dist/src/lib/closeAtaBuilder.d.ts.map +1 -0
  6. package/dist/src/lib/closeAtaBuilder.js +69 -0
  7. package/dist/src/lib/constants.d.ts +29 -7
  8. package/dist/src/lib/constants.d.ts.map +1 -1
  9. package/dist/src/lib/constants.js +31 -7
  10. package/dist/src/lib/iface.d.ts +45 -3
  11. package/dist/src/lib/iface.d.ts.map +1 -1
  12. package/dist/src/lib/iface.js +1 -1
  13. package/dist/src/lib/index.d.ts +11 -7
  14. package/dist/src/lib/index.d.ts.map +1 -1
  15. package/dist/src/lib/index.js +27 -15
  16. package/dist/src/lib/instructionParamsFactory.d.ts.map +1 -1
  17. package/dist/src/lib/instructionParamsFactory.js +272 -32
  18. package/dist/src/lib/keyPair.js +5 -5
  19. package/dist/src/lib/solInstructionFactory.d.ts.map +1 -1
  20. package/dist/src/lib/solInstructionFactory.js +105 -35
  21. package/dist/src/lib/stakingActivateBuilder.d.ts +2 -2
  22. package/dist/src/lib/stakingActivateBuilder.js +10 -10
  23. package/dist/src/lib/stakingAuthorizeBuilder.d.ts +43 -0
  24. package/dist/src/lib/stakingAuthorizeBuilder.d.ts.map +1 -0
  25. package/dist/src/lib/stakingAuthorizeBuilder.js +89 -0
  26. package/dist/src/lib/stakingDeactivateBuilder.d.ts +10 -0
  27. package/dist/src/lib/stakingDeactivateBuilder.d.ts.map +1 -1
  28. package/dist/src/lib/stakingDeactivateBuilder.js +71 -24
  29. package/dist/src/lib/stakingDelegateBuilder.d.ts +42 -0
  30. package/dist/src/lib/stakingDelegateBuilder.d.ts.map +1 -0
  31. package/dist/src/lib/stakingDelegateBuilder.js +120 -0
  32. package/dist/src/lib/stakingRawMsgAuthorizeBuilder.d.ts +33 -0
  33. package/dist/src/lib/stakingRawMsgAuthorizeBuilder.d.ts.map +1 -0
  34. package/dist/src/lib/stakingRawMsgAuthorizeBuilder.js +110 -0
  35. package/dist/src/lib/stakingWithdrawBuilder.js +6 -6
  36. package/dist/src/lib/tokenTransferBuilder.js +13 -13
  37. package/dist/src/lib/transaction.d.ts +3 -2
  38. package/dist/src/lib/transaction.d.ts.map +1 -1
  39. package/dist/src/lib/transaction.js +94 -12
  40. package/dist/src/lib/transactionBuilder.js +16 -16
  41. package/dist/src/lib/transactionBuilderFactory.d.ts +36 -7
  42. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  43. package/dist/src/lib/transactionBuilderFactory.js +56 -7
  44. package/dist/src/lib/transferBuilder.js +4 -4
  45. package/dist/src/lib/transferBuilderV2.d.ts +11 -1
  46. package/dist/src/lib/transferBuilderV2.d.ts.map +1 -1
  47. package/dist/src/lib/transferBuilderV2.js +56 -10
  48. package/dist/src/lib/utils.d.ts +13 -4
  49. package/dist/src/lib/utils.d.ts.map +1 -1
  50. package/dist/src/lib/utils.js +87 -20
  51. package/dist/src/lib/walletInitializationBuilder.js +6 -6
  52. package/dist/src/sol.d.ts +66 -24
  53. package/dist/src/sol.d.ts.map +1 -1
  54. package/dist/src/sol.js +578 -69
  55. package/package.json +10 -9
@@ -0,0 +1,89 @@
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.StakingAuthorizeBuilder = void 0;
7
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
+ const transactionBuilder_1 = require("./transactionBuilder");
9
+ const constants_1 = require("./constants");
10
+ const assert_1 = __importDefault(require("assert"));
11
+ const utils_1 = require("./utils");
12
+ class StakingAuthorizeBuilder extends transactionBuilder_1.TransactionBuilder {
13
+ constructor(_coinConfig) {
14
+ super(_coinConfig);
15
+ }
16
+ get transactionType() {
17
+ return sdk_core_1.TransactionType.StakingAuthorize;
18
+ }
19
+ /** @inheritdoc */
20
+ initBuilder(tx) {
21
+ super.initBuilder(tx);
22
+ for (const instruction of this._instructionsData) {
23
+ if (instruction.type === constants_1.InstructionBuilderTypes.StakingAuthorize) {
24
+ const AuthorizeInstruction = instruction;
25
+ this.stakingAddress(AuthorizeInstruction.params.stakingAddress);
26
+ this.newAuthorizedAddress(AuthorizeInstruction.params.newAuthorizeAddress);
27
+ this.oldAuthorizedAddress(AuthorizeInstruction.params.oldAuthorizeAddress);
28
+ }
29
+ }
30
+ }
31
+ /**
32
+ * The address of the staking account.
33
+ *
34
+ * @param {string} stakingAddress public address of the staking account.
35
+ * @returns {StakeBuilder} This staking builder.
36
+ *
37
+ * @see https://docs.solana.com/staking/stake-accounts#account-address
38
+ */
39
+ stakingAddress(stakingAddress) {
40
+ (0, utils_1.validateAddress)(stakingAddress, 'stakingAddress');
41
+ this._stakingAddress = stakingAddress;
42
+ return this;
43
+ }
44
+ /**
45
+ * The address of the new staking account authorization.
46
+ *
47
+ * @param {string} stakingAddress public address of the staking account.
48
+ * @returns {StakeBuilder} This staking builder.
49
+ *
50
+ * @see https://docs.solana.com/staking/stake-accounts#account-address
51
+ */
52
+ newAuthorizedAddress(newAuthorizedAddress) {
53
+ (0, utils_1.validateAddress)(newAuthorizedAddress, 'newAuthorizedAddress');
54
+ this._newAuthorizedAddress = newAuthorizedAddress;
55
+ return this;
56
+ }
57
+ /**
58
+ * The address of the new staking account authorization.
59
+ *
60
+ * @param {string} stakingAddress public address of the staking account.
61
+ * @returns {StakeBuilder} This staking builder.
62
+ *
63
+ * @see https://docs.solana.com/staking/stake-accounts#account-address
64
+ */
65
+ oldAuthorizedAddress(oldAuthorizedAddress) {
66
+ (0, utils_1.validateAddress)(oldAuthorizedAddress, 'oldAuthorizedAddress');
67
+ this._oldAuthorizedAddress = oldAuthorizedAddress;
68
+ return this;
69
+ }
70
+ /** @inheritdoc */
71
+ async buildImplementation() {
72
+ (0, assert_1.default)(this._stakingAddress, 'Staking Address must be set before building the transaction');
73
+ (0, assert_1.default)(this._newAuthorizedAddress, 'new authorized Address must be set before building the transaction');
74
+ (0, assert_1.default)(this._oldAuthorizedAddress, 'old authorized Address must be set before building the transaction');
75
+ const stakingAccountData = {
76
+ type: constants_1.InstructionBuilderTypes.StakingAuthorize,
77
+ params: {
78
+ stakingAddress: this._stakingAddress,
79
+ newWithdrawAddress: this._newAuthorizedAddress,
80
+ newAuthorizeAddress: this._newAuthorizedAddress,
81
+ oldAuthorizeAddress: this._oldAuthorizedAddress,
82
+ },
83
+ };
84
+ this._instructionsData = [stakingAccountData];
85
+ return await super.buildImplementation();
86
+ }
87
+ }
88
+ exports.StakingAuthorizeBuilder = StakingAuthorizeBuilder;
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ0F1dGhvcml6ZUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3N0YWtpbmdBdXRob3JpemVCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLG1EQUF1RDtBQUV2RCw2REFBMEQ7QUFDMUQsMkNBQXNEO0FBRXRELG9EQUE0QjtBQUU1QixtQ0FBMEM7QUFFMUMsTUFBYSx1QkFBd0IsU0FBUSx1Q0FBa0I7SUFLN0QsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsZ0JBQWdCLENBQUM7SUFDMUMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixXQUFXLENBQUMsRUFBZTtRQUN6QixLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLEtBQUssTUFBTSxXQUFXLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ2hELElBQUksV0FBVyxDQUFDLElBQUksS0FBSyxtQ0FBdUIsQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDakUsTUFBTSxvQkFBb0IsR0FBcUIsV0FBVyxDQUFDO2dCQUMzRCxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDaEUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2dCQUMzRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7YUFDNUU7U0FDRjtJQUNILENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsY0FBYyxDQUFDLGNBQXNCO1FBQ25DLElBQUEsdUJBQWUsRUFBQyxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsb0JBQW9CLENBQUMsb0JBQTRCO1FBQy9DLElBQUEsdUJBQWUsRUFBQyxvQkFBb0IsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxvQkFBb0IsQ0FBQztRQUNsRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsb0JBQW9CLENBQUMsb0JBQTRCO1FBQy9DLElBQUEsdUJBQWUsRUFBQyxvQkFBb0IsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxvQkFBb0IsQ0FBQztRQUNsRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxrQkFBa0I7SUFDUixLQUFLLENBQUMsbUJBQW1CO1FBQ2pDLElBQUEsZ0JBQU0sRUFBQyxJQUFJLENBQUMsZUFBZSxFQUFFLDZEQUE2RCxDQUFDLENBQUM7UUFDNUYsSUFBQSxnQkFBTSxFQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxvRUFBb0UsQ0FBQyxDQUFDO1FBQ3pHLElBQUEsZ0JBQU0sRUFBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsb0VBQW9FLENBQUMsQ0FBQztRQUV6RyxNQUFNLGtCQUFrQixHQUFxQjtZQUMzQyxJQUFJLEVBQUUsbUNBQXVCLENBQUMsZ0JBQWdCO1lBQzlDLE1BQU0sRUFBRTtnQkFDTixjQUFjLEVBQUUsSUFBSSxDQUFDLGVBQWU7Z0JBQ3BDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxxQkFBcUI7Z0JBQzlDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxxQkFBcUI7Z0JBQy9DLG1CQUFtQixFQUFFLElBQUksQ0FBQyxxQkFBcUI7YUFDaEQ7U0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUU5QyxPQUFPLE1BQU0sS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDM0MsQ0FBQztDQUNGO0FBdkZELDBEQXVGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcyB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgU3Rha2luZ0F1dGhvcml6ZSB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgdmFsaWRhdGVBZGRyZXNzIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBTdGFraW5nQXV0aG9yaXplQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfc3Rha2luZ0FkZHJlc3M6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9uZXdBdXRob3JpemVkQWRkcmVzczogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX29sZEF1dGhvcml6ZWRBZGRyZXNzOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdBdXRob3JpemU7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgIGZvciAoY29uc3QgaW5zdHJ1Y3Rpb24gb2YgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YSkge1xuICAgICAgaWYgKGluc3RydWN0aW9uLnR5cGUgPT09IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlN0YWtpbmdBdXRob3JpemUpIHtcbiAgICAgICAgY29uc3QgQXV0aG9yaXplSW5zdHJ1Y3Rpb246IFN0YWtpbmdBdXRob3JpemUgPSBpbnN0cnVjdGlvbjtcbiAgICAgICAgdGhpcy5zdGFraW5nQWRkcmVzcyhBdXRob3JpemVJbnN0cnVjdGlvbi5wYXJhbXMuc3Rha2luZ0FkZHJlc3MpO1xuICAgICAgICB0aGlzLm5ld0F1dGhvcml6ZWRBZGRyZXNzKEF1dGhvcml6ZUluc3RydWN0aW9uLnBhcmFtcy5uZXdBdXRob3JpemVBZGRyZXNzKTtcbiAgICAgICAgdGhpcy5vbGRBdXRob3JpemVkQWRkcmVzcyhBdXRob3JpemVJbnN0cnVjdGlvbi5wYXJhbXMub2xkQXV0aG9yaXplQWRkcmVzcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBhZGRyZXNzIG9mIHRoZSBzdGFraW5nIGFjY291bnQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdGFraW5nQWRkcmVzcyBwdWJsaWMgYWRkcmVzcyBvZiB0aGUgc3Rha2luZyBhY2NvdW50LlxuICAgKiBAcmV0dXJucyB7U3Rha2VCdWlsZGVyfSBUaGlzIHN0YWtpbmcgYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3Muc29sYW5hLmNvbS9zdGFraW5nL3N0YWtlLWFjY291bnRzI2FjY291bnQtYWRkcmVzc1xuICAgKi9cbiAgc3Rha2luZ0FkZHJlc3Moc3Rha2luZ0FkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIHZhbGlkYXRlQWRkcmVzcyhzdGFraW5nQWRkcmVzcywgJ3N0YWtpbmdBZGRyZXNzJyk7XG4gICAgdGhpcy5fc3Rha2luZ0FkZHJlc3MgPSBzdGFraW5nQWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYWRkcmVzcyBvZiB0aGUgbmV3IHN0YWtpbmcgYWNjb3VudCBhdXRob3JpemF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3Rha2luZ0FkZHJlc3MgcHVibGljIGFkZHJlc3Mgb2YgdGhlIHN0YWtpbmcgYWNjb3VudC5cbiAgICogQHJldHVybnMge1N0YWtlQnVpbGRlcn0gVGhpcyBzdGFraW5nIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLnNvbGFuYS5jb20vc3Rha2luZy9zdGFrZS1hY2NvdW50cyNhY2NvdW50LWFkZHJlc3NcbiAgICovXG4gIG5ld0F1dGhvcml6ZWRBZGRyZXNzKG5ld0F1dGhvcml6ZWRBZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB2YWxpZGF0ZUFkZHJlc3MobmV3QXV0aG9yaXplZEFkZHJlc3MsICduZXdBdXRob3JpemVkQWRkcmVzcycpO1xuICAgIHRoaXMuX25ld0F1dGhvcml6ZWRBZGRyZXNzID0gbmV3QXV0aG9yaXplZEFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGFkZHJlc3Mgb2YgdGhlIG5ldyBzdGFraW5nIGFjY291bnQgYXV0aG9yaXphdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0YWtpbmdBZGRyZXNzIHB1YmxpYyBhZGRyZXNzIG9mIHRoZSBzdGFraW5nIGFjY291bnQuXG4gICAqIEByZXR1cm5zIHtTdGFrZUJ1aWxkZXJ9IFRoaXMgc3Rha2luZyBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5zb2xhbmEuY29tL3N0YWtpbmcvc3Rha2UtYWNjb3VudHMjYWNjb3VudC1hZGRyZXNzXG4gICAqL1xuICBvbGRBdXRob3JpemVkQWRkcmVzcyhvbGRBdXRob3JpemVkQWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgdmFsaWRhdGVBZGRyZXNzKG9sZEF1dGhvcml6ZWRBZGRyZXNzLCAnb2xkQXV0aG9yaXplZEFkZHJlc3MnKTtcbiAgICB0aGlzLl9vbGRBdXRob3JpemVkQWRkcmVzcyA9IG9sZEF1dGhvcml6ZWRBZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBhc3NlcnQodGhpcy5fc3Rha2luZ0FkZHJlc3MsICdTdGFraW5nIEFkZHJlc3MgbXVzdCBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvbicpO1xuICAgIGFzc2VydCh0aGlzLl9uZXdBdXRob3JpemVkQWRkcmVzcywgJ25ldyBhdXRob3JpemVkIEFkZHJlc3MgbXVzdCBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvbicpO1xuICAgIGFzc2VydCh0aGlzLl9vbGRBdXRob3JpemVkQWRkcmVzcywgJ29sZCBhdXRob3JpemVkIEFkZHJlc3MgbXVzdCBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvbicpO1xuXG4gICAgY29uc3Qgc3Rha2luZ0FjY291bnREYXRhOiBTdGFraW5nQXV0aG9yaXplID0ge1xuICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuU3Rha2luZ0F1dGhvcml6ZSxcbiAgICAgIHBhcmFtczoge1xuICAgICAgICBzdGFraW5nQWRkcmVzczogdGhpcy5fc3Rha2luZ0FkZHJlc3MsXG4gICAgICAgIG5ld1dpdGhkcmF3QWRkcmVzczogdGhpcy5fbmV3QXV0aG9yaXplZEFkZHJlc3MsXG4gICAgICAgIG5ld0F1dGhvcml6ZUFkZHJlc3M6IHRoaXMuX25ld0F1dGhvcml6ZWRBZGRyZXNzLFxuICAgICAgICBvbGRBdXRob3JpemVBZGRyZXNzOiB0aGlzLl9vbGRBdXRob3JpemVkQWRkcmVzcyxcbiAgICAgIH0sXG4gICAgfTtcbiAgICB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhID0gW3N0YWtpbmdBY2NvdW50RGF0YV07XG5cbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICB9XG59XG4iXX0=
@@ -4,6 +4,7 @@ import { Transaction } from './transaction';
4
4
  import { TransactionBuilder } from './transactionBuilder';
5
5
  export declare class StakingDeactivateBuilder extends TransactionBuilder {
6
6
  protected _stakingAddress: string;
7
+ protected _stakingAddresses: string[];
7
8
  protected _amount?: string;
8
9
  protected _unstakingAddress: string;
9
10
  constructor(_coinConfig: Readonly<CoinConfig>);
@@ -19,6 +20,15 @@ export declare class StakingDeactivateBuilder extends TransactionBuilder {
19
20
  * @see https://docs.solana.com/staking/stake-accounts#account-address
20
21
  */
21
22
  stakingAddress(stakingAddress: string): this;
23
+ /**
24
+ * The staking addresses of the staking account.
25
+ *
26
+ * @param {string[]} stakingAddresses public address of the staking accounts
27
+ * @returns {StakingDeactivateBuilder} This staking deactivate builder.
28
+ *
29
+ * @see https://docs.solana.com/staking/stake-accounts#account-address
30
+ */
31
+ stakingAddresses(stakingAddresses: string[]): this;
22
32
  /**
23
33
  * Optional amount to unstake expressed in Lamports, 1 SOL = 1_000_000_000 lamports, to be used
24
34
  * when partially unstaking. If not given then the entire staked amount will be unstaked.
@@ -1 +1 @@
1
- {"version":3,"file":"stakingDeactivateBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/stakingDeactivateBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAG7D,OAAO,EAAyB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG9E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,qBAAa,wBAAyB,SAAQ,kBAAkB;IAC9D,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC;gBAExB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAelC;;;;;;;OAOG;IACH,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAM5C;;;;;;;;OAQG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ5B;;;;;;;;OAQG;IACH,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI;IAMhD,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;CAmC5D"}
1
+ {"version":3,"file":"stakingDeactivateBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/stakingDeactivateBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAG7D,OAAO,EAAyB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG9E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,qBAAa,wBAAyB,SAAQ,kBAAkB;IAC9D,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IACtC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC;gBAExB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAqBlC;;;;;;;OAOG;IACH,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAM5C;;;;;;;OAOG;IACH,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,EAAE,GAAG,IAAI;IAQlD;;;;;;;;OAQG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ5B;;;;;;;;OAQG;IACH,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI;IAMhD,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;CA0D5D"}
@@ -19,17 +19,24 @@ class StakingDeactivateBuilder extends transactionBuilder_1.TransactionBuilder {
19
19
  /** @inheritdoc */
20
20
  initBuilder(tx) {
21
21
  super.initBuilder(tx);
22
+ const stakingAddresses = [];
22
23
  for (const instruction of this._instructionsData) {
23
24
  if (instruction.type === constants_1.InstructionBuilderTypes.StakingDeactivate) {
24
25
  const deactivateInstruction = instruction;
25
26
  this.sender(deactivateInstruction.params.fromAddress);
26
- this.stakingAddress(deactivateInstruction.params.stakingAddress);
27
+ stakingAddresses.push(deactivateInstruction.params.stakingAddress);
27
28
  if (deactivateInstruction.params.amount && deactivateInstruction.params.unstakingAddress) {
28
29
  this.amount(deactivateInstruction.params.amount);
29
30
  this.unstakingAddress(deactivateInstruction.params.unstakingAddress);
30
31
  }
31
32
  }
32
33
  }
34
+ if (stakingAddresses.length > 1) {
35
+ this.stakingAddresses(stakingAddresses);
36
+ }
37
+ else {
38
+ this.stakingAddress(stakingAddresses[0]);
39
+ }
33
40
  }
34
41
  /**
35
42
  * The staking address of the staking account.
@@ -40,10 +47,25 @@ class StakingDeactivateBuilder extends transactionBuilder_1.TransactionBuilder {
40
47
  * @see https://docs.solana.com/staking/stake-accounts#account-address
41
48
  */
42
49
  stakingAddress(stakingAddress) {
43
- utils_1.validateAddress(stakingAddress, 'stakingAddress');
50
+ (0, utils_1.validateAddress)(stakingAddress, 'stakingAddress');
44
51
  this._stakingAddress = stakingAddress;
45
52
  return this;
46
53
  }
54
+ /**
55
+ * The staking addresses of the staking account.
56
+ *
57
+ * @param {string[]} stakingAddresses public address of the staking accounts
58
+ * @returns {StakingDeactivateBuilder} This staking deactivate builder.
59
+ *
60
+ * @see https://docs.solana.com/staking/stake-accounts#account-address
61
+ */
62
+ stakingAddresses(stakingAddresses) {
63
+ for (const stakingAddress of stakingAddresses) {
64
+ (0, utils_1.validateAddress)(stakingAddress, 'stakingAddress');
65
+ }
66
+ this._stakingAddresses = stakingAddresses;
67
+ return this;
68
+ }
47
69
  /**
48
70
  * Optional amount to unstake expressed in Lamports, 1 SOL = 1_000_000_000 lamports, to be used
49
71
  * when partially unstaking. If not given then the entire staked amount will be unstaked.
@@ -54,7 +76,7 @@ class StakingDeactivateBuilder extends transactionBuilder_1.TransactionBuilder {
54
76
  * @see https://docs.solana.com/cli/delegate-stake#split-stake
55
77
  */
56
78
  amount(amount) {
57
- if (!utils_1.isValidStakingAmount(amount)) {
79
+ if (!(0, utils_1.isValidStakingAmount)(amount)) {
58
80
  throw new sdk_core_1.BuildTransactionError('If given, amount cannot be zero or less');
59
81
  }
60
82
  this._amount = amount;
@@ -70,35 +92,60 @@ class StakingDeactivateBuilder extends transactionBuilder_1.TransactionBuilder {
70
92
  * @see https://docs.solana.com/cli/delegate-stake#split-stake
71
93
  */
72
94
  unstakingAddress(unstakingAddress) {
73
- utils_1.validateAddress(unstakingAddress, 'unstakingAddress');
95
+ (0, utils_1.validateAddress)(unstakingAddress, 'unstakingAddress');
74
96
  this._unstakingAddress = unstakingAddress;
75
97
  return this;
76
98
  }
77
99
  /** @inheritdoc */
78
100
  async buildImplementation() {
79
- assert_1.default(this._sender, 'Sender must be set before building the transaction');
80
- assert_1.default(this._stakingAddress, 'Staking address must be set before building the transaction');
81
- if (this._sender === this._stakingAddress) {
82
- throw new sdk_core_1.BuildTransactionError('Sender address cannot be the same as the Staking address');
83
- }
84
- if (this._amount) {
85
- assert_1.default(this._unstakingAddress, 'When partially unstaking the unstaking address must be set before building the transaction');
101
+ (0, assert_1.default)(this._sender, 'Sender must be set before building the transaction');
102
+ if (this._stakingAddresses && this._stakingAddresses.length > 0) {
103
+ this._instructionsData = [];
104
+ for (const stakingAddress of this._stakingAddresses) {
105
+ const stakingDeactivateData = {
106
+ type: constants_1.InstructionBuilderTypes.StakingDeactivate,
107
+ params: {
108
+ fromAddress: this._sender,
109
+ stakingAddress: stakingAddress,
110
+ },
111
+ };
112
+ this._instructionsData.push(stakingDeactivateData);
113
+ }
86
114
  }
87
- if (this._unstakingAddress) {
88
- assert_1.default(this._amount, 'If an unstaking address is given then a partial amount to unstake must also be set before building the transaction');
115
+ else {
116
+ (0, assert_1.default)(this._stakingAddress, 'Staking address must be set before building the transaction');
117
+ if (this._sender === this._stakingAddress) {
118
+ throw new sdk_core_1.BuildTransactionError('Sender address cannot be the same as the Staking address');
119
+ }
120
+ if (this._amount) {
121
+ (0, assert_1.default)(this._unstakingAddress, 'When partially unstaking the unstaking address must be set before building the transaction');
122
+ }
123
+ this._instructionsData = [];
124
+ if (this._unstakingAddress) {
125
+ (0, assert_1.default)(this._amount, 'If an unstaking address is given then a partial amount to unstake must also be set before building the transaction');
126
+ const stakingFundUnstakeAddress = {
127
+ type: constants_1.InstructionBuilderTypes.Transfer,
128
+ params: {
129
+ fromAddress: this._sender,
130
+ amount: constants_1.STAKE_ACCOUNT_RENT_EXEMPT_AMOUNT.toString(),
131
+ toAddress: this._unstakingAddress,
132
+ },
133
+ };
134
+ this._instructionsData.push(stakingFundUnstakeAddress);
135
+ }
136
+ const stakingDeactivateData = {
137
+ type: constants_1.InstructionBuilderTypes.StakingDeactivate,
138
+ params: {
139
+ fromAddress: this._sender,
140
+ stakingAddress: this._stakingAddress,
141
+ amount: this._amount,
142
+ unstakingAddress: this._unstakingAddress,
143
+ },
144
+ };
145
+ this._instructionsData.push(stakingDeactivateData);
89
146
  }
90
- const stakingDeactivateData = {
91
- type: constants_1.InstructionBuilderTypes.StakingDeactivate,
92
- params: {
93
- fromAddress: this._sender,
94
- stakingAddress: this._stakingAddress,
95
- amount: this._amount,
96
- unstakingAddress: this._unstakingAddress,
97
- },
98
- };
99
- this._instructionsData = [stakingDeactivateData];
100
147
  return await super.buildImplementation();
101
148
  }
102
149
  }
103
150
  exports.StakingDeactivateBuilder = StakingDeactivateBuilder;
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0Esb0RBQTRCO0FBRTVCLG1EQUE4RTtBQUM5RSwyQ0FBc0Q7QUFHdEQsNkRBQTBEO0FBQzFELG1DQUFnRTtBQUVoRSxNQUFhLHdCQUF5QixTQUFRLHVDQUFrQjtJQUs5RCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQyxpQkFBaUIsQ0FBQztJQUMzQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFdBQVcsQ0FBQyxFQUFlO1FBQ3pCLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEIsS0FBSyxNQUFNLFdBQVcsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDaEQsSUFBSSxXQUFXLENBQUMsSUFBSSxLQUFLLG1DQUF1QixDQUFDLGlCQUFpQixFQUFFO2dCQUNsRSxNQUFNLHFCQUFxQixHQUFzQixXQUFXLENBQUM7Z0JBQzdELElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUN0RCxJQUFJLENBQUMsY0FBYyxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDakUsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRTtvQkFDeEYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ2pELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztpQkFDdEU7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxjQUFjLENBQUMsY0FBc0I7UUFDbkMsdUJBQWUsQ0FBQyxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILE1BQU0sQ0FBQyxNQUFjO1FBQ25CLElBQUksQ0FBQyw0QkFBb0IsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNqQyxNQUFNLElBQUksZ0NBQXFCLENBQUMseUNBQXlDLENBQUMsQ0FBQztTQUM1RTtRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsZ0JBQWdCLENBQUMsZ0JBQXdCO1FBQ3ZDLHVCQUFlLENBQUMsZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsa0JBQWtCO0lBQ1IsS0FBSyxDQUFDLG1CQUFtQjtRQUNqQyxnQkFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsb0RBQW9ELENBQUMsQ0FBQztRQUMzRSxnQkFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsNkRBQTZELENBQUMsQ0FBQztRQUU1RixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN6QyxNQUFNLElBQUksZ0NBQXFCLENBQUMsMERBQTBELENBQUMsQ0FBQztTQUM3RjtRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixnQkFBTSxDQUNKLElBQUksQ0FBQyxpQkFBaUIsRUFDdEIsNEZBQTRGLENBQzdGLENBQUM7U0FDSDtRQUVELElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLGdCQUFNLENBQ0osSUFBSSxDQUFDLE9BQU8sRUFDWixvSEFBb0gsQ0FDckgsQ0FBQztTQUNIO1FBRUQsTUFBTSxxQkFBcUIsR0FBc0I7WUFDL0MsSUFBSSxFQUFFLG1DQUF1QixDQUFDLGlCQUFpQjtZQUMvQyxNQUFNLEVBQUU7Z0JBQ04sV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPO2dCQUN6QixjQUFjLEVBQUUsSUFBSSxDQUFDLGVBQWU7Z0JBQ3BDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTztnQkFDcEIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjthQUN6QztTQUNGLENBQUM7UUFDRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRWpELE9BQU8sTUFBTSxLQUFLLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0NBQ0Y7QUEvR0QsNERBK0dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgeyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEluc3RydWN0aW9uQnVpbGRlclR5cGVzIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgU3Rha2luZ0RlYWN0aXZhdGUgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBpc1ZhbGlkU3Rha2luZ0Ftb3VudCwgdmFsaWRhdGVBZGRyZXNzIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBTdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX3N0YWtpbmdBZGRyZXNzOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfYW1vdW50Pzogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3Vuc3Rha2luZ0FkZHJlc3M6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0RlYWN0aXZhdGU7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgIGZvciAoY29uc3QgaW5zdHJ1Y3Rpb24gb2YgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YSkge1xuICAgICAgaWYgKGluc3RydWN0aW9uLnR5cGUgPT09IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlN0YWtpbmdEZWFjdGl2YXRlKSB7XG4gICAgICAgIGNvbnN0IGRlYWN0aXZhdGVJbnN0cnVjdGlvbjogU3Rha2luZ0RlYWN0aXZhdGUgPSBpbnN0cnVjdGlvbjtcbiAgICAgICAgdGhpcy5zZW5kZXIoZGVhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy5mcm9tQWRkcmVzcyk7XG4gICAgICAgIHRoaXMuc3Rha2luZ0FkZHJlc3MoZGVhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy5zdGFraW5nQWRkcmVzcyk7XG4gICAgICAgIGlmIChkZWFjdGl2YXRlSW5zdHJ1Y3Rpb24ucGFyYW1zLmFtb3VudCAmJiBkZWFjdGl2YXRlSW5zdHJ1Y3Rpb24ucGFyYW1zLnVuc3Rha2luZ0FkZHJlc3MpIHtcbiAgICAgICAgICB0aGlzLmFtb3VudChkZWFjdGl2YXRlSW5zdHJ1Y3Rpb24ucGFyYW1zLmFtb3VudCk7XG4gICAgICAgICAgdGhpcy51bnN0YWtpbmdBZGRyZXNzKGRlYWN0aXZhdGVJbnN0cnVjdGlvbi5wYXJhbXMudW5zdGFraW5nQWRkcmVzcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIHN0YWtpbmcgYWRkcmVzcyBvZiB0aGUgc3Rha2luZyBhY2NvdW50LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3Rha2luZ0FkZHJlc3MgcHVibGljIGFkZHJlc3Mgb2YgdGhlIHN0YWtpbmcgYWNjb3VudFxuICAgKiBAcmV0dXJucyB7U3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyfSBUaGlzIHN0YWtpbmcgZGVhY3RpdmF0ZSBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5zb2xhbmEuY29tL3N0YWtpbmcvc3Rha2UtYWNjb3VudHMjYWNjb3VudC1hZGRyZXNzXG4gICAqL1xuICBzdGFraW5nQWRkcmVzcyhzdGFraW5nQWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgdmFsaWRhdGVBZGRyZXNzKHN0YWtpbmdBZGRyZXNzLCAnc3Rha2luZ0FkZHJlc3MnKTtcbiAgICB0aGlzLl9zdGFraW5nQWRkcmVzcyA9IHN0YWtpbmdBZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGFtb3VudCB0byB1bnN0YWtlIGV4cHJlc3NlZCBpbiBMYW1wb3J0cywgMSBTT0wgPSAxXzAwMF8wMDBfMDAwIGxhbXBvcnRzLCB0byBiZSB1c2VkXG4gICAqIHdoZW4gcGFydGlhbGx5IHVuc3Rha2luZy4gSWYgbm90IGdpdmVuIHRoZW4gdGhlIGVudGlyZSBzdGFrZWQgYW1vdW50IHdpbGwgYmUgdW5zdGFrZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhbW91bnQgVGhlIHBhcnRpYWwgYW1vdW50IHRvIHVuc3Rha2UsIGV4cHJlc3NlZCBpbiBMYW1wb3J0cy5cbiAgICogQHJldHVybnMge1N0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcn0gVGhpcyBzdGFraW5nIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLnNvbGFuYS5jb20vY2xpL2RlbGVnYXRlLXN0YWtlI3NwbGl0LXN0YWtlXG4gICAqL1xuICBhbW91bnQoYW1vdW50OiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoIWlzVmFsaWRTdGFraW5nQW1vdW50KGFtb3VudCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0lmIGdpdmVuLCBhbW91bnQgY2Fubm90IGJlIHplcm8gb3IgbGVzcycpO1xuICAgIH1cbiAgICB0aGlzLl9hbW91bnQgPSBhbW91bnQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiBwYXJ0aWFsbHkgdW5zdGFraW5nIG1vdmUgdGhlIGFtb3VudCB0byB1bnN0YWtlIHRvIHRoaXMgYWNjb3VudCBhbmQgaW5pdGlhdGUgdGhlXG4gICAqIHVuc3Rha2UgcHJvY2Vzcy4gVGhlIG9yaWdpbmFsIHN0YWtlIGFjY291bnQgd2lsbCBjb250aW51ZSBzdGFraW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdW5zdGFraW5nQWRkcmVzcyBBbiBhY2NvdW50IHVzZWQgdG8gdW5zdGFrZSBhIHBhcnRpYWwgYW1vdW50LlxuICAgKiBAcmV0dXJucyB7U3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyfSBUaGlzIHN0YWtpbmcgYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3Muc29sYW5hLmNvbS9jbGkvZGVsZWdhdGUtc3Rha2Ujc3BsaXQtc3Rha2VcbiAgICovXG4gIHVuc3Rha2luZ0FkZHJlc3ModW5zdGFraW5nQWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgdmFsaWRhdGVBZGRyZXNzKHVuc3Rha2luZ0FkZHJlc3MsICd1bnN0YWtpbmdBZGRyZXNzJyk7XG4gICAgdGhpcy5fdW5zdGFraW5nQWRkcmVzcyA9IHVuc3Rha2luZ0FkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIGFzc2VydCh0aGlzLl9zZW5kZXIsICdTZW5kZXIgbXVzdCBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvbicpO1xuICAgIGFzc2VydCh0aGlzLl9zdGFraW5nQWRkcmVzcywgJ1N0YWtpbmcgYWRkcmVzcyBtdXN0IGJlIHNldCBiZWZvcmUgYnVpbGRpbmcgdGhlIHRyYW5zYWN0aW9uJyk7XG5cbiAgICBpZiAodGhpcy5fc2VuZGVyID09PSB0aGlzLl9zdGFraW5nQWRkcmVzcykge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignU2VuZGVyIGFkZHJlc3MgY2Fubm90IGJlIHRoZSBzYW1lIGFzIHRoZSBTdGFraW5nIGFkZHJlc3MnKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fYW1vdW50KSB7XG4gICAgICBhc3NlcnQoXG4gICAgICAgIHRoaXMuX3Vuc3Rha2luZ0FkZHJlc3MsXG4gICAgICAgICdXaGVuIHBhcnRpYWxseSB1bnN0YWtpbmcgdGhlIHVuc3Rha2luZyBhZGRyZXNzIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl91bnN0YWtpbmdBZGRyZXNzKSB7XG4gICAgICBhc3NlcnQoXG4gICAgICAgIHRoaXMuX2Ftb3VudCxcbiAgICAgICAgJ0lmIGFuIHVuc3Rha2luZyBhZGRyZXNzIGlzIGdpdmVuIHRoZW4gYSBwYXJ0aWFsIGFtb3VudCB0byB1bnN0YWtlIG11c3QgYWxzbyBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvbidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3Rha2luZ0RlYWN0aXZhdGVEYXRhOiBTdGFraW5nRGVhY3RpdmF0ZSA9IHtcbiAgICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlN0YWtpbmdEZWFjdGl2YXRlLFxuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIGZyb21BZGRyZXNzOiB0aGlzLl9zZW5kZXIsXG4gICAgICAgIHN0YWtpbmdBZGRyZXNzOiB0aGlzLl9zdGFraW5nQWRkcmVzcyxcbiAgICAgICAgYW1vdW50OiB0aGlzLl9hbW91bnQsXG4gICAgICAgIHVuc3Rha2luZ0FkZHJlc3M6IHRoaXMuX3Vuc3Rha2luZ0FkZHJlc3MsXG4gICAgICB9LFxuICAgIH07XG4gICAgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YSA9IFtzdGFraW5nRGVhY3RpdmF0ZURhdGFdO1xuXG4gICAgcmV0dXJuIGF3YWl0IHN1cGVyLmJ1aWxkSW1wbGVtZW50YXRpb24oKTtcbiAgfVxufVxuIl19
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0Esb0RBQTRCO0FBRTVCLG1EQUE4RTtBQUM5RSwyQ0FBd0Y7QUFHeEYsNkRBQTBEO0FBQzFELG1DQUFnRTtBQUVoRSxNQUFhLHdCQUF5QixTQUFRLHVDQUFrQjtJQU05RCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQyxpQkFBaUIsQ0FBQztJQUMzQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFdBQVcsQ0FBQyxFQUFlO1FBQ3pCLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEIsTUFBTSxnQkFBZ0IsR0FBYSxFQUFFLENBQUM7UUFDdEMsS0FBSyxNQUFNLFdBQVcsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDaEQsSUFBSSxXQUFXLENBQUMsSUFBSSxLQUFLLG1DQUF1QixDQUFDLGlCQUFpQixFQUFFO2dCQUNsRSxNQUFNLHFCQUFxQixHQUFzQixXQUFXLENBQUM7Z0JBQzdELElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUN0RCxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUNuRSxJQUFJLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUkscUJBQXFCLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFO29CQUN4RixJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDakQsSUFBSSxDQUFD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QU8sRUFDWixvSEFBb0gsQ0FDckgsQ0FBQztnQkFDRixNQUFNLHlCQUF5QixHQUFhO29CQUMxQyxJQUFJLEVBQUUsbUNBQXVCLENBQUMsUUFBUTtvQkFDdEMsTUFBTSxFQUFFO3dCQUNOLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTzt3QkFDekIsTUFBTSxFQUFFLDRDQUFnQyxDQUFDLFFBQVEsRUFBRTt3QkFDbkQsU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBaUI7cUJBQ2xDO2lCQUNGLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO2FBQ3hEO1lBRUQsTUFBTSxxQkFBcUIsR0FBc0I7Z0JBQy9DLElBQUksRUFBRSxtQ0FBdUIsQ0FBQyxpQkFBaUI7Z0JBQy9DLE1BQU0sRUFBRTtvQkFDTixXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU87b0JBQ3pCLGNBQWMsRUFBRSxJQUFJLENBQUMsZUFBZTtvQkFDcEMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPO29CQUNwQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsaUJBQWlCO2lCQUN6QzthQUNGLENBQUM7WUFDRixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7U0FDcEQ7UUFDRCxPQUFPLE1BQU0sS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDM0MsQ0FBQztDQUNGO0FBN0pELDREQTZKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHsgQnVpbGRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcywgU1RBS0VfQUNDT1VOVF9SRU5UX0VYRU1QVF9BTU9VTlQgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBTdGFraW5nRGVhY3RpdmF0ZSwgVHJhbnNmZXIgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBpc1ZhbGlkU3Rha2luZ0Ftb3VudCwgdmFsaWRhdGVBZGRyZXNzIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBTdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX3N0YWtpbmdBZGRyZXNzOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfc3Rha2luZ0FkZHJlc3Nlczogc3RyaW5nW107XG4gIHByb3RlY3RlZCBfYW1vdW50Pzogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3Vuc3Rha2luZ0FkZHJlc3M6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0RlYWN0aXZhdGU7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgIGNvbnN0IHN0YWtpbmdBZGRyZXNzZXM6IHN0cmluZ1tdID0gW107XG4gICAgZm9yIChjb25zdCBpbnN0cnVjdGlvbiBvZiB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhKSB7XG4gICAgICBpZiAoaW5zdHJ1Y3Rpb24udHlwZSA9PT0gSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuU3Rha2luZ0RlYWN0aXZhdGUpIHtcbiAgICAgICAgY29uc3QgZGVhY3RpdmF0ZUluc3RydWN0aW9uOiBTdGFraW5nRGVhY3RpdmF0ZSA9IGluc3RydWN0aW9uO1xuICAgICAgICB0aGlzLnNlbmRlcihkZWFjdGl2YXRlSW5zdHJ1Y3Rpb24ucGFyYW1zLmZyb21BZGRyZXNzKTtcbiAgICAgICAgc3Rha2luZ0FkZHJlc3Nlcy5wdXNoKGRlYWN0aXZhdGVJbnN0cnVjdGlvbi5wYXJhbXMuc3Rha2luZ0FkZHJlc3MpO1xuICAgICAgICBpZiAoZGVhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy5hbW91bnQgJiYgZGVhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy51bnN0YWtpbmdBZGRyZXNzKSB7XG4gICAgICAgICAgdGhpcy5hbW91bnQoZGVhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy5hbW91bnQpO1xuICAgICAgICAgIHRoaXMudW5zdGFraW5nQWRkcmVzcyhkZWFjdGl2YXRlSW5zdHJ1Y3Rpb24ucGFyYW1zLnVuc3Rha2luZ0FkZHJlc3MpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChzdGFraW5nQWRkcmVzc2VzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHRoaXMuc3Rha2luZ0FkZHJlc3NlcyhzdGFraW5nQWRkcmVzc2VzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdGFraW5nQWRkcmVzcyhzdGFraW5nQWRkcmVzc2VzWzBdKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIHN0YWtpbmcgYWRkcmVzcyBvZiB0aGUgc3Rha2luZyBhY2NvdW50LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3Rha2luZ0FkZHJlc3MgcHVibGljIGFkZHJlc3Mgb2YgdGhlIHN0YWtpbmcgYWNjb3VudFxuICAgKiBAcmV0dXJucyB7U3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyfSBUaGlzIHN0YWtpbmcgZGVhY3RpdmF0ZSBidWlsZGVyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5zb2xhbmEuY29tL3N0YWtpbmcvc3Rha2UtYWNjb3VudHMjYWNjb3VudC1hZGRyZXNzXG4gICAqL1xuICBzdGFraW5nQWRkcmVzcyhzdGFraW5nQWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgdmFsaWRhdGVBZGRyZXNzKHN0YWtpbmdBZGRyZXNzLCAnc3Rha2luZ0FkZHJlc3MnKTtcbiAgICB0aGlzLl9zdGFraW5nQWRkcmVzcyA9IHN0YWtpbmdBZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFraW5nIGFkZHJlc3NlcyBvZiB0aGUgc3Rha2luZyBhY2NvdW50LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBzdGFraW5nQWRkcmVzc2VzIHB1YmxpYyBhZGRyZXNzIG9mIHRoZSBzdGFraW5nIGFjY291bnRzXG4gICAqIEByZXR1cm5zIHtTdGFraW5nRGVhY3RpdmF0ZUJ1aWxkZXJ9IFRoaXMgc3Rha2luZyBkZWFjdGl2YXRlIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLnNvbGFuYS5jb20vc3Rha2luZy9zdGFrZS1hY2NvdW50cyNhY2NvdW50LWFkZHJlc3NcbiAgICovXG4gIHN0YWtpbmdBZGRyZXNzZXMoc3Rha2luZ0FkZHJlc3Nlczogc3RyaW5nW10pOiB0aGlzIHtcbiAgICBmb3IgKGNvbnN0IHN0YWtpbmdBZGRyZXNzIG9mIHN0YWtpbmdBZGRyZXNzZXMpIHtcbiAgICAgIHZhbGlkYXRlQWRkcmVzcyhzdGFraW5nQWRkcmVzcywgJ3N0YWtpbmdBZGRyZXNzJyk7XG4gICAgfVxuICAgIHRoaXMuX3N0YWtpbmdBZGRyZXNzZXMgPSBzdGFraW5nQWRkcmVzc2VzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGFtb3VudCB0byB1bnN0YWtlIGV4cHJlc3NlZCBpbiBMYW1wb3J0cywgMSBTT0wgPSAxXzAwMF8wMDBfMDAwIGxhbXBvcnRzLCB0byBiZSB1c2VkXG4gICAqIHdoZW4gcGFydGlhbGx5IHVuc3Rha2luZy4gSWYgbm90IGdpdmVuIHRoZW4gdGhlIGVudGlyZSBzdGFrZWQgYW1vdW50IHdpbGwgYmUgdW5zdGFrZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhbW91bnQgVGhlIHBhcnRpYWwgYW1vdW50IHRvIHVuc3Rha2UsIGV4cHJlc3NlZCBpbiBMYW1wb3J0cy5cbiAgICogQHJldHVybnMge1N0YWtpbmdEZWFjdGl2YXRlQnVpbGRlcn0gVGhpcyBzdGFraW5nIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLnNvbGFuYS5jb20vY2xpL2RlbGVnYXRlLXN0YWtlI3NwbGl0LXN0YWtlXG4gICAqL1xuICBhbW91bnQoYW1vdW50OiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoIWlzVmFsaWRTdGFraW5nQW1vdW50KGFtb3VudCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0lmIGdpdmVuLCBhbW91bnQgY2Fubm90IGJlIHplcm8gb3IgbGVzcycpO1xuICAgIH1cbiAgICB0aGlzLl9hbW91bnQgPSBhbW91bnQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiBwYXJ0aWFsbHkgdW5zdGFraW5nIG1vdmUgdGhlIGFtb3VudCB0byB1bnN0YWtlIHRvIHRoaXMgYWNjb3VudCBhbmQgaW5pdGlhdGUgdGhlXG4gICAqIHVuc3Rha2UgcHJvY2Vzcy4gVGhlIG9yaWdpbmFsIHN0YWtlIGFjY291bnQgd2lsbCBjb250aW51ZSBzdGFraW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdW5zdGFraW5nQWRkcmVzcyBBbiBhY2NvdW50IHVzZWQgdG8gdW5zdGFrZSBhIHBhcnRpYWwgYW1vdW50LlxuICAgKiBAcmV0dXJucyB7U3Rha2luZ0RlYWN0aXZhdGVCdWlsZGVyfSBUaGlzIHN0YWtpbmcgYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3Muc29sYW5hLmNvbS9jbGkvZGVsZWdhdGUtc3Rha2Ujc3BsaXQtc3Rha2VcbiAgICovXG4gIHVuc3Rha2luZ0FkZHJlc3ModW5zdGFraW5nQWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgdmFsaWRhdGVBZGRyZXNzKHVuc3Rha2luZ0FkZHJlc3MsICd1bnN0YWtpbmdBZGRyZXNzJyk7XG4gICAgdGhpcy5fdW5zdGFraW5nQWRkcmVzcyA9IHVuc3Rha2luZ0FkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIGFzc2VydCh0aGlzLl9zZW5kZXIsICdTZW5kZXIgbXVzdCBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvbicpO1xuXG4gICAgaWYgKHRoaXMuX3N0YWtpbmdBZGRyZXNzZXMgJiYgdGhpcy5fc3Rha2luZ0FkZHJlc3Nlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhID0gW107XG4gICAgICBmb3IgKGNvbnN0IHN0YWtpbmdBZGRyZXNzIG9mIHRoaXMuX3N0YWtpbmdBZGRyZXNzZXMpIHtcbiAgICAgICAgY29uc3Qgc3Rha2luZ0RlYWN0aXZhdGVEYXRhOiBTdGFraW5nRGVhY3RpdmF0ZSA9IHtcbiAgICAgICAgICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5TdGFraW5nRGVhY3RpdmF0ZSxcbiAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgIGZyb21BZGRyZXNzOiB0aGlzLl9zZW5kZXIsXG4gICAgICAgICAgICBzdGFraW5nQWRkcmVzczogc3Rha2luZ0FkZHJlc3MsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YS5wdXNoKHN0YWtpbmdEZWFjdGl2YXRlRGF0YSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGFzc2VydCh0aGlzLl9zdGFraW5nQWRkcmVzcywgJ1N0YWtpbmcgYWRkcmVzcyBtdXN0IGJlIHNldCBiZWZvcmUgYnVpbGRpbmcgdGhlIHRyYW5zYWN0aW9uJyk7XG5cbiAgICAgIGlmICh0aGlzLl9zZW5kZXIgPT09IHRoaXMuX3N0YWtpbmdBZGRyZXNzKSB7XG4gICAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1NlbmRlciBhZGRyZXNzIGNhbm5vdCBiZSB0aGUgc2FtZSBhcyB0aGUgU3Rha2luZyBhZGRyZXNzJyk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLl9hbW91bnQpIHtcbiAgICAgICAgYXNzZXJ0KFxuICAgICAgICAgIHRoaXMuX3Vuc3Rha2luZ0FkZHJlc3MsXG4gICAgICAgICAgJ1doZW4gcGFydGlhbGx5IHVuc3Rha2luZyB0aGUgdW5zdGFraW5nIGFkZHJlc3MgbXVzdCBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvbidcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2luc3RydWN0aW9uc0RhdGEgPSBbXTtcbiAgICAgIGlmICh0aGlzLl91bnN0YWtpbmdBZGRyZXNzKSB7XG4gICAgICAgIGFzc2VydChcbiAgICAgICAgICB0aGlzLl9hbW91bnQsXG4gICAgICAgICAgJ0lmIGFuIHVuc3Rha2luZyBhZGRyZXNzIGlzIGdpdmVuIHRoZW4gYSBwYXJ0aWFsIGFtb3VudCB0byB1bnN0YWtlIG11c3QgYWxzbyBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvbidcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgc3Rha2luZ0Z1bmRVbnN0YWtlQWRkcmVzczogVHJhbnNmZXIgPSB7XG4gICAgICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuVHJhbnNmZXIsXG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICBmcm9tQWRkcmVzczogdGhpcy5fc2VuZGVyLFxuICAgICAgICAgICAgYW1vdW50OiBTVEFLRV9BQ0NPVU5UX1JFTlRfRVhFTVBUX0FNT1VOVC50b1N0cmluZygpLFxuICAgICAgICAgICAgdG9BZGRyZXNzOiB0aGlzLl91bnN0YWtpbmdBZGRyZXNzLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX2luc3RydWN0aW9uc0RhdGEucHVzaChzdGFraW5nRnVuZFVuc3Rha2VBZGRyZXNzKTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc3Rha2luZ0RlYWN0aXZhdGVEYXRhOiBTdGFraW5nRGVhY3RpdmF0ZSA9IHtcbiAgICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuU3Rha2luZ0RlYWN0aXZhdGUsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIGZyb21BZGRyZXNzOiB0aGlzLl9zZW5kZXIsXG4gICAgICAgICAgc3Rha2luZ0FkZHJlc3M6IHRoaXMuX3N0YWtpbmdBZGRyZXNzLFxuICAgICAgICAgIGFtb3VudDogdGhpcy5fYW1vdW50LFxuICAgICAgICAgIHVuc3Rha2luZ0FkZHJlc3M6IHRoaXMuX3Vuc3Rha2luZ0FkZHJlc3MsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YS5wdXNoKHN0YWtpbmdEZWFjdGl2YXRlRGF0YSk7XG4gICAgfVxuICAgIHJldHVybiBhd2FpdCBzdXBlci5idWlsZEltcGxlbWVudGF0aW9uKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,42 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import { TransactionType } from '@bitgo-beta/sdk-core';
3
+ import { Transaction } from './transaction';
4
+ import { TransactionBuilder } from './transactionBuilder';
5
+ export declare class StakingDelegateBuilder extends TransactionBuilder {
6
+ protected _stakingAddress: string;
7
+ protected _stakingAddresses: string[];
8
+ protected _validator: string;
9
+ constructor(_coinConfig: Readonly<CoinConfig>);
10
+ protected get transactionType(): TransactionType;
11
+ /** @inheritdoc */
12
+ initBuilder(tx: Transaction): void;
13
+ /**
14
+ * The address of the staking account.
15
+ *
16
+ * @param {string} stakingAddress public address of the staking account.
17
+ * @returns {StakingDelegateBuilder} This staking delegate builder.
18
+ *
19
+ * @see https://docs.solana.com/staking/stake-accounts#account-address
20
+ */
21
+ stakingAddress(stakingAddress: string): this;
22
+ /**
23
+ * The staking addresses of the staking account.
24
+ *
25
+ * @param {string[]} stakingAddresses public address of the staking accounts
26
+ * @returns {StakingDelegateBuilder} This staking delegate builder.
27
+ *
28
+ * @see https://docs.solana.com/staking/stake-accounts#account-address
29
+ */
30
+ stakingAddresses(stakingAddresses: string[]): this;
31
+ /**
32
+ * Set validator address to delegate funds to.
33
+ *
34
+ * @param {string} validator Validator address to delegate funds to.
35
+ * @returns {StakingDelegateBuilder} This staking builder.
36
+ *
37
+ */
38
+ validator(validator: string): this;
39
+ /** @inheritdoc */
40
+ protected buildImplementation(): Promise<Transaction>;
41
+ }
42
+ //# sourceMappingURL=stakingDelegateBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stakingDelegateBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/stakingDelegateBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAyB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAO1D,qBAAa,sBAAuB,SAAQ,kBAAkB;IAC5D,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IACtC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEjB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAkBlC;;;;;;;OAOG;IACH,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAM5C;;;;;;;OAOG;IACH,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,EAAE,GAAG,IAAI;IASlD;;;;;;OAMG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAMlC,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;CAuC5D"}
@@ -0,0 +1,120 @@
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.StakingDelegateBuilder = void 0;
7
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
+ const transactionBuilder_1 = require("./transactionBuilder");
9
+ const constants_1 = require("./constants");
10
+ const assert_1 = __importDefault(require("assert"));
11
+ const utils_1 = require("./utils");
12
+ class StakingDelegateBuilder extends transactionBuilder_1.TransactionBuilder {
13
+ constructor(_coinConfig) {
14
+ super(_coinConfig);
15
+ }
16
+ get transactionType() {
17
+ return sdk_core_1.TransactionType.StakingDelegate;
18
+ }
19
+ /** @inheritdoc */
20
+ initBuilder(tx) {
21
+ super.initBuilder(tx);
22
+ const stakingAddresses = [];
23
+ for (const instruction of this._instructionsData) {
24
+ if (instruction.type === constants_1.InstructionBuilderTypes.StakingDelegate) {
25
+ const activateInstruction = instruction;
26
+ this.sender(activateInstruction.params.fromAddress);
27
+ stakingAddresses.push(activateInstruction.params.stakingAddress);
28
+ this.validator(activateInstruction.params.validator);
29
+ }
30
+ }
31
+ if (stakingAddresses.length > 1) {
32
+ this.stakingAddresses(stakingAddresses);
33
+ }
34
+ else {
35
+ this.stakingAddress(stakingAddresses[0]);
36
+ }
37
+ }
38
+ /**
39
+ * The address of the staking account.
40
+ *
41
+ * @param {string} stakingAddress public address of the staking account.
42
+ * @returns {StakingDelegateBuilder} This staking delegate builder.
43
+ *
44
+ * @see https://docs.solana.com/staking/stake-accounts#account-address
45
+ */
46
+ stakingAddress(stakingAddress) {
47
+ (0, utils_1.validateAddress)(stakingAddress, 'stakingAddress');
48
+ this._stakingAddress = stakingAddress;
49
+ return this;
50
+ }
51
+ /**
52
+ * The staking addresses of the staking account.
53
+ *
54
+ * @param {string[]} stakingAddresses public address of the staking accounts
55
+ * @returns {StakingDelegateBuilder} This staking delegate builder.
56
+ *
57
+ * @see https://docs.solana.com/staking/stake-accounts#account-address
58
+ */
59
+ stakingAddresses(stakingAddresses) {
60
+ (0, assert_1.default)(stakingAddresses.length > 0, 'stakingAddresses must not be empty');
61
+ for (const stakingAddress of stakingAddresses) {
62
+ (0, utils_1.validateAddress)(stakingAddress, 'stakingAddress');
63
+ }
64
+ this._stakingAddresses = stakingAddresses;
65
+ return this;
66
+ }
67
+ /**
68
+ * Set validator address to delegate funds to.
69
+ *
70
+ * @param {string} validator Validator address to delegate funds to.
71
+ * @returns {StakingDelegateBuilder} This staking builder.
72
+ *
73
+ */
74
+ validator(validator) {
75
+ (0, utils_1.validateAddress)(validator, 'validator');
76
+ this._validator = validator;
77
+ return this;
78
+ }
79
+ /** @inheritdoc */
80
+ async buildImplementation() {
81
+ (0, assert_1.default)(this._sender, 'Sender must be set before building the transaction');
82
+ (0, assert_1.default)(this._validator, 'Validator must be set before building the transaction');
83
+ if (this._stakingAddresses && this._stakingAddresses.length > 0) {
84
+ this._instructionsData = [];
85
+ for (const stakingAddress of this._stakingAddresses) {
86
+ (0, assert_1.default)(stakingAddress, 'Staking Address must be set before building the transaction');
87
+ if (this._sender === stakingAddress) {
88
+ throw new sdk_core_1.BuildTransactionError('Sender address cannot be the same as the Staking address');
89
+ }
90
+ const stakingAccountData = {
91
+ type: constants_1.InstructionBuilderTypes.StakingDelegate,
92
+ params: {
93
+ fromAddress: this._sender,
94
+ stakingAddress: stakingAddress,
95
+ validator: this._validator,
96
+ },
97
+ };
98
+ this._instructionsData.push(stakingAccountData);
99
+ }
100
+ }
101
+ else {
102
+ (0, assert_1.default)(this._stakingAddress, 'Staking Address must be set before building the transaction');
103
+ if (this._sender === this._stakingAddress) {
104
+ throw new sdk_core_1.BuildTransactionError('Sender address cannot be the same as the Staking address');
105
+ }
106
+ const stakingAccountData = {
107
+ type: constants_1.InstructionBuilderTypes.StakingDelegate,
108
+ params: {
109
+ fromAddress: this._sender,
110
+ stakingAddress: this._stakingAddress,
111
+ validator: this._validator,
112
+ },
113
+ };
114
+ this._instructionsData = [stakingAccountData];
115
+ }
116
+ return await super.buildImplementation();
117
+ }
118
+ }
119
+ exports.StakingDelegateBuilder = StakingDelegateBuilder;
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ0RlbGVnYXRlQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvc3Rha2luZ0RlbGVnYXRlQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxtREFBOEU7QUFFOUUsNkRBQTBEO0FBQzFELDJDQUFzRDtBQUV0RCxvREFBNEI7QUFFNUIsbUNBQTBDO0FBRTFDLE1BQWEsc0JBQXVCLFNBQVEsdUNBQWtCO0lBSzVELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLGVBQWUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFdBQVcsQ0FBQyxFQUFlO1FBQ3pCLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEIsTUFBTSxnQkFBZ0IsR0FBYSxFQUFFLENBQUM7UUFDdEMsS0FBSyxNQUFNLFdBQVcsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDaEQsSUFBSSxXQUFXLENBQUMsSUFBSSxLQUFLLG1DQUF1QixDQUFDLGVBQWUsRUFBRTtnQkFDaEUsTUFBTSxtQkFBbUIsR0FBb0IsV0FBVyxDQUFDO2dCQUN6RCxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDcEQsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDakUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDdEQ7U0FDRjtRQUNELElBQUksZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUN6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QUUsQ0FBQztJQUMzQyxDQUFDO0NBQ0Y7QUFwSEQsd0RBb0hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgQnVpbGRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IFN0YWtpbmdEZWxlZ2F0ZSB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgdmFsaWRhdGVBZGRyZXNzIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBTdGFraW5nRGVsZWdhdGVCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF9zdGFraW5nQWRkcmVzczogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3N0YWtpbmdBZGRyZXNzZXM6IHN0cmluZ1tdO1xuICBwcm90ZWN0ZWQgX3ZhbGlkYXRvcjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nRGVsZWdhdGU7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgIGNvbnN0IHN0YWtpbmdBZGRyZXNzZXM6IHN0cmluZ1tdID0gW107XG4gICAgZm9yIChjb25zdCBpbnN0cnVjdGlvbiBvZiB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhKSB7XG4gICAgICBpZiAoaW5zdHJ1Y3Rpb24udHlwZSA9PT0gSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuU3Rha2luZ0RlbGVnYXRlKSB7XG4gICAgICAgIGNvbnN0IGFjdGl2YXRlSW5zdHJ1Y3Rpb246IFN0YWtpbmdEZWxlZ2F0ZSA9IGluc3RydWN0aW9uO1xuICAgICAgICB0aGlzLnNlbmRlcihhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy5mcm9tQWRkcmVzcyk7XG4gICAgICAgIHN0YWtpbmdBZGRyZXNzZXMucHVzaChhY3RpdmF0ZUluc3RydWN0aW9uLnBhcmFtcy5zdGFraW5nQWRkcmVzcyk7XG4gICAgICAgIHRoaXMudmFsaWRhdG9yKGFjdGl2YXRlSW5zdHJ1Y3Rpb24ucGFyYW1zLnZhbGlkYXRvcik7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChzdGFraW5nQWRkcmVzc2VzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHRoaXMuc3Rha2luZ0FkZHJlc3NlcyhzdGFraW5nQWRkcmVzc2VzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdGFraW5nQWRkcmVzcyhzdGFraW5nQWRkcmVzc2VzWzBdKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIGFkZHJlc3Mgb2YgdGhlIHN0YWtpbmcgYWNjb3VudC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN0YWtpbmdBZGRyZXNzIHB1YmxpYyBhZGRyZXNzIG9mIHRoZSBzdGFraW5nIGFjY291bnQuXG4gICAqIEByZXR1cm5zIHtTdGFraW5nRGVsZWdhdGVCdWlsZGVyfSBUaGlzIHN0YWtpbmcgZGVsZWdhdGUgYnVpbGRlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3Muc29sYW5hLmNvbS9zdGFraW5nL3N0YWtlLWFjY291bnRzI2FjY291bnQtYWRkcmVzc1xuICAgKi9cbiAgc3Rha2luZ0FkZHJlc3Moc3Rha2luZ0FkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIHZhbGlkYXRlQWRkcmVzcyhzdGFraW5nQWRkcmVzcywgJ3N0YWtpbmdBZGRyZXNzJyk7XG4gICAgdGhpcy5fc3Rha2luZ0FkZHJlc3MgPSBzdGFraW5nQWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgc3Rha2luZyBhZGRyZXNzZXMgb2YgdGhlIHN0YWtpbmcgYWNjb3VudC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gc3Rha2luZ0FkZHJlc3NlcyBwdWJsaWMgYWRkcmVzcyBvZiB0aGUgc3Rha2luZyBhY2NvdW50c1xuICAgKiBAcmV0dXJucyB7U3Rha2luZ0RlbGVnYXRlQnVpbGRlcn0gVGhpcyBzdGFraW5nIGRlbGVnYXRlIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLnNvbGFuYS5jb20vc3Rha2luZy9zdGFrZS1hY2NvdW50cyNhY2NvdW50LWFkZHJlc3NcbiAgICovXG4gIHN0YWtpbmdBZGRyZXNzZXMoc3Rha2luZ0FkZHJlc3Nlczogc3RyaW5nW10pOiB0aGlzIHtcbiAgICBhc3NlcnQoc3Rha2luZ0FkZHJlc3Nlcy5sZW5ndGggPiAwLCAnc3Rha2luZ0FkZHJlc3NlcyBtdXN0IG5vdCBiZSBlbXB0eScpO1xuICAgIGZvciAoY29uc3Qgc3Rha2luZ0FkZHJlc3Mgb2Ygc3Rha2luZ0FkZHJlc3Nlcykge1xuICAgICAgdmFsaWRhdGVBZGRyZXNzKHN0YWtpbmdBZGRyZXNzLCAnc3Rha2luZ0FkZHJlc3MnKTtcbiAgICB9XG4gICAgdGhpcy5fc3Rha2luZ0FkZHJlc3NlcyA9IHN0YWtpbmdBZGRyZXNzZXM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHZhbGlkYXRvciBhZGRyZXNzIHRvIGRlbGVnYXRlIGZ1bmRzIHRvLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsaWRhdG9yIFZhbGlkYXRvciBhZGRyZXNzIHRvIGRlbGVnYXRlIGZ1bmRzIHRvLlxuICAgKiBAcmV0dXJucyB7U3Rha2luZ0RlbGVnYXRlQnVpbGRlcn0gVGhpcyBzdGFraW5nIGJ1aWxkZXIuXG4gICAqXG4gICAqL1xuICB2YWxpZGF0b3IodmFsaWRhdG9yOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB2YWxpZGF0ZUFkZHJlc3ModmFsaWRhdG9yLCAndmFsaWRhdG9yJyk7XG4gICAgdGhpcy5fdmFsaWRhdG9yID0gdmFsaWRhdG9yO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBhc3NlcnQodGhpcy5fc2VuZGVyLCAnU2VuZGVyIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nKTtcbiAgICBhc3NlcnQodGhpcy5fdmFsaWRhdG9yLCAnVmFsaWRhdG9yIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nKTtcblxuICAgIGlmICh0aGlzLl9zdGFraW5nQWRkcmVzc2VzICYmIHRoaXMuX3N0YWtpbmdBZGRyZXNzZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YSA9IFtdO1xuICAgICAgZm9yIChjb25zdCBzdGFraW5nQWRkcmVzcyBvZiB0aGlzLl9zdGFraW5nQWRkcmVzc2VzKSB7XG4gICAgICAgIGFzc2VydChzdGFraW5nQWRkcmVzcywgJ1N0YWtpbmcgQWRkcmVzcyBtdXN0IGJlIHNldCBiZWZvcmUgYnVpbGRpbmcgdGhlIHRyYW5zYWN0aW9uJyk7XG4gICAgICAgIGlmICh0aGlzLl9zZW5kZXIgPT09IHN0YWtpbmdBZGRyZXNzKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignU2VuZGVyIGFkZHJlc3MgY2Fubm90IGJlIHRoZSBzYW1lIGFzIHRoZSBTdGFraW5nIGFkZHJlc3MnKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdGFraW5nQWNjb3VudERhdGE6IFN0YWtpbmdEZWxlZ2F0ZSA9IHtcbiAgICAgICAgICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5TdGFraW5nRGVsZWdhdGUsXG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICBmcm9tQWRkcmVzczogdGhpcy5fc2VuZGVyLFxuICAgICAgICAgICAgc3Rha2luZ0FkZHJlc3M6IHN0YWtpbmdBZGRyZXNzLFxuICAgICAgICAgICAgdmFsaWRhdG9yOiB0aGlzLl92YWxpZGF0b3IsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YS5wdXNoKHN0YWtpbmdBY2NvdW50RGF0YSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGFzc2VydCh0aGlzLl9zdGFraW5nQWRkcmVzcywgJ1N0YWtpbmcgQWRkcmVzcyBtdXN0IGJlIHNldCBiZWZvcmUgYnVpbGRpbmcgdGhlIHRyYW5zYWN0aW9uJyk7XG4gICAgICBpZiAodGhpcy5fc2VuZGVyID09PSB0aGlzLl9zdGFraW5nQWRkcmVzcykge1xuICAgICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdTZW5kZXIgYWRkcmVzcyBjYW5ub3QgYmUgdGhlIHNhbWUgYXMgdGhlIFN0YWtpbmcgYWRkcmVzcycpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzdGFraW5nQWNjb3VudERhdGE6IFN0YWtpbmdEZWxlZ2F0ZSA9IHtcbiAgICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuU3Rha2luZ0RlbGVnYXRlLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICBmcm9tQWRkcmVzczogdGhpcy5fc2VuZGVyLFxuICAgICAgICAgIHN0YWtpbmdBZGRyZXNzOiB0aGlzLl9zdGFraW5nQWRkcmVzcyxcbiAgICAgICAgICB2YWxpZGF0b3I6IHRoaXMuX3ZhbGlkYXRvcixcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgICB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhID0gW3N0YWtpbmdBY2NvdW50RGF0YV07XG4gICAgfVxuICAgIHJldHVybiBhd2FpdCBzdXBlci5idWlsZEltcGxlbWVudGF0aW9uKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,33 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import { BaseAddress, BaseKey, BaseTransaction, BaseTransactionBuilder, TransactionType } from '@bitgo-beta/sdk-core';
3
+ import { Transaction } from './transaction';
4
+ import BigNumber from 'bignumber.js';
5
+ export declare class StakingRawMsgAuthorizeBuilder extends BaseTransactionBuilder {
6
+ protected _transaction: Transaction;
7
+ protected _transactionMessage: string;
8
+ constructor(_coinConfig: Readonly<CoinConfig>);
9
+ protected get transactionType(): TransactionType;
10
+ /** @inheritdoc */
11
+ initBuilder(tx: Transaction): void;
12
+ /**
13
+ * The raw message generated by Solana CLI.
14
+ *
15
+ * @param {string} msg msg generated by 'solana stake-authorize-check.
16
+ * @returns {StakeBuilder} This staking builder.
17
+ *
18
+ */
19
+ transactionMessage(msg: string): this;
20
+ /** @inheritdoc */
21
+ protected buildImplementation(): Promise<Transaction>;
22
+ validateTransaction(tx: Transaction): boolean;
23
+ build(): Promise<Transaction>;
24
+ protected validateMessage(msg: string): boolean;
25
+ protected fromImplementation(rawTransaction: string): Transaction;
26
+ protected signImplementation(key: BaseKey): BaseTransaction;
27
+ protected get transaction(): Transaction;
28
+ validateAddress(address: BaseAddress, addressFormat?: string): void;
29
+ validateKey(key: BaseKey): void;
30
+ validateRawTransaction(rawTransaction: string): void;
31
+ validateValue(value: BigNumber): void;
32
+ }
33
+ //# sourceMappingURL=stakingRawMsgAuthorizeBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stakingRawMsgAuthorizeBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/stakingRawMsgAuthorizeBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EACL,WAAW,EACX,OAAO,EACP,eAAe,EACf,sBAAsB,EAEtB,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAU5C,OAAO,SAAS,MAAM,cAAc,CAAC;AAGrC,qBAAa,6BAA8B,SAAQ,sBAAsB;IACvE,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC;IACpC,SAAS,CAAC,mBAAmB,EAAE,MAAM,CAAC;gBAC1B,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAMlC;;;;;;OAMG;IACH,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMrC,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAgB3D,mBAAmB,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO;IAIvC,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC;IAInC,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IA6B/C,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAOjE,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe;IAI3D,SAAS,KAAK,WAAW,IAAI,WAAW,CAEvC;IAED,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAInE,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAI/B,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAMpD,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;CAGtC"}