@bitgo-beta/sdk-coin-sol 2.4.3-beta.123 → 2.4.3-beta.1230
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/bigint-buffer-guard.d.ts +1 -0
- package/dist/src/bigint-buffer-guard.d.ts.map +1 -0
- package/dist/src/bigint-buffer-guard.js +29 -0
- package/dist/src/config/token2022StaticConfig.d.ts +3 -0
- package/dist/src/config/token2022StaticConfig.d.ts.map +1 -0
- package/dist/src/config/token2022StaticConfig.js +62 -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/ataInitializationBuilder.d.ts.map +1 -1
- package/dist/src/lib/ataInitializationBuilder.js +60 -22
- package/dist/src/lib/closeAtaBuilder.d.ts +19 -0
- package/dist/src/lib/closeAtaBuilder.d.ts.map +1 -0
- package/dist/src/lib/closeAtaBuilder.js +69 -0
- package/dist/src/lib/constants.d.ts +62 -8
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +72 -10
- package/dist/src/lib/customInstructionBuilder.d.ts +48 -0
- package/dist/src/lib/customInstructionBuilder.d.ts.map +1 -0
- package/dist/src/lib/customInstructionBuilder.js +131 -0
- package/dist/src/lib/iface.d.ts +86 -5
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +1 -1
- package/dist/src/lib/index.d.ts +13 -10
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +48 -28
- package/dist/src/lib/instructionParamsFactory.d.ts +1 -1
- package/dist/src/lib/instructionParamsFactory.d.ts.map +1 -1
- package/dist/src/lib/instructionParamsFactory.js +521 -85
- package/dist/src/lib/jitoStakePoolOperations.d.ts +113 -0
- package/dist/src/lib/jitoStakePoolOperations.d.ts.map +1 -0
- package/dist/src/lib/jitoStakePoolOperations.js +200 -0
- package/dist/src/lib/keyPair.js +5 -5
- package/dist/src/lib/messages/index.d.ts +2 -0
- package/dist/src/lib/messages/index.d.ts.map +1 -0
- package/dist/src/lib/messages/index.js +18 -0
- package/dist/src/lib/messages/messageBuilderFactory.d.ts +7 -0
- package/dist/src/lib/messages/messageBuilderFactory.d.ts.map +1 -0
- package/dist/src/lib/messages/messageBuilderFactory.js +19 -0
- package/dist/src/lib/solInstructionFactory.d.ts.map +1 -1
- package/dist/src/lib/solInstructionFactory.js +363 -95
- package/dist/src/lib/stakingActivateBuilder.d.ts +18 -0
- package/dist/src/lib/stakingActivateBuilder.d.ts.map +1 -1
- package/dist/src/lib/stakingActivateBuilder.js +34 -8
- package/dist/src/lib/stakingAuthorizeBuilder.js +7 -7
- package/dist/src/lib/stakingDeactivateBuilder.d.ts +27 -1
- package/dist/src/lib/stakingDeactivateBuilder.d.ts.map +1 -1
- package/dist/src/lib/stakingDeactivateBuilder.js +82 -15
- package/dist/src/lib/stakingDelegateBuilder.js +9 -9
- package/dist/src/lib/stakingRawMsgAuthorizeBuilder.js +5 -5
- package/dist/src/lib/stakingWithdrawBuilder.js +6 -6
- package/dist/src/lib/token2022Config.d.ts +67 -0
- package/dist/src/lib/token2022Config.d.ts.map +1 -0
- package/dist/src/lib/token2022Config.js +32 -0
- package/dist/src/lib/tokenTransferBuilder.d.ts +4 -1
- package/dist/src/lib/tokenTransferBuilder.d.ts.map +1 -1
- package/dist/src/lib/tokenTransferBuilder.js +87 -23
- package/dist/src/lib/transaction.d.ts +14 -5
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +103 -43
- package/dist/src/lib/transactionBuilder.d.ts +2 -1
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilder.js +30 -19
- package/dist/src/lib/transactionBuilderFactory.d.ts +19 -9
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +29 -10
- package/dist/src/lib/transferBuilder.js +4 -4
- package/dist/src/lib/transferBuilderV2.d.ts +14 -1
- package/dist/src/lib/transferBuilderV2.d.ts.map +1 -1
- package/dist/src/lib/transferBuilderV2.js +114 -11
- package/dist/src/lib/utils.d.ts +28 -6
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +182 -58
- package/dist/src/lib/walletInitializationBuilder.js +6 -6
- package/dist/src/sol.d.ts +67 -23
- package/dist/src/sol.d.ts.map +1 -1
- package/dist/src/sol.js +582 -90
- package/dist/src/solToken.d.ts +2 -1
- package/dist/src/solToken.d.ts.map +1 -1
- package/dist/src/solToken.js +6 -3
- package/dist/src/tsol.js +1 -1
- package/dist/test/fixtures/sol.d.ts +1152 -0
- package/dist/test/fixtures/sol.d.ts.map +1 -0
- package/dist/test/fixtures/sol.js +1433 -0
- package/dist/test/resources/sol.d.ts +237 -0
- package/dist/test/resources/sol.d.ts.map +1 -0
- package/dist/test/resources/sol.js +318 -0
- package/dist/test/unit/fixtures/solBackupKey.d.ts +5 -0
- package/dist/test/unit/fixtures/solBackupKey.d.ts.map +1 -0
- package/dist/test/unit/fixtures/solBackupKey.js +8 -0
- package/dist/test/unit/getBuilderFactory.d.ts +3 -0
- package/dist/test/unit/getBuilderFactory.d.ts.map +1 -0
- package/dist/test/unit/getBuilderFactory.js +10 -0
- package/dist/test/unit/instructionParamsFactory.d.ts +2 -0
- package/dist/test/unit/instructionParamsFactory.d.ts.map +1 -0
- package/dist/test/unit/instructionParamsFactory.js +412 -0
- package/dist/test/unit/instructionParamsFactory.staking.d.ts +2 -0
- package/dist/test/unit/instructionParamsFactory.staking.d.ts.map +1 -0
- package/dist/test/unit/instructionParamsFactory.staking.js +1059 -0
- package/dist/test/unit/keyPair.d.ts +2 -0
- package/dist/test/unit/keyPair.d.ts.map +1 -0
- package/dist/test/unit/keyPair.js +177 -0
- package/dist/test/unit/messages/messageBuilderFactory.d.ts +2 -0
- package/dist/test/unit/messages/messageBuilderFactory.d.ts.map +1 -0
- package/dist/test/unit/messages/messageBuilderFactory.js +118 -0
- package/dist/test/unit/messages/simpleMessageBuilder.d.ts +2 -0
- package/dist/test/unit/messages/simpleMessageBuilder.d.ts.map +1 -0
- package/dist/test/unit/messages/simpleMessageBuilder.js +194 -0
- package/dist/test/unit/sol.d.ts +2 -0
- package/dist/test/unit/sol.d.ts.map +1 -0
- package/dist/test/unit/sol.js +3065 -0
- package/dist/test/unit/solInstructionFactory.d.ts +2 -0
- package/dist/test/unit/solInstructionFactory.d.ts.map +1 -0
- package/dist/test/unit/solInstructionFactory.js +454 -0
- package/dist/test/unit/solToken.d.ts +2 -0
- package/dist/test/unit/solToken.d.ts.map +1 -0
- package/dist/test/unit/solToken.js +31 -0
- package/dist/test/unit/transaction.d.ts +2 -0
- package/dist/test/unit/transaction.d.ts.map +1 -0
- package/dist/test/unit/transaction.js +983 -0
- package/dist/test/unit/transactionBuilder/StakingWithdrawBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/StakingWithdrawBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/StakingWithdrawBuilder.js +202 -0
- package/dist/test/unit/transactionBuilder/ataInitBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/ataInitBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/ataInitBuilder.js +471 -0
- package/dist/test/unit/transactionBuilder/customInstructionBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/customInstructionBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/customInstructionBuilder.js +216 -0
- package/dist/test/unit/transactionBuilder/stakingActivateBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/stakingActivateBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/stakingActivateBuilder.js +430 -0
- package/dist/test/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/stakingAuthorizeBuilder.js +157 -0
- package/dist/test/unit/transactionBuilder/stakingDeactivateBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/stakingDeactivateBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/stakingDeactivateBuilder.js +384 -0
- package/dist/test/unit/transactionBuilder/stakingDelegateBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/stakingDelegateBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/stakingDelegateBuilder.js +224 -0
- package/dist/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.js +259 -0
- package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/tokenTransferBuilder.js +787 -0
- package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/transactionBuilder.js +495 -0
- package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/transferBuilder.js +286 -0
- package/dist/test/unit/transactionBuilder/transferBuilderV2.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/transferBuilderV2.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/transferBuilderV2.js +862 -0
- package/dist/test/unit/transactionBuilder/walletInitBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/walletInitBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/walletInitBuilder.js +259 -0
- package/dist/test/unit/utils.d.ts +2 -0
- package/dist/test/unit/utils.d.ts.map +1 -0
- package/dist/test/unit/utils.js +459 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +15 -10
- package/.eslintignore +0 -5
- package/.mocharc.yml +0 -8
- package/CHANGELOG.md +0 -335
|
@@ -0,0 +1,216 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
const should_1 = __importDefault(require("should"));
|
|
40
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
41
|
+
const getBuilderFactory_1 = require("../getBuilderFactory");
|
|
42
|
+
const src_1 = require("../../../src");
|
|
43
|
+
const testData = __importStar(require("../../resources/sol"));
|
|
44
|
+
describe('Sol Custom Instruction Builder', () => {
|
|
45
|
+
const factory = (0, getBuilderFactory_1.getBuilderFactory)('tsol');
|
|
46
|
+
const customInstructionBuilder = () => {
|
|
47
|
+
const txBuilder = factory.getCustomInstructionBuilder();
|
|
48
|
+
txBuilder.nonce(recentBlockHash);
|
|
49
|
+
txBuilder.sender(authAccount.pub);
|
|
50
|
+
return txBuilder;
|
|
51
|
+
};
|
|
52
|
+
const authAccount = new src_1.KeyPair(testData.authAccount).getKeys();
|
|
53
|
+
const otherAccount = new src_1.KeyPair({ prv: testData.prvKeys.prvKey1.base58 }).getKeys();
|
|
54
|
+
const recentBlockHash = 'GHtXQBsoZHVnNFa9YevAzFr17DJjgHXk3ycTKD5xD3Zi';
|
|
55
|
+
const memo = 'test memo';
|
|
56
|
+
// Helper function to convert TransactionInstruction to the expected format
|
|
57
|
+
const convertInstructionToParams = (instruction) => ({
|
|
58
|
+
programId: instruction.programId.toString(),
|
|
59
|
+
keys: instruction.keys.map((key) => ({
|
|
60
|
+
pubkey: key.pubkey.toString(),
|
|
61
|
+
isSigner: key.isSigner,
|
|
62
|
+
isWritable: key.isWritable,
|
|
63
|
+
})),
|
|
64
|
+
data: instruction.data.toString('hex'),
|
|
65
|
+
});
|
|
66
|
+
describe('Succeed', () => {
|
|
67
|
+
it('build a transaction with a single custom instruction', async () => {
|
|
68
|
+
const transferInstruction = web3_js_1.SystemProgram.transfer({
|
|
69
|
+
fromPubkey: new web3_js_1.PublicKey(authAccount.pub),
|
|
70
|
+
toPubkey: new web3_js_1.PublicKey(otherAccount.pub),
|
|
71
|
+
lamports: 1000000,
|
|
72
|
+
});
|
|
73
|
+
const txBuilder = customInstructionBuilder();
|
|
74
|
+
txBuilder.addCustomInstruction(convertInstructionToParams(transferInstruction));
|
|
75
|
+
const tx = await txBuilder.build();
|
|
76
|
+
tx.inputs.length.should.equal(0);
|
|
77
|
+
const rawTx = tx.toBroadcastFormat();
|
|
78
|
+
should_1.default.equal(src_1.Utils.isValidRawTransaction(rawTx), true);
|
|
79
|
+
});
|
|
80
|
+
it('build a transaction with multiple custom instructions', async () => {
|
|
81
|
+
const transferInstruction = web3_js_1.SystemProgram.transfer({
|
|
82
|
+
fromPubkey: new web3_js_1.PublicKey(authAccount.pub),
|
|
83
|
+
toPubkey: new web3_js_1.PublicKey(otherAccount.pub),
|
|
84
|
+
lamports: 1000000,
|
|
85
|
+
});
|
|
86
|
+
const priorityFeeInstruction = web3_js_1.ComputeBudgetProgram.setComputeUnitPrice({
|
|
87
|
+
microLamports: 1000,
|
|
88
|
+
});
|
|
89
|
+
const txBuilder = customInstructionBuilder();
|
|
90
|
+
txBuilder.addCustomInstructions([
|
|
91
|
+
convertInstructionToParams(transferInstruction),
|
|
92
|
+
convertInstructionToParams(priorityFeeInstruction),
|
|
93
|
+
]);
|
|
94
|
+
const tx = await txBuilder.build();
|
|
95
|
+
tx.inputs.length.should.equal(0);
|
|
96
|
+
tx.outputs.length.should.equal(0);
|
|
97
|
+
const rawTx = tx.toBroadcastFormat();
|
|
98
|
+
should_1.default.equal(src_1.Utils.isValidRawTransaction(rawTx), true);
|
|
99
|
+
// Should have 2 instructions
|
|
100
|
+
tx.solTransaction.instructions.should.have.length(2);
|
|
101
|
+
});
|
|
102
|
+
it('build a transaction with custom instruction and memo', async () => {
|
|
103
|
+
const transferInstruction = web3_js_1.SystemProgram.transfer({
|
|
104
|
+
fromPubkey: new web3_js_1.PublicKey(authAccount.pub),
|
|
105
|
+
toPubkey: new web3_js_1.PublicKey(otherAccount.pub),
|
|
106
|
+
lamports: 1000000,
|
|
107
|
+
});
|
|
108
|
+
const txBuilder = customInstructionBuilder();
|
|
109
|
+
txBuilder.addCustomInstruction(convertInstructionToParams(transferInstruction));
|
|
110
|
+
txBuilder.memo(memo);
|
|
111
|
+
const tx = await txBuilder.build();
|
|
112
|
+
const rawTx = tx.toBroadcastFormat();
|
|
113
|
+
should_1.default.equal(src_1.Utils.isValidRawTransaction(rawTx), true);
|
|
114
|
+
// Should have instruction + memo
|
|
115
|
+
tx.solTransaction.instructions.should.have.length(2);
|
|
116
|
+
});
|
|
117
|
+
it('build a signed transaction with custom instruction', async () => {
|
|
118
|
+
const transferInstruction = web3_js_1.SystemProgram.transfer({
|
|
119
|
+
fromPubkey: new web3_js_1.PublicKey(authAccount.pub),
|
|
120
|
+
toPubkey: new web3_js_1.PublicKey(otherAccount.pub),
|
|
121
|
+
lamports: 1000000,
|
|
122
|
+
});
|
|
123
|
+
const txBuilder = customInstructionBuilder();
|
|
124
|
+
txBuilder.addCustomInstruction(convertInstructionToParams(transferInstruction));
|
|
125
|
+
txBuilder.sign({ key: authAccount.prv });
|
|
126
|
+
const tx = await txBuilder.build();
|
|
127
|
+
const rawTx = tx.toBroadcastFormat();
|
|
128
|
+
should_1.default.equal(src_1.Utils.isValidRawTransaction(rawTx), true);
|
|
129
|
+
// Should be signed
|
|
130
|
+
tx.solTransaction.signatures.should.not.be.empty();
|
|
131
|
+
});
|
|
132
|
+
it('clear instructions from builder', async () => {
|
|
133
|
+
const transferInstruction = web3_js_1.SystemProgram.transfer({
|
|
134
|
+
fromPubkey: new web3_js_1.PublicKey(authAccount.pub),
|
|
135
|
+
toPubkey: new web3_js_1.PublicKey(otherAccount.pub),
|
|
136
|
+
lamports: 1000000,
|
|
137
|
+
});
|
|
138
|
+
const txBuilder = customInstructionBuilder();
|
|
139
|
+
txBuilder.addCustomInstruction(convertInstructionToParams(transferInstruction));
|
|
140
|
+
txBuilder.getInstructions().should.have.length(1);
|
|
141
|
+
txBuilder.clearInstructions();
|
|
142
|
+
txBuilder.getInstructions().should.have.length(0);
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
describe('Fail', () => {
|
|
146
|
+
it('for null instruction', () => {
|
|
147
|
+
const txBuilder = customInstructionBuilder();
|
|
148
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
149
|
+
(0, should_1.default)(() => txBuilder.addCustomInstruction(null)).throwError('Instruction cannot be null or undefined');
|
|
150
|
+
});
|
|
151
|
+
it('for undefined instruction', () => {
|
|
152
|
+
const txBuilder = customInstructionBuilder();
|
|
153
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
154
|
+
(0, should_1.default)(() => txBuilder.addCustomInstruction(undefined)).throwError('Instruction cannot be null or undefined');
|
|
155
|
+
});
|
|
156
|
+
it('for instruction without programId', () => {
|
|
157
|
+
const txBuilder = customInstructionBuilder();
|
|
158
|
+
const invalidInstruction = {
|
|
159
|
+
keys: [],
|
|
160
|
+
data: '',
|
|
161
|
+
};
|
|
162
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
163
|
+
(0, should_1.default)(() => txBuilder.addCustomInstruction(invalidInstruction)).throwError('Instruction must have a valid programId string');
|
|
164
|
+
});
|
|
165
|
+
it('for instruction without keys', () => {
|
|
166
|
+
const txBuilder = customInstructionBuilder();
|
|
167
|
+
const invalidInstruction = {
|
|
168
|
+
programId: '11111111111111111111111111111112',
|
|
169
|
+
data: '',
|
|
170
|
+
};
|
|
171
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
172
|
+
(0, should_1.default)(() => txBuilder.addCustomInstruction(invalidInstruction)).throwError('Instruction must have valid keys array');
|
|
173
|
+
});
|
|
174
|
+
it('for instruction without data', () => {
|
|
175
|
+
const txBuilder = customInstructionBuilder();
|
|
176
|
+
const invalidInstruction = {
|
|
177
|
+
programId: '11111111111111111111111111111112',
|
|
178
|
+
keys: [],
|
|
179
|
+
};
|
|
180
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
181
|
+
(0, should_1.default)(() => txBuilder.addCustomInstruction(invalidInstruction)).throwError('Instruction must have valid data string');
|
|
182
|
+
});
|
|
183
|
+
it('for non-array in addCustomInstructions', () => {
|
|
184
|
+
const txBuilder = customInstructionBuilder();
|
|
185
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
186
|
+
(0, should_1.default)(() => txBuilder.addCustomInstructions('invalid')).throwError('Instructions must be an array');
|
|
187
|
+
});
|
|
188
|
+
it('when building without instructions', async () => {
|
|
189
|
+
const txBuilder = customInstructionBuilder();
|
|
190
|
+
await txBuilder.build().should.be.rejectedWith('At least one custom instruction must be specified');
|
|
191
|
+
});
|
|
192
|
+
it('when building without sender', async () => {
|
|
193
|
+
const transferInstruction = web3_js_1.SystemProgram.transfer({
|
|
194
|
+
fromPubkey: new web3_js_1.PublicKey(authAccount.pub),
|
|
195
|
+
toPubkey: new web3_js_1.PublicKey(otherAccount.pub),
|
|
196
|
+
lamports: 1000000,
|
|
197
|
+
});
|
|
198
|
+
const txBuilder = factory.getCustomInstructionBuilder();
|
|
199
|
+
txBuilder.nonce(recentBlockHash);
|
|
200
|
+
txBuilder.addCustomInstruction(convertInstructionToParams(transferInstruction));
|
|
201
|
+
await txBuilder.build().should.be.rejectedWith('Invalid transaction: missing sender');
|
|
202
|
+
});
|
|
203
|
+
it('when building without nonce', async () => {
|
|
204
|
+
const transferInstruction = web3_js_1.SystemProgram.transfer({
|
|
205
|
+
fromPubkey: new web3_js_1.PublicKey(authAccount.pub),
|
|
206
|
+
toPubkey: new web3_js_1.PublicKey(otherAccount.pub),
|
|
207
|
+
lamports: 1000000,
|
|
208
|
+
});
|
|
209
|
+
const txBuilder = factory.getCustomInstructionBuilder();
|
|
210
|
+
txBuilder.sender(authAccount.pub);
|
|
211
|
+
txBuilder.addCustomInstruction(convertInstructionToParams(transferInstruction));
|
|
212
|
+
await txBuilder.build().should.be.rejectedWith('Invalid transaction: missing nonce blockhash');
|
|
213
|
+
});
|
|
214
|
+
});
|
|
215
|
+
});
|
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tSW5zdHJ1Y3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L3RyYW5zYWN0aW9uQnVpbGRlci9jdXN0b21JbnN0cnVjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsNkNBQXlHO0FBQ3pHLDREQUF5RDtBQUN6RCxzQ0FBMkQ7QUFDM0QsOERBQWdEO0FBRWhELFFBQVEsQ0FBQyxnQ0FBZ0MsRUFBRSxHQUFHLEVBQUU7SUFDOUMsTUFBTSxPQUFPLEdBQUcsSUFBQSxxQ0FBaUIsRUFBQyxNQUFNLENBQUMsQ0FBQztJQUUxQyxNQUFNLHdCQUF3QixHQUFHLEdBQUcsRUFBRTtRQUNwQyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUN4RCxTQUFTLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pDLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUMsQ0FBQztJQUVGLE1BQU0sV0FBVyxHQUFHLElBQUksYUFBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNoRSxNQUFNLFlBQVksR0FBRyxJQUFJLGFBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3JGLE1BQU0sZUFBZSxHQUFHLDhDQUE4QyxDQUFDO0lBQ3ZFLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQztJQUV6QiwyRUFBMkU7SUFDM0UsTUFBTSwwQkFBMEIsR0FBRyxDQUFDLFdBQW1DLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFD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VyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQywwQkFBMEIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7WUFFaEYsTUFBTSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsOENBQThDLENBQUMsQ0FBQztRQUNqRyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBTeXN0ZW1Qcm9ncmFtLCBQdWJsaWNLZXksIFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb24sIENvbXB1dGVCdWRnZXRQcm9ncmFtIH0gZnJvbSAnQHNvbGFuYS93ZWIzLmpzJztcbmltcG9ydCB7IGdldEJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi4vZ2V0QnVpbGRlckZhY3RvcnknO1xuaW1wb3J0IHsgS2V5UGFpciwgVXRpbHMsIFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vc3JjJztcbmltcG9ydCAqIGFzIHRlc3REYXRhIGZyb20gJy4uLy4uL3Jlc291cmNlcy9zb2wnO1xuXG5kZXNjcmliZSgnU29sIEN1c3RvbSBJbnN0cnVjdGlvbiBCdWlsZGVyJywgKCkgPT4ge1xuICBjb25zdCBmYWN0b3J5ID0gZ2V0QnVpbGRlckZhY3RvcnkoJ3Rzb2wnKTtcblxuICBjb25zdCBjdXN0b21JbnN0cnVjdGlvbkJ1aWxkZXIgPSAoKSA9PiB7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gZmFjdG9yeS5nZXRDdXN0b21JbnN0cnVjdGlvbkJ1aWxkZXIoKTtcbiAgICB0eEJ1aWxkZXIubm9uY2UocmVjZW50QmxvY2tIYXNoKTtcbiAgICB0eEJ1aWxkZXIuc2VuZGVyKGF1dGhBY2NvdW50LnB1Yik7XG4gICAgcmV0dXJuIHR4QnVpbGRlcjtcbiAgfTtcblxuICBjb25zdCBhdXRoQWNjb3VudCA9IG5ldyBLZXlQYWlyKHRlc3REYXRhLmF1dGhBY2NvdW50KS5nZXRLZXlzKCk7XG4gIGNvbnN0IG90aGVyQWNjb3VudCA9IG5ldyBLZXlQYWlyKHsgcHJ2OiB0ZXN0RGF0YS5wcnZLZXlzLnBydktleTEuYmFzZTU4IH0pLmdldEtleXMoKTtcbiAgY29uc3QgcmVjZW50QmxvY2tIYXNoID0gJ0dIdFhRQnNvWkhWbk5GYTlZZXZBekZyMTdESmpnSFhrM3ljVEtENXhEM1ppJztcbiAgY29uc3QgbWVtbyA9ICd0ZXN0IG1lbW8nO1xuXG4gIC8vIEhlbHBlciBmdW5jdGlvbiB0byBjb252ZXJ0IFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb24gdG8gdGhlIGV4cGVjdGVkIGZvcm1hdFxuICBjb25zdCBjb252ZXJ0SW5zdHJ1Y3Rpb25Ub1BhcmFtcyA9IChpbnN0cnVjdGlvbjogVHJhbnNhY3Rpb25JbnN0cnVjdGlvbikgPT4gKHtcbiAgICBwcm9ncmFtSWQ6IGluc3RydWN0aW9uLnByb2dyYW1JZC50b1N0cmluZygpLFxuICAgIGtleXM6IGluc3RydWN0aW9uLmtleXMubWFwKChrZXkpID0+ICh7XG4gICAgICBwdWJrZXk6IGtleS5wdWJrZXkudG9TdHJpbmcoKSxcbiAgICAgIGlzU2lnbmVyOiBrZXkuaXNTaWduZXIsXG4gICAgICBpc1dyaXRhYmxlOiBrZXkuaXNXcml0YWJsZSxcbiAgICB9KSksXG4gICAgZGF0YTogaW5zdHJ1Y3Rpb24uZGF0YS50b1N0cmluZygnaGV4JyksXG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdTdWNjZWVkJywgKCkgPT4ge1xuICAgIGl0KCdidWlsZCBhIHRyYW5zYWN0aW9uIHdpdGggYSBzaW5nbGUgY3VzdG9tIGluc3RydWN0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHJhbnNmZXJJbnN0cnVjdGlvbiA9IFN5c3RlbVByb2dyYW0udHJhbnNmZXIoe1xuICAgICAgICBmcm9tUHVia2V5OiBuZXcgUHVibGljS2V5KGF1dGhBY2NvdW50LnB1YiksXG4gICAgICAgIHRvUHVia2V5OiBuZXcgUHVibGljS2V5KG90aGVyQWNjb3VudC5wdWIpLFxuICAgICAgICBsYW1wb3J0czogMTAwMDAwMCxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBjdXN0b21JbnN0cnVjdGlvbkJ1aWxkZXIoKTtcbiAgICAgIHR4QnVpbGRlci5hZGRDdXN0b21JbnN0cnVjdGlvbihjb252ZXJ0SW5zdHJ1Y3Rpb25Ub1BhcmFtcyh0cmFuc2Zlckluc3RydWN0aW9uKSk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuXG4gICAgICB0eC5pbnB1dHMubGVuZ3RoLnNob3VsZC5lcXVhbCgwKTtcblxuICAgICAgY29uc3QgcmF3VHggPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgICAgc2hvdWxkLmVxdWFsKFV0aWxzLmlzVmFsaWRSYXdUcmFuc2FjdGlvbihyYXdUeCksIHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2J1aWxkIGEgdHJhbnNhY3Rpb24gd2l0aCBtdWx0aXBsZSBjdXN0b20gaW5zdHJ1Y3Rpb25zJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHJhbnNmZXJJbnN0cnVjdGlvbiA9IFN5c3RlbVByb2dyYW0udHJhbnNmZXIoe1xuICAgICAgICBmcm9tUHVia2V5OiBuZXcgUHVibGljS2V5KGF1dGhBY2NvdW50LnB1YiksXG4gICAgICAgIHRvUHVia2V5OiBuZXcgUHVibGljS2V5KG90aGVyQWNjb3VudC5wdWIpLFxuICAgICAgICBsYW1wb3J0czogMTAwMDAwMCxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBwcmlvcml0eUZlZUluc3RydWN0aW9uID0gQ29tcHV0ZUJ1ZGdldFByb2dyYW0uc2V0Q29tcHV0ZVVuaXRQcmljZSh7XG4gICAgICAgIG1pY3JvTGFtcG9ydHM6IDEwMDAsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgdHhCdWlsZGVyID0gY3VzdG9tSW5zdHJ1Y3Rpb25CdWlsZGVyKCk7XG4gICAgICB0eEJ1aWxkZXIuYWRkQ3VzdG9tSW5zdHJ1Y3Rpb25zKFtcbiAgICAgICAgY29udmVydEluc3RydWN0aW9uVG9QYXJhbXModHJhbnNmZXJJbnN0cnVjdGlvbiksXG4gICAgICAgIGNvbnZlcnRJbnN0cnVjdGlvblRvUGFyYW1zKHByaW9yaXR5RmVlSW5zdHJ1Y3Rpb24pLFxuICAgICAgXSk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuXG4gICAgICB0eC5pbnB1dHMubGVuZ3RoLnNob3VsZC5lcXVhbCgwKTtcbiAgICAgIHR4Lm91dHB1dHMubGVuZ3RoLnNob3VsZC5lcXVhbCgwKTtcblxuICAgICAgY29uc3QgcmF3VHggPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgICAgc2hvdWxkLmVxdWFsKFV0aWxzLmlzVmFsaWRSYXdUcmFuc2FjdGlvbihyYXdUeCksIHRydWUpO1xuXG4gICAgICAvLyBTaG91bGQgaGF2ZSAyIGluc3RydWN0aW9uc1xuICAgICAgKHR4IGFzIFRyYW5zYWN0aW9uKS5zb2xUcmFuc2FjdGlvbi5pbnN0cnVjdGlvbnMuc2hvdWxkLmhhdmUubGVuZ3RoKDIpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2J1aWxkIGEgdHJhbnNhY3Rpb24gd2l0aCBjdXN0b20gaW5zdHJ1Y3Rpb24gYW5kIG1lbW8nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0cmFuc2Zlckluc3RydWN0aW9uID0gU3lzdGVtUHJvZ3JhbS50cmFuc2Zlcih7XG4gICAgICAgIGZyb21QdWJrZXk6IG5ldyBQdWJsaWNLZXkoYXV0aEFjY291bnQucHViKSxcbiAgICAgICAgdG9QdWJrZXk6IG5ldyBQdWJsaWNLZXkob3RoZXJBY2NvdW50LnB1YiksXG4gICAgICAgIGxhbXBvcnRzOiAxMDAwMDAwLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGN1c3RvbUluc3RydWN0aW9uQnVpbGRlcigpO1xuICAgICAgdHhCdWlsZGVyLmFkZEN1c3RvbUluc3RydWN0aW9uKGNvbnZlcnRJbnN0cnVjdGlvblRvUGFyYW1zKHRyYW5zZmVySW5zdHJ1Y3Rpb24pKTtcbiAgICAgIHR4QnVpbGRlci5tZW1vKG1lbW8pO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcblxuICAgICAgY29uc3QgcmF3VHggPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgICAgc2hvdWxkLmVxdWFsKFV0aWxzLmlzVmFsaWRSYXdUcmFuc2FjdGlvbihyYXdUeCksIHRydWUpO1xuXG4gICAgICAvLyBTaG91bGQgaGF2ZSBpbnN0cnVjdGlvbiArIG1lbW9cbiAgICAgICh0eCBhcyBUcmFuc2FjdGlvbikuc29sVHJhbnNhY3Rpb24uaW5zdHJ1Y3Rpb25zLnNob3VsZC5oYXZlLmxlbmd0aCgyKTtcbiAgICB9KTtcblxuICAgIGl0KCdidWlsZCBhIHNpZ25lZCB0cmFuc2FjdGlvbiB3aXRoIGN1c3RvbSBpbnN0cnVjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHRyYW5zZmVySW5zdHJ1Y3Rpb24gPSBTeXN0ZW1Qcm9ncmFtLnRyYW5zZmVyKHtcbiAgICAgICAgZnJvbVB1YmtleTogbmV3IFB1YmxpY0tleShhdXRoQWNjb3VudC5wdWIpLFxuICAgICAgICB0b1B1YmtleTogbmV3IFB1YmxpY0tleShvdGhlckFjY291bnQucHViKSxcbiAgICAgICAgbGFtcG9ydHM6IDEwMDAwMDAsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgdHhCdWlsZGVyID0gY3VzdG9tSW5zdHJ1Y3Rpb25CdWlsZGVyKCk7XG4gICAgICB0eEJ1aWxkZXIuYWRkQ3VzdG9tSW5zdHJ1Y3Rpb24oY29udmVydEluc3RydWN0aW9uVG9QYXJhbXModHJhbnNmZXJJbnN0cnVjdGlvbikpO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IGF1dGhBY2NvdW50LnBydiB9KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgIGNvbnN0IHJhd1R4ID0gdHgudG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICAgIHNob3VsZC5lcXVhbChVdGlscy5pc1ZhbGlkUmF3VHJhbnNhY3Rpb24ocmF3VHgpLCB0cnVlKTtcblxuICAgICAgLy8gU2hvdWxkIGJlIHNpZ25lZFxuICAgICAgKHR4IGFzIFRyYW5zYWN0aW9uKS5zb2xUcmFuc2FjdGlvbi5zaWduYXR1cmVzLnNob3VsZC5ub3QuYmUuZW1wdHkoKTtcbiAgICB9KTtcblxuICAgIGl0KCdjbGVhciBpbnN0cnVjdGlvbnMgZnJvbSBidWlsZGVyJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHJhbnNmZXJJbnN0cnVjdGlvbiA9IFN5c3RlbVByb2dyYW0udHJhbnNmZXIoe1xuICAgICAgICBmcm9tUHVia2V5OiBuZXcgUHVibGljS2V5KGF1dGhBY2NvdW50LnB1YiksXG4gICAgICAgIHRvUHVia2V5OiBuZXcgUHVibGljS2V5KG90aGVyQWNjb3VudC5wdWIpLFxuICAgICAgICBsYW1wb3J0czogMTAwMDAwMCxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBjdXN0b21JbnN0cnVjdGlvbkJ1aWxkZXIoKTtcbiAgICAgIHR4QnVpbGRlci5hZGRDdXN0b21JbnN0cnVjdGlvbihjb252ZXJ0SW5zdHJ1Y3Rpb25Ub1BhcmFtcyh0cmFuc2Zlckluc3RydWN0aW9uKSk7XG4gICAgICB0eEJ1aWxkZXIuZ2V0SW5zdHJ1Y3Rpb25zKCkuc2hvdWxkLmhhdmUubGVuZ3RoKDEpO1xuXG4gICAgICB0eEJ1aWxkZXIuY2xlYXJJbnN0cnVjdGlvbnMoKTtcbiAgICAgIHR4QnVpbGRlci5nZXRJbnN0cnVjdGlvbnMoKS5zaG91bGQuaGF2ZS5sZW5ndGgoMCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIC8vIFR5cGUgZm9yIHRlc3RpbmcgaW52YWxpZCBpbnN0cnVjdGlvbiBmb3JtYXRzXG4gIGludGVyZmFjZSBJbnZhbGlkSW5zdHJ1Y3Rpb24ge1xuICAgIHByb2dyYW1JZD86IHN0cmluZztcbiAgICBrZXlzPzogdW5rbm93bjtcbiAgICBkYXRhPzogdW5rbm93bjtcbiAgfVxuXG4gIGRlc2NyaWJlKCdGYWlsJywgKCkgPT4ge1xuICAgIGl0KCdmb3IgbnVsbCBpbnN0cnVjdGlvbicsICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGN1c3RvbUluc3RydWN0aW9uQnVpbGRlcigpO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgIHNob3VsZCgoKSA9PiB0eEJ1aWxkZXIuYWRkQ3VzdG9tSW5zdHJ1Y3Rpb24obnVsbCBhcyBhbnkpKS50aHJvd0Vycm9yKCdJbnN0cnVjdGlvbiBjYW5ub3QgYmUgbnVsbCBvciB1bmRlZmluZWQnKTtcbiAgICB9KTtcblxuICAgIGl0KCdmb3IgdW5kZWZpbmVkIGluc3RydWN0aW9uJywgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gY3VzdG9tSW5zdHJ1Y3Rpb25CdWlsZGVyKCk7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgc2hvdWxkKCgpID0+IHR4QnVpbGRlci5hZGRDdXN0b21JbnN0cnVjdGlvbih1bmRlZmluZWQgYXMgYW55KSkudGhyb3dFcnJvcihcbiAgICAgICAgJ0luc3RydWN0aW9uIGNhbm5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZCdcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnZm9yIGluc3RydWN0aW9uIHdpdGhvdXQgcHJvZ3JhbUlkJywgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gY3VzdG9tSW5zdHJ1Y3Rpb25CdWlsZGVyKCk7XG4gICAgICBjb25zdCBpbnZhbGlkSW5zdHJ1Y3Rpb246IEludmFsaWRJbnN0cnVjdGlvbiA9IHtcbiAgICAgICAga2V5czogW10sXG4gICAgICAgIGRhdGE6ICcnLFxuICAgICAgfTtcblxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgIHNob3VsZCgoKSA9PiB0eEJ1aWxkZXIuYWRkQ3VzdG9tSW5zdHJ1Y3Rpb24oaW52YWxpZEluc3RydWN0aW9uIGFzIGFueSkpLnRocm93RXJyb3IoXG4gICAgICAgICdJbnN0cnVjdGlvbiBtdXN0IGhhdmUgYSB2YWxpZCBwcm9ncmFtSWQgc3RyaW5nJ1xuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdmb3IgaW5zdHJ1Y3Rpb24gd2l0aG91dCBrZXlzJywgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gY3VzdG9tSW5zdHJ1Y3Rpb25CdWlsZGVyKCk7XG4gICAgICBjb25zdCBpbnZhbGlkSW5zdHJ1Y3Rpb246IEludmFsaWRJbnN0cnVjdGlvbiA9IHtcbiAgICAgICAgcHJvZ3JhbUlkOiAnMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTInLFxuICAgICAgICBkYXRhOiAnJyxcbiAgICAgIH07XG5cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICBzaG91bGQoKCkgPT4gdHhCdWlsZGVyLmFkZEN1c3RvbUluc3RydWN0aW9uKGludmFsaWRJbnN0cnVjdGlvbiBhcyBhbnkpKS50aHJvd0Vycm9yKFxuICAgICAgICAnSW5zdHJ1Y3Rpb24gbXVzdCBoYXZlIHZhbGlkIGtleXMgYXJyYXknXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ2ZvciBpbnN0cnVjdGlvbiB3aXRob3V0IGRhdGEnLCAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBjdXN0b21JbnN0cnVjdGlvbkJ1aWxkZXIoKTtcbiAgICAgIGNvbnN0IGludmFsaWRJbnN0cnVjdGlvbjogSW52YWxpZEluc3RydWN0aW9uID0ge1xuICAgICAgICBwcm9ncmFtSWQ6ICcxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMicsXG4gICAgICAgIGtleXM6IFtdLFxuICAgICAgfTtcblxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgIHNob3VsZCgoKSA9PiB0eEJ1aWxkZXIuYWRkQ3VzdG9tSW5zdHJ1Y3Rpb24oaW52YWxpZEluc3RydWN0aW9uIGFzIGFueSkpLnRocm93RXJyb3IoXG4gICAgICAgICdJbnN0cnVjdGlvbiBtdXN0IGhhdmUgdmFsaWQgZGF0YSBzdHJpbmcnXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ2ZvciBub24tYXJyYXkgaW4gYWRkQ3VzdG9tSW5zdHJ1Y3Rpb25zJywgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gY3VzdG9tSW5zdHJ1Y3Rpb25CdWlsZGVyKCk7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgc2hvdWxkKCgpID0+IHR4QnVpbGRlci5hZGRDdXN0b21JbnN0cnVjdGlvbnMoJ2ludmFsaWQnIGFzIGFueSkpLnRocm93RXJyb3IoJ0luc3RydWN0aW9ucyBtdXN0IGJlIGFuIGFycmF5Jyk7XG4gICAgfSk7XG5cbiAgICBpdCgnd2hlbiBidWlsZGluZyB3aXRob3V0IGluc3RydWN0aW9ucycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGN1c3RvbUluc3RydWN0aW9uQnVpbGRlcigpO1xuICAgICAgYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkuc2hvdWxkLmJlLnJlamVjdGVkV2l0aCgnQXQgbGVhc3Qgb25lIGN1c3RvbSBpbnN0cnVjdGlvbiBtdXN0IGJlIHNwZWNpZmllZCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3doZW4gYnVpbGRpbmcgd2l0aG91dCBzZW5kZXInLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0cmFuc2Zlckluc3RydWN0aW9uID0gU3lzdGVtUHJvZ3JhbS50cmFuc2Zlcih7XG4gICAgICAgIGZyb21QdWJrZXk6IG5ldyBQdWJsaWNLZXkoYXV0aEFjY291bnQucHViKSxcbiAgICAgICAgdG9QdWJrZXk6IG5ldyBQdWJsaWNLZXkob3RoZXJBY2NvdW50LnB1YiksXG4gICAgICAgIGxhbXBvcnRzOiAxMDAwMDAwLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZ2V0Q3VzdG9tSW5zdHJ1Y3Rpb25CdWlsZGVyKCk7XG4gICAgICB0eEJ1aWxkZXIubm9uY2UocmVjZW50QmxvY2tIYXNoKTtcbiAgICAgIHR4QnVpbGRlci5hZGRDdXN0b21JbnN0cnVjdGlvbihjb252ZXJ0SW5zdHJ1Y3Rpb25Ub1BhcmFtcyh0cmFuc2Zlckluc3RydWN0aW9uKSk7XG5cbiAgICAgIGF3YWl0IHR4QnVpbGRlci5idWlsZCgpLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoJ0ludmFsaWQgdHJhbnNhY3Rpb246IG1pc3Npbmcgc2VuZGVyJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnd2hlbiBidWlsZGluZyB3aXRob3V0IG5vbmNlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHJhbnNmZXJJbnN0cnVjdGlvbiA9IFN5c3RlbVByb2dyYW0udHJhbnNmZXIoe1xuICAgICAgICBmcm9tUHVia2V5OiBuZXcgUHVibGljS2V5KGF1dGhBY2NvdW50LnB1YiksXG4gICAgICAgIHRvUHVia2V5OiBuZXcgUHVibGljS2V5KG90aGVyQWNjb3VudC5wdWIpLFxuICAgICAgICBsYW1wb3J0czogMTAwMDAwMCxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBmYWN0b3J5LmdldEN1c3RvbUluc3RydWN0aW9uQnVpbGRlcigpO1xuICAgICAgdHhCdWlsZGVyLnNlbmRlcihhdXRoQWNjb3VudC5wdWIpO1xuICAgICAgdHhCdWlsZGVyLmFkZEN1c3RvbUluc3RydWN0aW9uKGNvbnZlcnRJbnN0cnVjdGlvblRvUGFyYW1zKHRyYW5zZmVySW5zdHJ1Y3Rpb24pKTtcblxuICAgICAgYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkuc2hvdWxkLmJlLnJlamVjdGVkV2l0aCgnSW52YWxpZCB0cmFuc2FjdGlvbjogbWlzc2luZyBub25jZSBibG9ja2hhc2gnKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stakingActivateBuilder.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/stakingActivateBuilder.ts"],"names":[],"mappings":""}
|