@bitgo-beta/sdk-coin-apt 1.0.1-beta.91 → 1.0.1-beta.910
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/apt.d.ts +9 -2
- package/dist/src/apt.d.ts.map +1 -1
- package/dist/src/apt.js +37 -11
- package/dist/src/aptNFTCollection.d.ts +18 -0
- package/dist/src/aptNFTCollection.d.ts.map +1 -0
- package/dist/src/aptNFTCollection.js +52 -0
- package/dist/src/aptToken.d.ts +19 -0
- package/dist/src/aptToken.d.ts.map +1 -0
- package/dist/src/aptToken.js +52 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -1
- package/dist/src/lib/constants.d.ts +16 -0
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +18 -2
- package/dist/src/lib/iface.d.ts +98 -2
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +1 -1
- package/dist/src/lib/index.d.ts +18 -4
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +35 -7
- package/dist/src/lib/transaction/abstractDelegationPoolAmountBasedTransaction.d.ts +21 -0
- package/dist/src/lib/transaction/abstractDelegationPoolAmountBasedTransaction.d.ts.map +1 -0
- package/dist/src/lib/transaction/abstractDelegationPoolAmountBasedTransaction.js +61 -0
- package/dist/src/lib/transaction/abstractDelegationPoolTransaction.d.ts +13 -0
- package/dist/src/lib/transaction/abstractDelegationPoolTransaction.d.ts.map +1 -0
- package/dist/src/lib/transaction/abstractDelegationPoolTransaction.js +23 -0
- package/dist/src/lib/transaction/abstractTransferTransaction.d.ts +10 -0
- package/dist/src/lib/transaction/abstractTransferTransaction.d.ts.map +1 -0
- package/dist/src/lib/transaction/abstractTransferTransaction.js +39 -0
- package/dist/src/lib/transaction/customTransaction.d.ts +89 -0
- package/dist/src/lib/transaction/customTransaction.d.ts.map +1 -0
- package/dist/src/lib/transaction/customTransaction.js +278 -0
- package/dist/src/lib/transaction/delegationPoolAddStakeTransaction.d.ts +10 -0
- package/dist/src/lib/transaction/delegationPoolAddStakeTransaction.d.ts.map +1 -0
- package/dist/src/lib/transaction/delegationPoolAddStakeTransaction.js +48 -0
- package/dist/src/lib/transaction/delegationPoolUnlockTransaction.d.ts +10 -0
- package/dist/src/lib/transaction/delegationPoolUnlockTransaction.d.ts.map +1 -0
- package/dist/src/lib/transaction/delegationPoolUnlockTransaction.js +24 -0
- package/dist/src/lib/transaction/delegationPoolWithdrawTransaction.d.ts +10 -0
- package/dist/src/lib/transaction/delegationPoolWithdrawTransaction.d.ts.map +1 -0
- package/dist/src/lib/transaction/delegationPoolWithdrawTransaction.js +43 -0
- package/dist/src/lib/transaction/digitalAssetTransfer.d.ts +10 -0
- package/dist/src/lib/transaction/digitalAssetTransfer.d.ts.map +1 -0
- package/dist/src/lib/transaction/digitalAssetTransfer.js +45 -0
- package/dist/src/lib/transaction/fungibleAssetTransfer.d.ts +12 -0
- package/dist/src/lib/transaction/fungibleAssetTransfer.d.ts.map +1 -0
- package/dist/src/lib/transaction/fungibleAssetTransfer.js +73 -0
- package/dist/src/lib/transaction/transaction.d.ts +45 -7
- package/dist/src/lib/transaction/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction/transaction.js +175 -61
- package/dist/src/lib/transaction/transferTransaction.d.ts +10 -8
- package/dist/src/lib/transaction/transferTransaction.d.ts.map +1 -1
- package/dist/src/lib/transaction/transferTransaction.js +48 -41
- package/dist/src/lib/transactionBuilder/customTransactionBuilder.d.ts +64 -0
- package/dist/src/lib/transactionBuilder/customTransactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder/customTransactionBuilder.js +127 -0
- package/dist/src/lib/transactionBuilder/delegationPoolAddStakeTransactionBuilder.d.ts +15 -0
- package/dist/src/lib/transactionBuilder/delegationPoolAddStakeTransactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder/delegationPoolAddStakeTransactionBuilder.js +50 -0
- package/dist/src/lib/transactionBuilder/delegationPoolUnlockTransactionBuilder.d.ts +15 -0
- package/dist/src/lib/transactionBuilder/delegationPoolUnlockTransactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder/delegationPoolUnlockTransactionBuilder.js +50 -0
- package/dist/src/lib/transactionBuilder/delegationPoolWithdrawTransactionBuilder.d.ts +15 -0
- package/dist/src/lib/transactionBuilder/delegationPoolWithdrawTransactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder/delegationPoolWithdrawTransactionBuilder.js +50 -0
- package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.d.ts +14 -0
- package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.js +55 -0
- package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.d.ts +15 -0
- package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.js +61 -0
- package/dist/src/lib/{transactionBuilder.d.ts → transactionBuilder/transactionBuilder.d.ts} +25 -11
- package/dist/src/lib/transactionBuilder/transactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder/transactionBuilder.js +169 -0
- package/dist/src/lib/{transferBuilder.d.ts → transactionBuilder/transferBuilder.d.ts} +5 -7
- package/dist/src/lib/transactionBuilder/transferBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder/transferBuilder.js +56 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts +26 -10
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +82 -18
- package/dist/src/lib/utils/validation.d.ts +32 -0
- package/dist/src/lib/utils/validation.d.ts.map +1 -0
- package/dist/src/lib/utils/validation.js +99 -0
- package/dist/src/lib/utils.d.ts +29 -5
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +111 -28
- package/dist/src/register.d.ts.map +1 -1
- package/dist/src/register.js +9 -1
- package/dist/test/integration/index.d.ts +1 -0
- package/dist/test/integration/index.d.ts.map +1 -0
- package/dist/test/integration/index.js +1 -0
- package/dist/test/resources/apt.d.ts +56 -0
- package/dist/test/resources/apt.d.ts.map +1 -0
- package/dist/test/resources/apt.js +115 -0
- package/dist/test/unit/apt.d.ts +2 -0
- package/dist/test/unit/apt.d.ts.map +1 -0
- package/dist/test/unit/apt.js +375 -0
- package/dist/test/unit/aptToken.d.ts +2 -0
- package/dist/test/unit/aptToken.d.ts.map +1 -0
- package/dist/test/unit/aptToken.js +92 -0
- package/dist/test/unit/customTransaction.test.d.ts +2 -0
- package/dist/test/unit/customTransaction.test.d.ts.map +1 -0
- package/dist/test/unit/customTransaction.test.js +264 -0
- package/dist/test/unit/getBuilderFactory.d.ts +3 -0
- package/dist/test/unit/getBuilderFactory.d.ts.map +1 -0
- package/dist/test/unit/getBuilderFactory.js +10 -0
- package/dist/test/unit/keyPair.d.ts +2 -0
- package/dist/test/unit/keyPair.d.ts.map +1 -0
- package/dist/test/unit/keyPair.js +71 -0
- package/dist/test/unit/transactionBuilder/customTransactionBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/customTransactionBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/customTransactionBuilder.js +743 -0
- package/dist/test/unit/transactionBuilder/delegationPoolAddStakeTransactionBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/delegationPoolAddStakeTransactionBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/delegationPoolAddStakeTransactionBuilder.js +172 -0
- package/dist/test/unit/transactionBuilder/delegationPoolUnlockTransactionBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/delegationPoolUnlockTransactionBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/delegationPoolUnlockTransactionBuilder.js +148 -0
- package/dist/test/unit/transactionBuilder/delegationPoolWithdrawTransactionBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/delegationPoolWithdrawTransactionBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/delegationPoolWithdrawTransactionBuilder.js +172 -0
- package/dist/test/unit/transactionBuilder/digitalAssetTransferBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/digitalAssetTransferBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/digitalAssetTransferBuilder.js +276 -0
- package/dist/test/unit/transactionBuilder/fungibleAssetTransferBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/fungibleAssetTransferBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/fungibleAssetTransferBuilder.js +449 -0
- package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/transferBuilder.js +529 -0
- package/dist/test/unit/utils.d.ts +2 -0
- package/dist/test/unit/utils.d.ts.map +1 -0
- package/dist/test/unit/utils.js +108 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +14 -11
- package/.eslintignore +0 -4
- package/.gitignore +0 -3
- package/.mocharc.yml +0 -8
- package/.prettierignore +0 -2
- package/CHANGELOG.md +0 -72
- package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
- package/dist/src/lib/transactionBuilder.js +0 -118
- package/dist/src/lib/transferBuilder.d.ts.map +0 -1
- package/dist/src/lib/transferBuilder.js +0 -25
|
@@ -0,0 +1,264 @@
|
|
|
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 statics_1 = require("@bitgo-beta/statics");
|
|
40
|
+
const customTransaction_1 = require("../../src/lib/transaction/customTransaction");
|
|
41
|
+
const ts_sdk_1 = require("@aptos-labs/ts-sdk");
|
|
42
|
+
const should_1 = __importDefault(require("should"));
|
|
43
|
+
const testData = __importStar(require("../resources/apt"));
|
|
44
|
+
describe('CustomTransaction - Argument Conversion', () => {
|
|
45
|
+
let customTransaction;
|
|
46
|
+
beforeEach(() => {
|
|
47
|
+
customTransaction = new customTransaction_1.CustomTransaction(statics_1.coins.get('tapt'));
|
|
48
|
+
});
|
|
49
|
+
// Helper function to access private method for testing
|
|
50
|
+
const callConvertArgumentByABI = (transaction, arg, paramType) => {
|
|
51
|
+
return transaction.convertArgumentByABI(arg, paramType);
|
|
52
|
+
};
|
|
53
|
+
describe('Real Transaction Scenarios', () => {
|
|
54
|
+
describe('Common Primitive Arguments', () => {
|
|
55
|
+
it('should handle address strings from test data', () => {
|
|
56
|
+
// Test with actual addresses from test resources
|
|
57
|
+
const result1 = callConvertArgumentByABI(customTransaction, testData.sender.address, new ts_sdk_1.TypeTagAddress());
|
|
58
|
+
const result2 = callConvertArgumentByABI(customTransaction, testData.recipients[0].address, new ts_sdk_1.TypeTagAddress());
|
|
59
|
+
should_1.default.exist(result1);
|
|
60
|
+
should_1.default.exist(result2);
|
|
61
|
+
// Results should be AccountAddress objects or original strings
|
|
62
|
+
if (typeof result1 === 'object') {
|
|
63
|
+
should_1.default.exist(result1.toString);
|
|
64
|
+
}
|
|
65
|
+
if (typeof result2 === 'object') {
|
|
66
|
+
should_1.default.exist(result2.toString);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
it('should handle amount strings from test data', () => {
|
|
70
|
+
// Test with actual amounts from test resources
|
|
71
|
+
const result1 = callConvertArgumentByABI(customTransaction, testData.AMOUNT.toString(), new ts_sdk_1.TypeTagU64());
|
|
72
|
+
const result2 = callConvertArgumentByABI(customTransaction, testData.recipients[0].amount, new ts_sdk_1.TypeTagU64());
|
|
73
|
+
should_1.default.equal(result1, testData.AMOUNT.toString());
|
|
74
|
+
should_1.default.equal(result2, testData.recipients[0].amount);
|
|
75
|
+
});
|
|
76
|
+
it('should handle numeric amounts as numbers for small types', () => {
|
|
77
|
+
const result1 = callConvertArgumentByABI(customTransaction, 255, new ts_sdk_1.TypeTagU8());
|
|
78
|
+
const result2 = callConvertArgumentByABI(customTransaction, testData.AMOUNT, new ts_sdk_1.TypeTagU64());
|
|
79
|
+
should_1.default.equal(result1, 255);
|
|
80
|
+
should_1.default.equal(result2, testData.AMOUNT.toString()); // Large numbers become strings
|
|
81
|
+
});
|
|
82
|
+
it('should handle boolean values correctly', () => {
|
|
83
|
+
const result1 = callConvertArgumentByABI(customTransaction, true, new ts_sdk_1.TypeTagBool());
|
|
84
|
+
const result2 = callConvertArgumentByABI(customTransaction, false, new ts_sdk_1.TypeTagBool());
|
|
85
|
+
should_1.default.equal(result1, true);
|
|
86
|
+
should_1.default.equal(result2, false);
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
describe('BCS Encoded Arguments from Real Transactions', () => {
|
|
90
|
+
it('should handle BCS data with data property (from serialized tx)', () => {
|
|
91
|
+
// This simulates BCS-encoded data structure found in real transactions
|
|
92
|
+
const bcsData = {
|
|
93
|
+
data: new Uint8Array([0xe8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]), // 1000 in little-endian
|
|
94
|
+
};
|
|
95
|
+
const result = callConvertArgumentByABI(customTransaction, bcsData, new ts_sdk_1.TypeTagU64());
|
|
96
|
+
should_1.default.equal(result, '0xe803000000000000');
|
|
97
|
+
});
|
|
98
|
+
it('should handle BCS address data', () => {
|
|
99
|
+
// Create proper 32-byte address data as found in real transactions
|
|
100
|
+
const addressBytes = new Array(32).fill(0);
|
|
101
|
+
addressBytes[31] = 0x01; // Standard address format
|
|
102
|
+
const bcsData = {
|
|
103
|
+
data: new Uint8Array(addressBytes),
|
|
104
|
+
};
|
|
105
|
+
const result = callConvertArgumentByABI(customTransaction, bcsData, new ts_sdk_1.TypeTagAddress());
|
|
106
|
+
should_1.default.exist(result);
|
|
107
|
+
if (typeof result === 'string') {
|
|
108
|
+
result.should.match(/^0x[0-9a-fA-F]+$/);
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
describe('Nested BCS Structures (Real Transaction Parsing)', () => {
|
|
113
|
+
it('should handle U64 amount in nested structure (typical from parsed tx)', () => {
|
|
114
|
+
// This structure is common when parsing amounts from real Aptos transactions
|
|
115
|
+
const nestedAmount = {
|
|
116
|
+
value: {
|
|
117
|
+
value: new Uint8Array([0xe8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]), // 1000
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
const result = callConvertArgumentByABI(customTransaction, nestedAmount, new ts_sdk_1.TypeTagU64());
|
|
121
|
+
should_1.default.equal(result, '1000');
|
|
122
|
+
});
|
|
123
|
+
it('should handle double nested numeric structure from BCS parsing', () => {
|
|
124
|
+
// This represents the typical structure when deserializing BCS-encoded numeric values
|
|
125
|
+
const nestedData = {
|
|
126
|
+
value: {
|
|
127
|
+
value: {
|
|
128
|
+
0: 0xe8, // 1000 in little-endian format
|
|
129
|
+
1: 0x03,
|
|
130
|
+
2: 0x00,
|
|
131
|
+
3: 0x00,
|
|
132
|
+
4: 0x00,
|
|
133
|
+
5: 0x00,
|
|
134
|
+
6: 0x00,
|
|
135
|
+
7: 0x00,
|
|
136
|
+
},
|
|
137
|
+
},
|
|
138
|
+
};
|
|
139
|
+
const result = callConvertArgumentByABI(customTransaction, nestedData, new ts_sdk_1.TypeTagU64());
|
|
140
|
+
should_1.default.equal(result, '1000');
|
|
141
|
+
});
|
|
142
|
+
it('should handle nested structure for boolean values', () => {
|
|
143
|
+
// Boolean values in BCS format
|
|
144
|
+
const booleanTrue = {
|
|
145
|
+
value: {
|
|
146
|
+
value: {
|
|
147
|
+
0: 1,
|
|
148
|
+
},
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
const booleanFalse = {
|
|
152
|
+
value: {
|
|
153
|
+
value: {
|
|
154
|
+
0: 0,
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
};
|
|
158
|
+
const result1 = callConvertArgumentByABI(customTransaction, booleanTrue, new ts_sdk_1.TypeTagBool());
|
|
159
|
+
const result2 = callConvertArgumentByABI(customTransaction, booleanFalse, new ts_sdk_1.TypeTagBool());
|
|
160
|
+
should_1.default.equal(result1, true);
|
|
161
|
+
should_1.default.equal(result2, false);
|
|
162
|
+
});
|
|
163
|
+
it('should handle simple nested value (fix for original bug)', () => {
|
|
164
|
+
// This tests the bug fix where primitive values in nested structures failed
|
|
165
|
+
const nestedPrimitive = {
|
|
166
|
+
value: '1000',
|
|
167
|
+
};
|
|
168
|
+
const result = callConvertArgumentByABI(customTransaction, nestedPrimitive, new ts_sdk_1.TypeTagU64());
|
|
169
|
+
should_1.default.equal(result, '1000'); // Should extract and convert the primitive value
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
describe('Large Integer Types (Common in DeFi)', () => {
|
|
173
|
+
it('should handle U128 amounts (common for high-precision tokens)', () => {
|
|
174
|
+
const largeAmount = '340282366920938463463374607431768211455'; // Near max U128
|
|
175
|
+
const result = callConvertArgumentByABI(customTransaction, largeAmount, new ts_sdk_1.TypeTagU128());
|
|
176
|
+
should_1.default.equal(result, largeAmount);
|
|
177
|
+
});
|
|
178
|
+
it('should handle U128 in BCS format', () => {
|
|
179
|
+
// 16-byte array for U128 (example: value 1000)
|
|
180
|
+
const bytes = new Array(16).fill(0);
|
|
181
|
+
bytes[0] = 0xe8;
|
|
182
|
+
bytes[1] = 0x03;
|
|
183
|
+
const nestedData = {
|
|
184
|
+
value: {
|
|
185
|
+
value: Object.fromEntries(bytes.map((byte, index) => [index.toString(), byte])),
|
|
186
|
+
},
|
|
187
|
+
};
|
|
188
|
+
const result = callConvertArgumentByABI(customTransaction, nestedData, new ts_sdk_1.TypeTagU128());
|
|
189
|
+
should_1.default.equal(result, '1000');
|
|
190
|
+
});
|
|
191
|
+
});
|
|
192
|
+
describe('Error Handling for Real Edge Cases', () => {
|
|
193
|
+
it('should handle empty BCS structures gracefully', () => {
|
|
194
|
+
const emptyStructure = {
|
|
195
|
+
value: {
|
|
196
|
+
value: {},
|
|
197
|
+
},
|
|
198
|
+
};
|
|
199
|
+
const result = callConvertArgumentByABI(customTransaction, emptyStructure, new ts_sdk_1.TypeTagU64());
|
|
200
|
+
should_1.default.equal(result, emptyStructure); // Should return original when no valid bytes found
|
|
201
|
+
});
|
|
202
|
+
it('should handle non-BCS objects', () => {
|
|
203
|
+
const regularObject = { someProperty: 'value' };
|
|
204
|
+
const result = callConvertArgumentByABI(customTransaction, regularObject, new ts_sdk_1.TypeTagU64());
|
|
205
|
+
should_1.default.equal(result, regularObject); // Should return as-is for non-BCS objects
|
|
206
|
+
});
|
|
207
|
+
it('should handle null and undefined (defensive)', () => {
|
|
208
|
+
const result1 = callConvertArgumentByABI(customTransaction, null, new ts_sdk_1.TypeTagU64());
|
|
209
|
+
const result2 = callConvertArgumentByABI(customTransaction, undefined, new ts_sdk_1.TypeTagU64());
|
|
210
|
+
should_1.default.equal(result1, null);
|
|
211
|
+
should_1.default.equal(result2, undefined);
|
|
212
|
+
});
|
|
213
|
+
});
|
|
214
|
+
describe('Integration with Utility Functions', () => {
|
|
215
|
+
it('should use bytesToHex utility for non-numeric BCS data', () => {
|
|
216
|
+
const bcsData = {
|
|
217
|
+
data: new Uint8Array([0x12, 0x34, 0x56, 0x78]),
|
|
218
|
+
};
|
|
219
|
+
const result = callConvertArgumentByABI(customTransaction, bcsData, new ts_sdk_1.TypeTagAddress());
|
|
220
|
+
// Should either be converted to AccountAddress or remain as hex string
|
|
221
|
+
should_1.default.exist(result);
|
|
222
|
+
});
|
|
223
|
+
it('should use tryParseAccountAddress utility for address strings', () => {
|
|
224
|
+
const validAddress = '0x0000000000000000000000000000000000000000000000000000000000000001';
|
|
225
|
+
const result = callConvertArgumentByABI(customTransaction, validAddress, new ts_sdk_1.TypeTagAddress());
|
|
226
|
+
should_1.default.exist(result);
|
|
227
|
+
// Should either be AccountAddress object or original string
|
|
228
|
+
if (typeof result === 'object') {
|
|
229
|
+
should_1.default.exist(result.toString);
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
it('should use convertNumericArgument utility for byte arrays', () => {
|
|
233
|
+
const uint8Data = new Uint8Array([0xe8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]); // 1000
|
|
234
|
+
const nestedData = {
|
|
235
|
+
value: {
|
|
236
|
+
value: uint8Data,
|
|
237
|
+
},
|
|
238
|
+
};
|
|
239
|
+
const result = callConvertArgumentByABI(customTransaction, nestedData, new ts_sdk_1.TypeTagU64());
|
|
240
|
+
should_1.default.equal(result, '1000'); // Should use existing numeric conversion logic
|
|
241
|
+
});
|
|
242
|
+
});
|
|
243
|
+
});
|
|
244
|
+
describe('Round-trip Compatibility', () => {
|
|
245
|
+
it('should maintain compatibility with existing transaction parsing', () => {
|
|
246
|
+
// This ensures our refactored method works with the existing transaction builder tests
|
|
247
|
+
const testArguments = [
|
|
248
|
+
{ arg: testData.sender.address, type: new ts_sdk_1.TypeTagAddress() },
|
|
249
|
+
{ arg: testData.AMOUNT.toString(), type: new ts_sdk_1.TypeTagU64() },
|
|
250
|
+
{ arg: true, type: new ts_sdk_1.TypeTagBool() },
|
|
251
|
+
{ arg: 255, type: new ts_sdk_1.TypeTagU8() },
|
|
252
|
+
];
|
|
253
|
+
testArguments.forEach(({ arg, type }) => {
|
|
254
|
+
const result = callConvertArgumentByABI(customTransaction, arg, type);
|
|
255
|
+
should_1.default.exist(result);
|
|
256
|
+
// Result should be compatible with existing transaction building logic
|
|
257
|
+
if (typeof result === 'string' || typeof result === 'number' || typeof result === 'boolean') {
|
|
258
|
+
should_1.default.exist(result.toString);
|
|
259
|
+
}
|
|
260
|
+
});
|
|
261
|
+
});
|
|
262
|
+
});
|
|
263
|
+
});
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tVHJhbnNhY3Rpb24udGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvdW5pdC9jdXN0b21UcmFuc2FjdGlvbi50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQTRDO0FBQzVDLG1GQUFnRjtBQUNoRiwrQ0FBcUc7QUFDckcsb0RBQTRCO0FBQzVCLDJEQUE2QztBQUU3QyxRQUFRLENBQUMseUNBQXlDLEVBQUUsR0FBRyxFQUFFO0lBQ3ZELElBQUksaUJBQW9DLENBQUM7SUFFekMsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLGlCQUFpQixHQUFHLElBQUkscUNBQWlCLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUMsQ0FBQyxDQUFDO0lBRUgsdURBQXVEO0lBQ3ZELE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxXQUE4QixFQUFFLEdBQVEsRUFBRSxTQUFjLEVBQU8sRUFBRTtRQUNqRyxPQUFRLFdBQW1CLENBQUMsb0JBQW9CLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ25FLENBQUMsQ0FBQztJQUVGLFFBQVEsQ0FBQyw0QkFBNEIsRUFBRSxHQUFHLEVBQUU7UUFDMUMsUUFBUSxDQUFDLDRCQUE0QixFQUFFLEdBQUcsRUFBRTtZQUMxQyxFQUFFLENBQUMsOENBQThDLEVBQUUsR0FBRyxFQUFFO2dCQUN0RCxpREFBaUQ7Z0JBQ2pELE1BQU0sT0FBTyxHQUFHLHdCQUF3QixDQUFDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksdUJBQWMsRUFBRSxDQUFDLENBQUM7Z0JBQzNHLE1BQU0sT0FBTyxHQUFHLHdCQUF3QixDQUN0QyxpQkFBaUIsRUFDakIsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVB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RSxDQUFDLGlFQUFpRSxFQUFFLEdBQUcsRUFBRTtZQUN6RSx1RkFBdUY7WUFDdkYsTUFBTSxhQUFhLEdBQUc7Z0JBQ3BCLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLHVCQUFjLEVBQUUsRUFBRTtnQkFDNUQsRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxtQkFBVSxFQUFFLEVBQUU7Z0JBQzNELEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxvQkFBVyxFQUFFLEVBQUU7Z0JBQ3RDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxrQkFBUyxFQUFFLEVBQUU7YUFDcEMsQ0FBQztZQUVGLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFO2dCQUN0QyxNQUFNLE1BQU0sR0FBRyx3QkFBd0IsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3RFLGdCQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUVyQix1RUFBdUU7Z0JBQ3ZFLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxPQUFPLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztvQkFDNUYsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNoQyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgQ3VzdG9tVHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uL2N1c3RvbVRyYW5zYWN0aW9uJztcbmltcG9ydCB7IFR5cGVUYWdBZGRyZXNzLCBUeXBlVGFnQm9vbCwgVHlwZVRhZ1U4LCBUeXBlVGFnVTY0LCBUeXBlVGFnVTEyOCB9IGZyb20gJ0BhcHRvcy1sYWJzL3RzLXNkayc7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgKiBhcyB0ZXN0RGF0YSBmcm9tICcuLi9yZXNvdXJjZXMvYXB0JztcblxuZGVzY3JpYmUoJ0N1c3RvbVRyYW5zYWN0aW9uIC0gQXJndW1lbnQgQ29udmVyc2lvbicsICgpID0+IHtcbiAgbGV0IGN1c3RvbVRyYW5zYWN0aW9uOiBDdXN0b21UcmFuc2FjdGlvbjtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBjdXN0b21UcmFuc2FjdGlvbiA9IG5ldyBDdXN0b21UcmFuc2FjdGlvbihjb2lucy5nZXQoJ3RhcHQnKSk7XG4gIH0pO1xuXG4gIC8vIEhlbHBlciBmdW5jdGlvbiB0byBhY2Nlc3MgcHJpdmF0ZSBtZXRob2QgZm9yIHRlc3RpbmdcbiAgY29uc3QgY2FsbENvbnZlcnRBcmd1bWVudEJ5QUJJID0gKHRyYW5zYWN0aW9uOiBDdXN0b21UcmFuc2FjdGlvbiwgYXJnOiBhbnksIHBhcmFtVHlwZTogYW55KTogYW55ID0+IHtcbiAgICByZXR1cm4gKHRyYW5zYWN0aW9uIGFzIGFueSkuY29udmVydEFyZ3VtZW50QnlBQkkoYXJnLCBwYXJhbVR5cGUpO1xuICB9O1xuXG4gIGRlc2NyaWJlKCdSZWFsIFRyYW5zYWN0aW9uIFNjZW5hcmlvcycsICgpID0+IHtcbiAgICBkZXNjcmliZSgnQ29tbW9uIFByaW1pdGl2ZSBBcmd1bWVudHMnLCAoKSA9PiB7XG4gICAgICBpdCgnc2hvdWxkIGhhbmRsZSBhZGRyZXNzIHN0cmluZ3MgZnJvbSB0ZXN0IGRhdGEnLCAoKSA9PiB7XG4gICAgICAgIC8vIFRlc3Qgd2l0aCBhY3R1YWwgYWRkcmVzc2VzIGZyb20gdGVzdCByZXNvdXJjZXNcbiAgICAgICAgY29uc3QgcmVzdWx0MSA9IGNhbGxDb252ZXJ0QXJndW1lbnRCeUFCSShjdXN0b21UcmFuc2FjdGlvbiwgdGVzdERhdGEuc2VuZGVyLmFkZHJlc3MsIG5ldyBUeXBlVGFnQWRkcmVzcygpKTtcbiAgICAgICAgY29uc3QgcmVzdWx0MiA9IGNhbGxDb252ZXJ0QXJndW1lbnRCeUFCSShcbiAgICAgICAgICBjdXN0b21UcmFuc2FjdGlvbixcbiAgICAgICAgICB0ZXN0RGF0YS5yZWNpcGllbnRzWzBdLmFkZHJlc3MsXG4gICAgICAgICAgbmV3IFR5cGVUYWdBZGRyZXNzKClcbiAgICAgICAgKTtcblxuICAgICAgICBzaG91bGQuZXhpc3QocmVzdWx0MSk7XG4gICAgICAgIHNob3VsZC5leGlzdChyZXN1bHQyKTtcblxuICAgICAgICAvLyBSZXN1bHRzIHNob3VsZCBiZSBBY2NvdW50QWRkcmVzcyBvYmplY3RzIG9yIG9yaWdpbmFsIHN0cmluZ3NcbiAgICAgICAgaWYgKHR5cGVvZiByZXN1bHQxID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIHNob3VsZC5leGlzdChyZXN1bHQxLnRvU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHJlc3VsdDIgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgc2hvdWxkLmV4aXN0KHJlc3VsdDIudG9TdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBoYW5kbGUgYW1vdW50IHN0cmluZ3MgZnJvbSB0ZXN0IGRhdGEnLCAoKSA9PiB7XG4gICAgICAgIC8vIFRlc3Qgd2l0aCBhY3R1YWwgYW1vdW50cyBmcm9tIHRlc3QgcmVzb3VyY2VzXG4gICAgICAgIGNvbnN0IHJlc3VsdDEgPSBjYWxsQ29udmVydEFyZ3VtZW50QnlBQkkoY3VzdG9tVHJhbnNhY3Rpb24sIHRlc3REYXRhLkFNT1VOVC50b1N0cmluZygpLCBuZXcgVHlwZVRhZ1U2NCgpKTtcbiAgICAgICAgY29uc3QgcmVzdWx0MiA9IGNhbGxDb252ZXJ0QXJndW1lbnRCeUFCSShjdXN0b21UcmFuc2FjdGlvbiwgdGVzdERhdGEucmVjaXBpZW50c1swXS5hbW91bnQsIG5ldyBUeXBlVGFnVTY0KCkpO1xuXG4gICAgICAgIHNob3VsZC5lcXVhbChyZXN1bHQxLCB0ZXN0RGF0YS5BTU9VTlQudG9TdHJpbmcoKSk7XG4gICAgICAgIHNob3VsZC5lcXVhbChyZXN1bHQyLCB0ZXN0RGF0YS5yZWNpcGllbnRzWzBdLmFtb3VudCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBoYW5kbGUgbnVtZXJpYyBhbW91bnRzIGFzIG51bWJlcnMgZm9yIHNtYWxsIHR5cGVzJywgKCkgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQxID0gY2FsbENvbnZlcnRBcmd1bWVudEJ5QUJJKGN1c3RvbVRyYW5zYWN0aW9uLCAyNTUsIG5ldyBUeXBlVGFnVTgoKSk7XG4gICAgICAgIGNvbnN0IHJlc3VsdDIgPSBjYWxsQ29udmVydEFyZ3VtZW50QnlBQkkoY3VzdG9tVHJhbnNhY3Rpb24sIHRlc3REYXRhLkFNT1VOVCwgbmV3IFR5cGVUYWdVNjQoKSk7XG5cbiAgICAgICAgc2hvdWxkLmVxdWFsKHJlc3VsdDEsIDI1NSk7XG4gICAgICAgIHNob3VsZC5lcXVhbChyZXN1bHQyLCB0ZXN0RGF0YS5BTU9VTlQudG9TdHJpbmcoKSk7IC8vIExhcmdlIG51bWJlcnMgYmVjb21lIHN0cmluZ3NcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIGhhbmRsZSBib29sZWFuIHZhbHVlcyBjb3JyZWN0bHknLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdDEgPSBjYWxsQ29udmVydEFyZ3VtZW50QnlBQkkoY3VzdG9tVHJhbnNhY3Rpb24sIHRydWUsIG5ldyBUeXBlVGFnQm9vbCgpKTtcbiAgICAgICAgY29uc3QgcmVzdWx0MiA9IGNhbGxDb252ZXJ0QXJndW1lbnRCeUFCSShjdXN0b21UcmFuc2FjdGlvbiwgZmFsc2UsIG5ldyBUeXBlVGFnQm9vbCgpKTtcblxuICAgICAgICBzaG91bGQuZXF1YWwocmVzdWx0MSwgdHJ1ZSk7XG4gICAgICAgIHNob3VsZC5lcXVhbChyZXN1bHQyLCBmYWxzZSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdCQ1MgRW5jb2RlZCBBcmd1bWVudHMgZnJvbSBSZWFsIFRyYW5zYWN0aW9ucycsICgpID0+IHtcbiAgICAgIGl0KCdzaG91bGQgaGFuZGxlIEJDUyBkYXRhIHdpdGggZGF0YSBwcm9wZXJ0eSAoZnJvbSBzZXJpYWxpemVkIHR4KScsICgpID0+IHtcbiAgICAgICAgLy8gVGhpcyBzaW11bGF0ZXMgQkNTLWVuY29kZWQgZGF0YSBzdHJ1Y3R1cmUgZm91bmQgaW4gcmVhbCB0cmFuc2FjdGlvbnNcbiAgICAgICAgY29uc3QgYmNzRGF0YSA9IHtcbiAgICAgICAgICBkYXRhOiBuZXcgVWludDhBcnJheShbMHhlOCwgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMF0pLCAvLyAxMDAwIGluIGxpdHRsZS1lbmRpYW5cbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCByZXN1bHQgPSBjYWxsQ29udmVydEFyZ3VtZW50QnlBQkkoY3VzdG9tVHJhbnNhY3Rpb24sIGJjc0RhdGEsIG5ldyBUeXBlVGFnVTY0KCkpO1xuICAgICAgICBzaG91bGQuZXF1YWwocmVzdWx0LCAnMHhlODAzMDAwMDAwMDAwMDAwJyk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBoYW5kbGUgQkNTIGFkZHJlc3MgZGF0YScsICgpID0+IHtcbiAgICAgICAgLy8gQ3JlYXRlIHByb3BlciAzMi1ieXRlIGFkZHJlc3MgZGF0YSBhcyBmb3VuZCBpbiByZWFsIHRyYW5zYWN0aW9uc1xuICAgICAgICBjb25zdCBhZGRyZXNzQnl0ZXMgPSBuZXcgQXJyYXkoMzIpLmZpbGwoMCk7XG4gICAgICAgIGFkZHJlc3NCeXRlc1szMV0gPSAweDAxOyAvLyBTdGFuZGFyZCBhZGRyZXNzIGZvcm1hdFxuXG4gICAgICAgIGNvbnN0IGJjc0RhdGEgPSB7XG4gICAgICAgICAgZGF0YTogbmV3IFVpbnQ4QXJyYXkoYWRkcmVzc0J5dGVzKSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCByZXN1bHQgPSBjYWxsQ29udmVydEFyZ3VtZW50QnlBQkkoY3VzdG9tVHJhbnNhY3Rpb24sIGJjc0RhdGEsIG5ldyBUeXBlVGFnQWRkcmVzcygpKTtcbiAgICAgICAgc2hvdWxkLmV4aXN0KHJlc3VsdCk7XG5cbiAgICAgICAgaWYgKHR5cGVvZiByZXN1bHQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgcmVzdWx0LnNob3VsZC5tYXRjaCgvXjB4WzAtOWEtZkEtRl0rJC8pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdOZXN0ZWQgQkNTIFN0cnVjdHVyZXMgKFJlYWwgVHJhbnNhY3Rpb24gUGFyc2luZyknLCAoKSA9PiB7XG4gICAgICBpdCgnc2hvdWxkIGhhbmRsZSBVNjQgYW1vdW50IGluIG5lc3RlZCBzdHJ1Y3R1cmUgKHR5cGljYWwgZnJvbSBwYXJzZWQgdHgpJywgKCkgPT4ge1xuICAgICAgICAvLyBUaGlzIHN0cnVjdHVyZSBpcyBjb21tb24gd2hlbiBwYXJzaW5nIGFtb3VudHMgZnJvbSByZWFsIEFwdG9zIHRyYW5zYWN0aW9uc1xuICAgICAgICBjb25zdCBuZXN0ZWRBbW91bnQgPSB7XG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIHZhbHVlOiBuZXcgVWludDhBcnJheShbMHhlOCwgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMF0pLCAvLyAxMDAwXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCByZXN1bHQgPSBjYWxsQ29udmVydEFyZ3VtZW50QnlBQkkoY3VzdG9tVHJhbnNhY3Rpb24sIG5lc3RlZEFtb3VudCwgbmV3IFR5cGVUYWdVNjQoKSk7XG4gICAgICAgIHNob3VsZC5lcXVhbChyZXN1bHQsICcxMDAwJyk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBoYW5kbGUgZG91YmxlIG5lc3RlZCBudW1lcmljIHN0cnVjdHVyZSBmcm9tIEJDUyBwYXJzaW5nJywgKCkgPT4ge1xuICAgICAgICAvLyBUaGlzIHJlcHJlc2VudHMgdGhlIHR5cGljYWwgc3RydWN0dXJlIHdoZW4gZGVzZXJpYWxpemluZyBCQ1MtZW5jb2RlZCBudW1lcmljIHZhbHVlc1xuICAgICAgICBjb25zdCBuZXN0ZWREYXRhID0ge1xuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAwOiAweGU4LCAvLyAxMDAwIGluIGxpdHRsZS1lbmRpYW4gZm9ybWF0XG4gICAgICAgICAgICAgIDE6IDB4MDMsXG4gICAgICAgICAgICAgIDI6IDB4MDAsXG4gICAgICAgICAgICAgIDM6IDB4MDAsXG4gICAgICAgICAgICAgIDQ6IDB4MDAsXG4gICAgICAgICAgICAgIDU6IDB4MDAsXG4gICAgICAgICAgICAgIDY6IDB4MDAsXG4gICAgICAgICAgICAgIDc6IDB4MDAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gY2FsbENvbnZlcnRBcmd1bWVudEJ5QUJJKGN1c3RvbVRyYW5zYWN0aW9uLCBuZXN0ZWREYXRhLCBuZXcgVHlwZVRhZ1U2NCgpKTtcbiAgICAgICAgc2hvdWxkLmVxdWFsKHJlc3VsdCwgJzEwMDAnKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIGhhbmRsZSBuZXN0ZWQgc3RydWN0dXJlIGZvciBib29sZWFuIHZhbHVlcycsICgpID0+IHtcbiAgICAgICAgLy8gQm9vbGVhbiB2YWx1ZXMgaW4gQkNTIGZvcm1hdFxuICAgICAgICBjb25zdCBib29sZWFuVHJ1ZSA9IHtcbiAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgMDogMSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBib29sZWFuRmFsc2UgPSB7XG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgIDA6IDAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgcmVzdWx0MSA9IGNhbGxDb252ZXJ0QXJndW1lbnRCeUFCSShjdXN0b21UcmFuc2FjdGlvbiwgYm9vbGVhblRydWUsIG5ldyBUeXBlVGFnQm9vbCgpKTtcbiAgICAgICAgY29uc3QgcmVzdWx0MiA9IGNhbGxDb252ZXJ0QXJndW1lbnRCeUFCSShjdXN0b21UcmFuc2FjdGlvbiwgYm9vbGVhbkZhbHNlLCBuZXcgVHlwZVRhZ0Jvb2woKSk7XG5cbiAgICAgICAgc2hvdWxkLmVxdWFsKHJlc3VsdDEsIHRydWUpO1xuICAgICAgICBzaG91bGQuZXF1YWwocmVzdWx0MiwgZmFsc2UpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgaGFuZGxlIHNpbXBsZSBuZXN0ZWQgdmFsdWUgKGZpeCBmb3Igb3JpZ2luYWwgYnVnKScsICgpID0+IHtcbiAgICAgICAgLy8gVGhpcyB0ZXN0cyB0aGUgYnVnIGZpeCB3aGVyZSBwcmltaXRpdmUgdmFsdWVzIGluIG5lc3RlZCBzdHJ1Y3R1cmVzIGZhaWxlZFxuICAgICAgICBjb25zdCBuZXN0ZWRQcmltaXRpdmUgPSB7XG4gICAgICAgICAgdmFsdWU6ICcxMDAwJyxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCByZXN1bHQgPSBjYWxsQ29udmVydEFyZ3VtZW50QnlBQkkoY3VzdG9tVHJhbnNhY3Rpb24sIG5lc3RlZFByaW1pdGl2ZSwgbmV3IFR5cGVUYWdVNjQoKSk7XG4gICAgICAgIHNob3VsZC5lcXVhbChyZXN1bHQsICcxMDAwJyk7IC8vIFNob3VsZCBleHRyYWN0IGFuZCBjb252ZXJ0IHRoZSBwcmltaXRpdmUgdmFsdWVcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ0xhcmdlIEludGVnZXIgVHlwZXMgKENvbW1vbiBpbiBEZUZpKScsICgpID0+IHtcbiAgICAgIGl0KCdzaG91bGQgaGFuZGxlIFUxMjggYW1vdW50cyAoY29tbW9uIGZvciBoaWdoLXByZWNpc2lvbiB0b2tlbnMpJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBsYXJnZUFtb3VudCA9ICczNDAyODIzNjY5MjA5Mzg0NjM0NjMzNzQ2MDc0MzE3NjgyMTE0NTUnOyAvLyBOZWFyIG1heCBVMTI4XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGNhbGxDb252ZXJ0QXJndW1lbnRCeUFCSShjdXN0b21UcmFuc2FjdGlvbiwgbGFyZ2VBbW91bnQsIG5ldyBUeXBlVGFnVTEyOCgpKTtcblxuICAgICAgICBzaG91bGQuZXF1YWwocmVzdWx0LCBsYXJnZUFtb3VudCk7XG4gICAgICB9KTtcblxuICAgICAgaXQoJ3Nob3VsZCBoYW5kbGUgVTEyOCBpbiBCQ1MgZm9ybWF0JywgKCkgPT4ge1xuICAgICAgICAvLyAxNi1ieXRlIGFycmF5IGZvciBVMTI4IChleGFtcGxlOiB2YWx1ZSAxMDAwKVxuICAgICAgICBjb25zdCBieXRlcyA9IG5ldyBBcnJheSgxNikuZmlsbCgwKTtcbiAgICAgICAgYnl0ZXNbMF0gPSAweGU4O1xuICAgICAgICBieXRlc1sxXSA9IDB4MDM7XG5cbiAgICAgICAgY29uc3QgbmVzdGVkRGF0YSA9IHtcbiAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgdmFsdWU6IE9iamVjdC5mcm9tRW50cmllcyhieXRlcy5tYXAoKGJ5dGUsIGluZGV4KSA9PiBbaW5kZXgudG9TdHJpbmcoKSwgYnl0ZV0pKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGNhbGxDb252ZXJ0QXJndW1lbnRCeUFCSShjdXN0b21UcmFuc2FjdGlvbiwgbmVzdGVkRGF0YSwgbmV3IFR5cGVUYWdVMTI4KCkpO1xuICAgICAgICBzaG91bGQuZXF1YWwocmVzdWx0LCAnMTAwMCcpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnRXJyb3IgSGFuZGxpbmcgZm9yIFJlYWwgRWRnZSBDYXNlcycsICgpID0+IHtcbiAgICAgIGl0KCdzaG91bGQgaGFuZGxlIGVtcHR5IEJDUyBzdHJ1Y3R1cmVzIGdyYWNlZnVsbHknLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGVtcHR5U3RydWN0dXJlID0ge1xuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICB2YWx1ZToge30sXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCByZXN1bHQgPSBjYWxsQ29udmVydEFyZ3VtZW50QnlBQkkoY3VzdG9tVHJhbnNhY3Rpb24sIGVtcHR5U3RydWN0dXJlLCBuZXcgVHlwZVRhZ1U2NCgpKTtcbiAgICAgICAgc2hvdWxkLmVxdWFsKHJlc3VsdCwgZW1wdHlTdHJ1Y3R1cmUpOyAvLyBTaG91bGQgcmV0dXJuIG9yaWdpbmFsIHdoZW4gbm8gdmFsaWQgYnl0ZXMgZm91bmRcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIGhhbmRsZSBub24tQkNTIG9iamVjdHMnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlZ3VsYXJPYmplY3QgPSB7IHNvbWVQcm9wZXJ0eTogJ3ZhbHVlJyB9O1xuICAgICAgICBjb25zdCByZXN1bHQgPSBjYWxsQ29udmVydEFyZ3VtZW50QnlBQkkoY3VzdG9tVHJhbnNhY3Rpb24sIHJlZ3VsYXJPYmplY3QsIG5ldyBUeXBlVGFnVTY0KCkpO1xuXG4gICAgICAgIHNob3VsZC5lcXVhbChyZXN1bHQsIHJlZ3VsYXJPYmplY3QpOyAvLyBTaG91bGQgcmV0dXJuIGFzLWlzIGZvciBub24tQkNTIG9iamVjdHNcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIGhhbmRsZSBudWxsIGFuZCB1bmRlZmluZWQgKGRlZmVuc2l2ZSknLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdDEgPSBjYWxsQ29udmVydEFyZ3VtZW50QnlBQkkoY3VzdG9tVHJhbnNhY3Rpb24sIG51bGwsIG5ldyBUeXBlVGFnVTY0KCkpO1xuICAgICAgICBjb25zdCByZXN1bHQyID0gY2FsbENvbnZlcnRBcmd1bWVudEJ5QUJJKGN1c3RvbVRyYW5zYWN0aW9uLCB1bmRlZmluZWQsIG5ldyBUeXBlVGFnVTY0KCkpO1xuXG4gICAgICAgIHNob3VsZC5lcXVhbChyZXN1bHQxLCBudWxsKTtcbiAgICAgICAgc2hvdWxkLmVxdWFsKHJlc3VsdDIsIHVuZGVmaW5lZCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdJbnRlZ3JhdGlvbiB3aXRoIFV0aWxpdHkgRnVuY3Rpb25zJywgKCkgPT4ge1xuICAgICAgaXQoJ3Nob3VsZCB1c2UgYnl0ZXNUb0hleCB1dGlsaXR5IGZvciBub24tbnVtZXJpYyBCQ1MgZGF0YScsICgpID0+IHtcbiAgICAgICAgY29uc3QgYmNzRGF0YSA9IHtcbiAgICAgICAgICBkYXRhOiBuZXcgVWludDhBcnJheShbMHgxMiwgMHgzNCwgMHg1NiwgMHg3OF0pLFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGNhbGxDb252ZXJ0QXJndW1lbnRCeUFCSShjdXN0b21UcmFuc2FjdGlvbiwgYmNzRGF0YSwgbmV3IFR5cGVUYWdBZGRyZXNzKCkpO1xuICAgICAgICAvLyBTaG91bGQgZWl0aGVyIGJlIGNvbnZlcnRlZCB0byBBY2NvdW50QWRkcmVzcyBvciByZW1haW4gYXMgaGV4IHN0cmluZ1xuICAgICAgICBzaG91bGQuZXhpc3QocmVzdWx0KTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgnc2hvdWxkIHVzZSB0cnlQYXJzZUFjY291bnRBZGRyZXNzIHV0aWxpdHkgZm9yIGFkZHJlc3Mgc3RyaW5ncycsICgpID0+IHtcbiAgICAgICAgY29uc3QgdmFsaWRBZGRyZXNzID0gJzB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMSc7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGNhbGxDb252ZXJ0QXJndW1lbnRCeUFCSShjdXN0b21UcmFuc2FjdGlvbiwgdmFsaWRBZGRyZXNzLCBuZXcgVHlwZVRhZ0FkZHJlc3MoKSk7XG5cbiAgICAgICAgc2hvdWxkLmV4aXN0KHJlc3VsdCk7XG4gICAgICAgIC8vIFNob3VsZCBlaXRoZXIgYmUgQWNjb3VudEFkZHJlc3Mgb2JqZWN0IG9yIG9yaWdpbmFsIHN0cmluZ1xuICAgICAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBzaG91bGQuZXhpc3QocmVzdWx0LnRvU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgdXNlIGNvbnZlcnROdW1lcmljQXJndW1lbnQgdXRpbGl0eSBmb3IgYnl0ZSBhcnJheXMnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHVpbnQ4RGF0YSA9IG5ldyBVaW50OEFycmF5KFsweGU4LCAweDAzLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwXSk7IC8vIDEwMDBcbiAgICAgICAgY29uc3QgbmVzdGVkRGF0YSA9IHtcbiAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgdmFsdWU6IHVpbnQ4RGF0YSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGNhbGxDb252ZXJ0QXJndW1lbnRCeUFCSShjdXN0b21UcmFuc2FjdGlvbiwgbmVzdGVkRGF0YSwgbmV3IFR5cGVUYWdVNjQoKSk7XG4gICAgICAgIHNob3VsZC5lcXVhbChyZXN1bHQsICcxMDAwJyk7IC8vIFNob3VsZCB1c2UgZXhpc3RpbmcgbnVtZXJpYyBjb252ZXJzaW9uIGxvZ2ljXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ1JvdW5kLXRyaXAgQ29tcGF0aWJpbGl0eScsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIG1haW50YWluIGNvbXBhdGliaWxpdHkgd2l0aCBleGlzdGluZyB0cmFuc2FjdGlvbiBwYXJzaW5nJywgKCkgPT4ge1xuICAgICAgLy8gVGhpcyBlbnN1cmVzIG91ciByZWZhY3RvcmVkIG1ldGhvZCB3b3JrcyB3aXRoIHRoZSBleGlzdGluZyB0cmFuc2FjdGlvbiBidWlsZGVyIHRlc3RzXG4gICAgICBjb25zdCB0ZXN0QXJndW1lbnRzID0gW1xuICAgICAgICB7IGFyZzogdGVzdERhdGEuc2VuZGVyLmFkZHJlc3MsIHR5cGU6IG5ldyBUeXBlVGFnQWRkcmVzcygpIH0sXG4gICAgICAgIHsgYXJnOiB0ZXN0RGF0YS5BTU9VTlQudG9TdHJpbmcoKSwgdHlwZTogbmV3IFR5cGVUYWdVNjQoKSB9LFxuICAgICAgICB7IGFyZzogdHJ1ZSwgdHlwZTogbmV3IFR5cGVUYWdCb29sKCkgfSxcbiAgICAgICAgeyBhcmc6IDI1NSwgdHlwZTogbmV3IFR5cGVUYWdVOCgpIH0sXG4gICAgICBdO1xuXG4gICAgICB0ZXN0QXJndW1lbnRzLmZvckVhY2goKHsgYXJnLCB0eXBlIH0pID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gY2FsbENvbnZlcnRBcmd1bWVudEJ5QUJJKGN1c3RvbVRyYW5zYWN0aW9uLCBhcmcsIHR5cGUpO1xuICAgICAgICBzaG91bGQuZXhpc3QocmVzdWx0KTtcblxuICAgICAgICAvLyBSZXN1bHQgc2hvdWxkIGJlIGNvbXBhdGlibGUgd2l0aCBleGlzdGluZyB0cmFuc2FjdGlvbiBidWlsZGluZyBsb2dpY1xuICAgICAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHJlc3VsdCA9PT0gJ251bWJlcicgfHwgdHlwZW9mIHJlc3VsdCA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgc2hvdWxkLmV4aXN0KHJlc3VsdC50b1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getBuilderFactory.d.ts","sourceRoot":"","sources":["../../../test/unit/getBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAGtD,eAAO,MAAM,iBAAiB,SAAU,MAAM,KAAG,yBAEhD,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getBuilderFactory = void 0;
|
|
4
|
+
const src_1 = require("../../src");
|
|
5
|
+
const statics_1 = require("@bitgo-beta/statics");
|
|
6
|
+
const getBuilderFactory = (coin) => {
|
|
7
|
+
return new src_1.TransactionBuilderFactory(statics_1.coins.get(coin));
|
|
8
|
+
};
|
|
9
|
+
exports.getBuilderFactory = getBuilderFactory;
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0QnVpbGRlckZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvZ2V0QnVpbGRlckZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQXNEO0FBQ3RELGlEQUE0QztBQUVyQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsSUFBWSxFQUE2QixFQUFFO0lBQzNFLE9BQU8sSUFBSSwrQkFBeUIsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDeEQsQ0FBQyxDQUFDO0FBRlcsUUFBQSxpQkFBaUIscUJBRTVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4uLy4uL3NyYyc7XG5pbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuXG5leHBvcnQgY29uc3QgZ2V0QnVpbGRlckZhY3RvcnkgPSAoY29pbjogc3RyaW5nKTogVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSA9PiB7XG4gIHJldHVybiBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2lucy5nZXQoY29pbikpO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../test/unit/keyPair.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,71 @@
|
|
|
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
|
+
const assert_1 = __importDefault(require("assert"));
|
|
7
|
+
const src_1 = require("../../src");
|
|
8
|
+
const utils_1 = __importDefault(require("../../src/lib/utils"));
|
|
9
|
+
const should_1 = __importDefault(require("should"));
|
|
10
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
11
|
+
const sdk_lib_mpc_1 = require("@bitgo-beta/sdk-lib-mpc");
|
|
12
|
+
const sdk_test_1 = require("@bitgo-beta/sdk-test");
|
|
13
|
+
const sdk_api_1 = require("@bitgo-beta/sdk-api");
|
|
14
|
+
describe('Apt KeyPair', function () {
|
|
15
|
+
let rootKeychain;
|
|
16
|
+
let rootPublicKey;
|
|
17
|
+
let MPC;
|
|
18
|
+
let hdTree;
|
|
19
|
+
let bitgo;
|
|
20
|
+
let basecoin;
|
|
21
|
+
before(async () => {
|
|
22
|
+
hdTree = await sdk_lib_mpc_1.Ed25519Bip32HdTree.initialize();
|
|
23
|
+
MPC = await sdk_core_1.Eddsa.initialize(hdTree);
|
|
24
|
+
const A = MPC.keyShare(1, 2, 3);
|
|
25
|
+
const B = MPC.keyShare(2, 2, 3);
|
|
26
|
+
const C = MPC.keyShare(3, 2, 3);
|
|
27
|
+
const A_combine = MPC.keyCombine(A.uShare, [B.yShares[1], C.yShares[1]]);
|
|
28
|
+
const commonKeychain = A_combine.pShare.y + A_combine.pShare.chaincode;
|
|
29
|
+
rootKeychain = MPC.deriveUnhardened(commonKeychain, 'm/0');
|
|
30
|
+
rootPublicKey = Buffer.from(rootKeychain, 'hex').slice(0, 32).toString('hex');
|
|
31
|
+
bitgo = sdk_test_1.TestBitGo.decorate(sdk_api_1.BitGoAPI, { env: 'mock' });
|
|
32
|
+
bitgo.safeRegister('tapt', src_1.Tapt.createInstance);
|
|
33
|
+
basecoin = bitgo.coin('tapt');
|
|
34
|
+
});
|
|
35
|
+
describe('should create a valid KeyPair', () => {
|
|
36
|
+
it('from an empty value', async () => {
|
|
37
|
+
const keyPair = new src_1.KeyPair();
|
|
38
|
+
should_1.default.exists(keyPair.getKeys().prv);
|
|
39
|
+
should_1.default.exists(keyPair.getKeys().pub);
|
|
40
|
+
const address = await utils_1.default.getAddressFromPublicKey(keyPair.getKeys().pub);
|
|
41
|
+
console.log('address:', address);
|
|
42
|
+
should_1.default.exists(address);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
describe('Keypair from derived Public Key', () => {
|
|
46
|
+
it('should create keypair with just derived public key', () => {
|
|
47
|
+
const keyPair = new src_1.KeyPair({ pub: rootPublicKey });
|
|
48
|
+
keyPair.getKeys().pub.should.equal(rootPublicKey);
|
|
49
|
+
});
|
|
50
|
+
it('should derived ed25519 public key should be valid', () => {
|
|
51
|
+
utils_1.default.isValidPublicKey(rootPublicKey).should.be.true();
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
describe('Keypair from random seed', () => {
|
|
55
|
+
it('should generate a keypair from random seed', function () {
|
|
56
|
+
const keyPair = basecoin.generateKeyPair();
|
|
57
|
+
keyPair.should.have.property('pub');
|
|
58
|
+
keyPair.should.have.property('prv');
|
|
59
|
+
basecoin.isValidPub(keyPair.pub).should.equal(true);
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
describe('should fail to create a KeyPair', function () {
|
|
63
|
+
it('from an invalid public key', () => {
|
|
64
|
+
const source = {
|
|
65
|
+
pub: '01D63D',
|
|
66
|
+
};
|
|
67
|
+
assert_1.default.throws(() => new src_1.KeyPair(source));
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvdW5pdC9rZXlQYWlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG1DQUEwQztBQUMxQyxnRUFBd0M7QUFDeEMsb0RBQTRCO0FBQzVCLG1EQUE2QztBQUM3Qyx5REFBcUU7QUFDckUsbURBQStEO0FBQy9ELGlEQUErQztBQUUvQyxRQUFRLENBQUMsYUFBYSxFQUFFO0lBQ3RCLElBQUksWUFBWSxDQUFDO0lBQ2pCLElBQUksYUFBYSxDQUFDO0lBQ2xCLElBQUksR0FBVSxDQUFDO0lBQ2YsSUFBSSxNQUFjLENBQUM7SUFDbkIsSUFBSSxLQUFtQixDQUFDO0lBQ3hCLElBQUksUUFBUSxDQUFDO0lBRWIsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ2hCLE1BQU0sR0FBRyxNQUFNLGdDQUFrQixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQy9DLEdBQUcsR0FBRyxNQUFNLGdCQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoQyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEMsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRWhDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFekUsTUFBTSxjQUFj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QUFFLFFBQVE7YUFDZCxDQUFDO1lBRUYsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxhQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBLZXlQYWlyLCBUYXB0IH0gZnJvbSAnLi4vLi4vc3JjJztcbmltcG9ydCB1dGlscyBmcm9tICcuLi8uLi9zcmMvbGliL3V0aWxzJztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IEVkZHNhIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgRWQyNTUxOUJpcDMySGRUcmVlLCBIRFRyZWUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstbGliLW1wYyc7XG5pbXBvcnQgeyBUZXN0Qml0R28sIFRlc3RCaXRHb0FQSSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay10ZXN0JztcbmltcG9ydCB7IEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWFwaSc7XG5cbmRlc2NyaWJlKCdBcHQgS2V5UGFpcicsIGZ1bmN0aW9uICgpIHtcbiAgbGV0IHJvb3RLZXljaGFpbjtcbiAgbGV0IHJvb3RQdWJsaWNLZXk7XG4gIGxldCBNUEM6IEVkZHNhO1xuICBsZXQgaGRUcmVlOiBIRFRyZWU7XG4gIGxldCBiaXRnbzogVGVzdEJpdEdvQVBJO1xuICBsZXQgYmFzZWNvaW47XG5cbiAgYmVmb3JlKGFzeW5jICgpID0+IHtcbiAgICBoZFRyZWUgPSBhd2FpdCBFZDI1NTE5QmlwMzJIZFRyZWUuaW5pdGlhbGl6ZSgpO1xuICAgIE1QQyA9IGF3YWl0IEVkZHNhLmluaXRpYWxpemUoaGRUcmVlKTtcbiAgICBjb25zdCBBID0gTVBDLmtleVNoYXJlKDEsIDIsIDMpO1xuICAgIGNvbnN0IEIgPSBNUEMua2V5U2hhcmUoMiwgMiwgMyk7XG4gICAgY29uc3QgQyA9IE1QQy5rZXlTaGFyZSgzLCAyLCAzKTtcblxuICAgIGNvbnN0IEFfY29tYmluZSA9IE1QQy5rZXlDb21iaW5lKEEudVNoYXJlLCBbQi55U2hhcmVzWzFdLCBDLnlTaGFyZXNbMV1dKTtcblxuICAgIGNvbnN0IGNvbW1vbktleWNoYWluID0gQV9jb21iaW5lLnBTaGFyZS55ICsgQV9jb21iaW5lLnBTaGFyZS5jaGFpbmNvZGU7XG4gICAgcm9vdEtleWNoYWluID0gTVBDLmRlcml2ZVVuaGFyZGVuZWQoY29tbW9uS2V5Y2hhaW4sICdtLzAnKTtcbiAgICByb290UHVibGljS2V5ID0gQnVmZmVyLmZyb20ocm9vdEtleWNoYWluLCAnaGV4Jykuc2xpY2UoMCwgMzIpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICBiaXRnbyA9IFRlc3RCaXRHby5kZWNvcmF0ZShCaXRHb0FQSSwgeyBlbnY6ICdtb2NrJyB9KTtcbiAgICBiaXRnby5zYWZlUmVnaXN0ZXIoJ3RhcHQnLCBUYXB0LmNyZWF0ZUluc3RhbmNlKTtcbiAgICBiYXNlY29pbiA9IGJpdGdvLmNvaW4oJ3RhcHQnKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3Nob3VsZCBjcmVhdGUgYSB2YWxpZCBLZXlQYWlyJywgKCkgPT4ge1xuICAgIGl0KCdmcm9tIGFuIGVtcHR5IHZhbHVlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3Qga2V5UGFpciA9IG5ldyBLZXlQYWlyKCk7XG4gICAgICBzaG91bGQuZXhpc3RzKGtleVBhaXIuZ2V0S2V5cygpLnBydik7XG4gICAgICBzaG91bGQuZXhpc3RzKGtleVBhaXIuZ2V0S2V5cygpLnB1Yik7XG4gICAgICBjb25zdCBhZGRyZXNzID0gYXdhaXQgdXRpbHMuZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkoa2V5UGFpci5nZXRLZXlzKCkucHViKTtcbiAgICAgIGNvbnNvbGUubG9nKCdhZGRyZXNzOicsIGFkZHJlc3MpO1xuICAgICAgc2hvdWxkLmV4aXN0cyhhZGRyZXNzKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ0tleXBhaXIgZnJvbSBkZXJpdmVkIFB1YmxpYyBLZXknLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBjcmVhdGUga2V5cGFpciB3aXRoIGp1c3QgZGVyaXZlZCBwdWJsaWMga2V5JywgKCkgPT4ge1xuICAgICAgY29uc3Qga2V5UGFpciA9IG5ldyBLZXlQYWlyKHsgcHViOiByb290UHVibGljS2V5IH0pO1xuICAgICAga2V5UGFpci5nZXRLZXlzKCkucHViLnNob3VsZC5lcXVhbChyb290UHVibGljS2V5KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZGVyaXZlZCBlZDI1NTE5IHB1YmxpYyBrZXkgc2hvdWxkIGJlIHZhbGlkJywgKCkgPT4ge1xuICAgICAgdXRpbHMuaXNWYWxpZFB1YmxpY0tleShyb290UHVibGljS2V5KS5zaG91bGQuYmUudHJ1ZSgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnS2V5cGFpciBmcm9tIHJhbmRvbSBzZWVkJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgZ2VuZXJhdGUgYSBrZXlwYWlyIGZyb20gcmFuZG9tIHNlZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gYmFzZWNvaW4uZ2VuZXJhdGVLZXlQYWlyKCk7XG4gICAgICBrZXlQYWlyLnNob3VsZC5oYXZlLnByb3BlcnR5KCdwdWInKTtcbiAgICAgIGtleVBhaXIuc2hvdWxkLmhhdmUucHJvcGVydHkoJ3BydicpO1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZFB1YihrZXlQYWlyLnB1Yikuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnc2hvdWxkIGZhaWwgdG8gY3JlYXRlIGEgS2V5UGFpcicsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnZnJvbSBhbiBpbnZhbGlkIHB1YmxpYyBrZXknLCAoKSA9PiB7XG4gICAgICBjb25zdCBzb3VyY2UgPSB7XG4gICAgICAgIHB1YjogJzAxRDYzRCcsXG4gICAgICB9O1xuXG4gICAgICBhc3NlcnQudGhyb3dzKCgpID0+IG5ldyBLZXlQYWlyKHNvdXJjZSkpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"customTransactionBuilder.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/customTransactionBuilder.ts"],"names":[],"mappings":""}
|