@bitgo/sdk-coin-starknet 0.0.1 → 1.2.0
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/LICENSE +191 -0
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +20 -0
- package/dist/src/lib/constants.d.ts +13 -0
- package/dist/src/lib/constants.d.ts.map +1 -0
- package/dist/src/lib/constants.js +25 -0
- package/dist/src/lib/iface.d.ts +78 -0
- package/dist/src/lib/iface.d.ts.map +1 -0
- package/dist/src/lib/iface.js +9 -0
- package/dist/src/lib/index.d.ts +9 -0
- package/dist/src/lib/index.d.ts.map +1 -0
- package/dist/src/lib/index.js +53 -0
- package/dist/src/lib/keyPair.d.ts +9 -0
- package/dist/src/lib/keyPair.d.ts.map +1 -0
- package/dist/src/lib/keyPair.js +48 -0
- package/dist/src/lib/transaction.d.ts +23 -0
- package/dist/src/lib/transaction.d.ts.map +1 -0
- package/dist/src/lib/transaction.js +145 -0
- package/dist/src/lib/transactionBuilder.d.ts +43 -0
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder.js +158 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts +16 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilderFactory.js +44 -0
- package/dist/src/lib/transferBuilder.d.ts +21 -0
- package/dist/src/lib/transferBuilder.d.ts.map +1 -0
- package/dist/src/lib/transferBuilder.js +88 -0
- package/dist/src/lib/utils.d.ts +104 -0
- package/dist/src/lib/utils.d.ts.map +1 -0
- package/dist/src/lib/utils.js +290 -0
- package/dist/src/register.d.ts +3 -0
- package/dist/src/register.d.ts.map +1 -0
- package/dist/src/register.js +10 -0
- package/dist/src/starknet.d.ts +35 -0
- package/dist/src/starknet.d.ts.map +1 -0
- package/dist/src/starknet.js +127 -0
- package/dist/test/resources/starknet.d.ts +98 -0
- package/dist/test/resources/starknet.d.ts.map +1 -0
- package/dist/test/resources/starknet.js +104 -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 +56 -0
- package/dist/test/unit/starknet.d.ts +2 -0
- package/dist/test/unit/starknet.d.ts.map +1 -0
- package/dist/test/unit/starknet.js +126 -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 +53 -0
- package/dist/test/unit/transactionBuilder/transactionBuilderFactory.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/transactionBuilderFactory.js +74 -0
- package/dist/test/unit/transferBuilder.d.ts +2 -0
- package/dist/test/unit/transferBuilder.d.ts.map +1 -0
- package/dist/test/unit/transferBuilder.js +208 -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 +260 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +52 -10
|
@@ -0,0 +1,127 @@
|
|
|
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.Starknet = void 0;
|
|
7
|
+
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
8
|
+
const statics_1 = require("@bitgo/statics");
|
|
9
|
+
const crypto_1 = require("crypto");
|
|
10
|
+
const transactionBuilderFactory_1 = require("./lib/transactionBuilderFactory");
|
|
11
|
+
const utils_1 = __importDefault(require("./lib/utils"));
|
|
12
|
+
const sdk_lib_mpc_1 = require("@bitgo/sdk-lib-mpc");
|
|
13
|
+
class Starknet extends sdk_core_1.BaseCoin {
|
|
14
|
+
constructor(bitgo, staticsCoin) {
|
|
15
|
+
super(bitgo);
|
|
16
|
+
if (!staticsCoin) {
|
|
17
|
+
throw new Error('missing required constructor parameter staticsCoin');
|
|
18
|
+
}
|
|
19
|
+
this._staticsCoin = staticsCoin;
|
|
20
|
+
}
|
|
21
|
+
static createInstance(bitgo, staticsCoin) {
|
|
22
|
+
return new Starknet(bitgo, staticsCoin);
|
|
23
|
+
}
|
|
24
|
+
getChain() {
|
|
25
|
+
return this._staticsCoin.name;
|
|
26
|
+
}
|
|
27
|
+
getBaseChain() {
|
|
28
|
+
return this._staticsCoin.name;
|
|
29
|
+
}
|
|
30
|
+
getFamily() {
|
|
31
|
+
return this._staticsCoin.family;
|
|
32
|
+
}
|
|
33
|
+
getFullName() {
|
|
34
|
+
return this._staticsCoin.fullName;
|
|
35
|
+
}
|
|
36
|
+
getBaseFactor() {
|
|
37
|
+
return Math.pow(10, this._staticsCoin.decimalPlaces);
|
|
38
|
+
}
|
|
39
|
+
async explainTransaction(params) {
|
|
40
|
+
const factory = this.getBuilderFactory();
|
|
41
|
+
const txBuilder = await factory.from(params.transactionHex);
|
|
42
|
+
const transaction = await txBuilder.build();
|
|
43
|
+
return transaction.explainTransaction();
|
|
44
|
+
}
|
|
45
|
+
async verifyTransaction(params) {
|
|
46
|
+
const { txParams, txPrebuild } = params;
|
|
47
|
+
const txHex = txPrebuild?.txHex;
|
|
48
|
+
if (!txHex) {
|
|
49
|
+
throw new Error('txHex is required');
|
|
50
|
+
}
|
|
51
|
+
const explainedTx = await this.explainTransaction({ transactionHex: txHex });
|
|
52
|
+
if (Array.isArray(txParams.recipients) && txParams.recipients.length > 0) {
|
|
53
|
+
if (txParams.recipients.length > 1) {
|
|
54
|
+
throw new Error(`${this.getChain()} doesn't support sending to more than 1 destination address within a single transaction. Try again, using only a single recipient.`);
|
|
55
|
+
}
|
|
56
|
+
if (explainedTx.outputs.length !== 1) {
|
|
57
|
+
throw new Error('Tx outputs does not match with expected txParams recipients');
|
|
58
|
+
}
|
|
59
|
+
const output = explainedTx.outputs[0];
|
|
60
|
+
const recipient = txParams.recipients[0];
|
|
61
|
+
const normalizedOutput = utils_1.default.normalizeAddress(output.address);
|
|
62
|
+
const normalizedRecipient = utils_1.default.normalizeAddress(recipient.address);
|
|
63
|
+
if (normalizedOutput !== normalizedRecipient || output.amount !== recipient.amount) {
|
|
64
|
+
throw new Error('Tx outputs does not match with expected txParams recipients');
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
async isWalletAddress(params) {
|
|
70
|
+
const { address } = params;
|
|
71
|
+
if (!this.isValidAddress(address)) {
|
|
72
|
+
throw new sdk_core_1.InvalidAddressError(`invalid address: ${address}`);
|
|
73
|
+
}
|
|
74
|
+
const result = await (0, sdk_core_1.verifyMPCWalletAddress)({ ...params, keyCurve: 'secp256k1' }, this.isValidAddress.bind(this), (pubKey) => utils_1.default.getAddressFromPublicKey(pubKey));
|
|
75
|
+
if (!result) {
|
|
76
|
+
throw new sdk_core_1.UnexpectedAddressError(`address validation failure: address ${address} is not a wallet address`);
|
|
77
|
+
}
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
async parseTransaction(params) {
|
|
81
|
+
return {};
|
|
82
|
+
}
|
|
83
|
+
generateKeyPair(seed) {
|
|
84
|
+
return utils_1.default.generateKeyPair(seed);
|
|
85
|
+
}
|
|
86
|
+
isValidAddress(address) {
|
|
87
|
+
return utils_1.default.isValidAddress(address);
|
|
88
|
+
}
|
|
89
|
+
// Starknet is TSS-only; signing is handled by threshold ECDSA in wallet-platform/OVC.
|
|
90
|
+
async signTransaction(_params) {
|
|
91
|
+
throw new sdk_core_1.MethodNotImplementedError('signTransaction');
|
|
92
|
+
}
|
|
93
|
+
isValidPub(key) {
|
|
94
|
+
return utils_1.default.isValidPublicKey(key);
|
|
95
|
+
}
|
|
96
|
+
isValidPrv(key) {
|
|
97
|
+
return utils_1.default.isValidPrivateKey(key);
|
|
98
|
+
}
|
|
99
|
+
/** @inheritDoc */
|
|
100
|
+
supportsTss() {
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
/** inherited doc */
|
|
104
|
+
getDefaultMultisigType() {
|
|
105
|
+
return sdk_core_1.multisigTypes.tss;
|
|
106
|
+
}
|
|
107
|
+
/** @inheritDoc */
|
|
108
|
+
getMPCAlgorithm() {
|
|
109
|
+
return 'ecdsa';
|
|
110
|
+
}
|
|
111
|
+
/** @inheritDoc **/
|
|
112
|
+
getHashFunction() {
|
|
113
|
+
return (0, crypto_1.createHash)('sha256');
|
|
114
|
+
}
|
|
115
|
+
getBuilderFactory() {
|
|
116
|
+
return new transactionBuilderFactory_1.TransactionBuilderFactory(statics_1.coins.get(this.getBaseChain()));
|
|
117
|
+
}
|
|
118
|
+
/** @inheritDoc */
|
|
119
|
+
auditDecryptedKey({ multiSigType, prv, publicKey }) {
|
|
120
|
+
if (multiSigType !== 'tss') {
|
|
121
|
+
throw new Error('Unsupported multisigtype');
|
|
122
|
+
}
|
|
123
|
+
(0, sdk_lib_mpc_1.auditEcdsaPrivateKey)(prv, publicKey);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
exports.Starknet = Starknet;
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcmtuZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RhcmtuZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBaUJ5QjtBQUN6Qiw0Q0FBb0U7QUFDcEUsbUNBQTBDO0FBRzFDLCtFQUE0RTtBQUM1RSx3REFBZ0M7QUFDaEMsb0RBQTBEO0FBRTFELE1BQWEsUUFBUyxTQUFRLG1CQUFRO0lBRXBDLFlBQXNCLEtBQWdCLEVBQUUsV0FBdUM7UUFDN0UsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7SUFDbEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0IsRUFBRSxXQUF1QztRQUM3RSxPQUFPLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztJQUNsQyxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFDcEMsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUE0QjtRQUNuRCxNQUFNLE9B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QUksWUFBWSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsSUFBQSxrQ0FBb0IsRUFBQyxHQUFhLEVBQUUsU0FBbUIsQ0FBQyxDQUFDO0lBQzNELENBQUM7Q0FDRjtBQXRKRCw0QkFzSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBdWRpdERlY3J5cHRlZEtleVBhcmFtcyxcbiAgQmFzZUNvaW4sXG4gIEJpdEdvQmFzZSxcbiAgSW52YWxpZEFkZHJlc3NFcnJvcixcbiAgS2V5UGFpcixcbiAgTWV0aG9kTm90SW1wbGVtZW50ZWRFcnJvcixcbiAgTVBDQWxnb3JpdGhtLFxuICBNdWx0aXNpZ1R5cGUsXG4gIG11bHRpc2lnVHlwZXMsXG4gIFBhcnNlZFRyYW5zYWN0aW9uLFxuICBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyxcbiAgU2lnbmVkVHJhbnNhY3Rpb24sXG4gIFNpZ25UcmFuc2FjdGlvbk9wdGlvbnMsXG4gIFZlcmlmeVRyYW5zYWN0aW9uT3B0aW9ucyxcbiAgdmVyaWZ5TVBDV2FsbGV0QWRkcmVzcyxcbiAgVW5leHBlY3RlZEFkZHJlc3NFcnJvcixcbn0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IGNvaW5zLCBCYXNlQ29pbiBhcyBTdGF0aWNzQmFzZUNvaW4gfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBjcmVhdGVIYXNoLCBIYXNoIH0gZnJvbSAnY3J5cHRvJztcblxuaW1wb3J0IHsgU3RhcmtuZXRUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLCBUcmFuc2FjdGlvbkhleFBhcmFtcywgVHNzVmVyaWZ5U3RhcmtuZXRBZGRyZXNzT3B0aW9ucyB9IGZyb20gJy4vbGliL2lmYWNlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgfSBmcm9tICcuL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5JztcbmltcG9ydCB1dGlscyBmcm9tICcuL2xpYi91dGlscyc7XG5pbXBvcnQgeyBhdWRpdEVjZHNhUHJpdmF0ZUtleSB9IGZyb20gJ0BiaXRnby9zZGstbGliLW1wYyc7XG5cbmV4cG9ydCBjbGFzcyBTdGFya25ldCBleHRlbmRzIEJhc2VDb2luIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9zdGF0aWNzQ29pbjogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPjtcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UsIHN0YXRpY3NDb2luPzogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPikge1xuICAgIHN1cGVyKGJpdGdvKTtcblxuICAgIGlmICghc3RhdGljc0NvaW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbWlzc2luZyByZXF1aXJlZCBjb25zdHJ1Y3RvciBwYXJhbWV0ZXIgc3RhdGljc0NvaW4nKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGF0aWNzQ29pbiA9IHN0YXRpY3NDb2luO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKGJpdGdvOiBCaXRHb0Jhc2UsIHN0YXRpY3NDb2luPzogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPik6IEJhc2VDb2luIHtcbiAgICByZXR1cm4gbmV3IFN0YXJrbmV0KGJpdGdvLCBzdGF0aWNzQ29pbik7XG4gIH1cblxuICBnZXRDaGFpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zdGF0aWNzQ29pbi5uYW1lO1xuICB9XG5cbiAgZ2V0QmFzZUNoYWluKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRpY3NDb2luLm5hbWU7XG4gIH1cblxuICBnZXRGYW1pbHkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGljc0NvaW4uZmFtaWx5O1xuICB9XG5cbiAgZ2V0RnVsbE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGljc0NvaW4uZnVsbE5hbWU7XG4gIH1cblxuICBnZXRCYXNlRmFjdG9yKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgucG93KDEwLCB0aGlzLl9zdGF0aWNzQ29pbi5kZWNpbWFsUGxhY2VzKTtcbiAgfVxuXG4gIGFzeW5jIGV4cGxhaW5UcmFuc2FjdGlvbihwYXJhbXM6IFRyYW5zYWN0aW9uSGV4UGFyYW1zKTogUHJvbWlzZTxTdGFya25ldFRyYW5zYWN0aW9uRXhwbGFuYXRpb24+IHtcbiAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5nZXRCdWlsZGVyRmFjdG9yeSgpO1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IGF3YWl0IGZhY3RvcnkuZnJvbShwYXJhbXMudHJhbnNhY3Rpb25IZXgpO1xuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgcmV0dXJuIHRyYW5zYWN0aW9uLmV4cGxhaW5UcmFuc2FjdGlvbigpO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5VHJhbnNhY3Rpb24ocGFyYW1zOiBWZXJpZnlUcmFuc2FjdGlvbk9wdGlvbnMpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB7IHR4UGFyYW1zLCB0eFByZWJ1aWxkIH0gPSBwYXJhbXM7XG4gICAgY29uc3QgdHhIZXggPSB0eFByZWJ1aWxkPy50eEhleDtcbiAgICBpZiAoIXR4SGV4KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3R4SGV4IGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgZXhwbGFpbmVkVHggPSBhd2FpdCB0aGlzLmV4cGxhaW5UcmFuc2FjdGlvbih7IHRyYW5zYWN0aW9uSGV4OiB0eEhleCB9KTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KHR4UGFyYW1zLnJlY2lwaWVudHMpICYmIHR4UGFyYW1zLnJlY2lwaWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHR4UGFyYW1zLnJlY2lwaWVudHMubGVuZ3RoID4gMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYCR7dGhpcy5nZXRDaGFpbigpfSBkb2Vzbid0IHN1cHBvcnQgc2VuZGluZyB0byBtb3JlIHRoYW4gMSBkZXN0aW5hdGlvbiBhZGRyZXNzIHdpdGhpbiBhIHNpbmdsZSB0cmFuc2FjdGlvbi4gVHJ5IGFnYWluLCB1c2luZyBvbmx5IGEgc2luZ2xlIHJlY2lwaWVudC5gXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChleHBsYWluZWRUeC5vdXRwdXRzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1R4IG91dHB1dHMgZG9lcyBub3QgbWF0Y2ggd2l0aCBleHBlY3RlZCB0eFBhcmFtcyByZWNpcGllbnRzJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG91dHB1dCA9IGV4cGxhaW5lZFR4Lm91dHB1dHNbMF07XG4gICAgICBjb25zdCByZWNpcGllbnQgPSB0eFBhcmFtcy5yZWNpcGllbnRzWzBdO1xuICAgICAgY29uc3Qgbm9ybWFsaXplZE91dHB1dCA9IHV0aWxzLm5vcm1hbGl6ZUFkZHJlc3Mob3V0cHV0LmFkZHJlc3MpO1xuICAgICAgY29uc3Qgbm9ybWFsaXplZFJlY2lwaWVudCA9IHV0aWxzLm5vcm1hbGl6ZUFkZHJlc3MocmVjaXBpZW50LmFkZHJlc3MpO1xuICAgICAgaWYgKG5vcm1hbGl6ZWRPdXRwdXQgIT09IG5vcm1hbGl6ZWRSZWNpcGllbnQgfHwgb3V0cHV0LmFtb3VudCAhPT0gcmVjaXBpZW50LmFtb3VudCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1R4IG91dHB1dHMgZG9lcyBub3QgbWF0Y2ggd2l0aCBleHBlY3RlZCB0eFBhcmFtcyByZWNpcGllbnRzJyk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYXN5bmMgaXNXYWxsZXRBZGRyZXNzKHBhcmFtczogVHNzVmVyaWZ5U3RhcmtuZXRBZGRyZXNzT3B0aW9ucyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHsgYWRkcmVzcyB9ID0gcGFyYW1zO1xuXG4gICAgaWYgKCF0aGlzLmlzVmFsaWRBZGRyZXNzKGFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFkZHJlc3NFcnJvcihgaW52YWxpZCBhZGRyZXNzOiAke2FkZHJlc3N9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdmVyaWZ5TVBDV2FsbGV0QWRkcmVzcyhcbiAgICAgIHsgLi4ucGFyYW1zLCBrZXlDdXJ2ZTogJ3NlY3AyNTZrMScgfSxcbiAgICAgIHRoaXMuaXNWYWxpZEFkZHJlc3MuYmluZCh0aGlzKSxcbiAgICAgIChwdWJLZXkpID0+IHV0aWxzLmdldEFkZHJlc3NGcm9tUHVibGljS2V5KHB1YktleSlcbiAgICApO1xuXG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHRocm93IG5ldyBVbmV4cGVjdGVkQWRkcmVzc0Vycm9yKGBhZGRyZXNzIHZhbGlkYXRpb24gZmFpbHVyZTogYWRkcmVzcyAke2FkZHJlc3N9IGlzIG5vdCBhIHdhbGxldCBhZGRyZXNzYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBhc3luYyBwYXJzZVRyYW5zYWN0aW9uKHBhcmFtczogUGFyc2VUcmFuc2FjdGlvbk9wdGlvbnMpOiBQcm9taXNlPFBhcnNlZFRyYW5zYWN0aW9uPiB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgcHVibGljIGdlbmVyYXRlS2V5UGFpcihzZWVkPzogQnVmZmVyKTogS2V5UGFpciB7XG4gICAgcmV0dXJuIHV0aWxzLmdlbmVyYXRlS2V5UGFpcihzZWVkKTtcbiAgfVxuXG4gIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB1dGlscy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzKTtcbiAgfVxuXG4gIC8vIFN0YXJrbmV0IGlzIFRTUy1vbmx5OyBzaWduaW5nIGlzIGhhbmRsZWQgYnkgdGhyZXNob2xkIEVDRFNBIGluIHdhbGxldC1wbGF0Zm9ybS9PVkMuXG4gIGFzeW5jIHNpZ25UcmFuc2FjdGlvbihfcGFyYW1zOiBTaWduVHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxTaWduZWRUcmFuc2FjdGlvbj4ge1xuICAgIHRocm93IG5ldyBNZXRob2ROb3RJbXBsZW1lbnRlZEVycm9yKCdzaWduVHJhbnNhY3Rpb24nKTtcbiAgfVxuXG4gIGlzVmFsaWRQdWIoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdXRpbHMuaXNWYWxpZFB1YmxpY0tleShrZXkpO1xuICB9XG5cbiAgaXNWYWxpZFBydihrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB1dGlscy5pc1ZhbGlkUHJpdmF0ZUtleShrZXkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHN1cHBvcnRzVHNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqIGluaGVyaXRlZCBkb2MgKi9cbiAgZ2V0RGVmYXVsdE11bHRpc2lnVHlwZSgpOiBNdWx0aXNpZ1R5cGUge1xuICAgIHJldHVybiBtdWx0aXNpZ1R5cGVzLnRzcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBnZXRNUENBbGdvcml0aG0oKTogTVBDQWxnb3JpdGhtIHtcbiAgICByZXR1cm4gJ2VjZHNhJztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqKi9cbiAgZ2V0SGFzaEZ1bmN0aW9uKCk6IEhhc2gge1xuICAgIHJldHVybiBjcmVhdGVIYXNoKCdzaGEyNTYnKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QnVpbGRlckZhY3RvcnkoKTogVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5zLmdldCh0aGlzLmdldEJhc2VDaGFpbigpKSk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgYXVkaXREZWNyeXB0ZWRLZXkoeyBtdWx0aVNpZ1R5cGUsIHBydiwgcHVibGljS2V5IH06IEF1ZGl0RGVjcnlwdGVkS2V5UGFyYW1zKTogdm9pZCB7XG4gICAgaWYgKG11bHRpU2lnVHlwZSAhPT0gJ3RzcycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgbXVsdGlzaWd0eXBlJyk7XG4gICAgfVxuICAgIGF1ZGl0RWNkc2FQcml2YXRlS2V5KHBydiBhcyBzdHJpbmcsIHB1YmxpY0tleSBhcyBzdHJpbmcpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { StarknetTransactionType } from '../../src/lib/iface';
|
|
2
|
+
export declare const Accounts: {
|
|
3
|
+
account1: {
|
|
4
|
+
secretKey: string;
|
|
5
|
+
publicKey: string;
|
|
6
|
+
address: string;
|
|
7
|
+
};
|
|
8
|
+
account2: {
|
|
9
|
+
secretKey: string;
|
|
10
|
+
publicKey: string;
|
|
11
|
+
address: string;
|
|
12
|
+
};
|
|
13
|
+
account3: {
|
|
14
|
+
publicKey: string;
|
|
15
|
+
secretKey: string;
|
|
16
|
+
address: string;
|
|
17
|
+
};
|
|
18
|
+
errorsAccounts: {
|
|
19
|
+
account1: {
|
|
20
|
+
secretKey: string;
|
|
21
|
+
publicKey: string;
|
|
22
|
+
address: string;
|
|
23
|
+
};
|
|
24
|
+
account2: {
|
|
25
|
+
secretKey: string;
|
|
26
|
+
publicKey: string;
|
|
27
|
+
address: string;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
export declare const StarknetTransactionData: {
|
|
32
|
+
senderAddress: string;
|
|
33
|
+
nonce: string;
|
|
34
|
+
calls: {
|
|
35
|
+
contractAddress: string;
|
|
36
|
+
entrypoint: string;
|
|
37
|
+
calldata: string[];
|
|
38
|
+
}[];
|
|
39
|
+
chainId: string;
|
|
40
|
+
transactionType: StarknetTransactionType;
|
|
41
|
+
};
|
|
42
|
+
export declare const rawTx: {
|
|
43
|
+
transfer: {
|
|
44
|
+
unsigned: string;
|
|
45
|
+
signed: string;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
export declare const TEST_AMOUNTS: {
|
|
49
|
+
small: string;
|
|
50
|
+
medium: string;
|
|
51
|
+
large: string;
|
|
52
|
+
};
|
|
53
|
+
export declare const SandboxTransferData: {
|
|
54
|
+
senderAddress: string;
|
|
55
|
+
receiverAddress: string;
|
|
56
|
+
amount: string;
|
|
57
|
+
chainId: string;
|
|
58
|
+
tokenContract: string;
|
|
59
|
+
resourceBounds: {
|
|
60
|
+
l2_gas: {
|
|
61
|
+
max_amount: string;
|
|
62
|
+
max_price_per_unit: string;
|
|
63
|
+
};
|
|
64
|
+
l1_gas: {
|
|
65
|
+
max_amount: string;
|
|
66
|
+
max_price_per_unit: string;
|
|
67
|
+
};
|
|
68
|
+
l1_data_gas: {
|
|
69
|
+
max_amount: string;
|
|
70
|
+
max_price_per_unit: string;
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
export declare const KnownGoodInvokeTx: {
|
|
75
|
+
senderAddress: string;
|
|
76
|
+
receiverAddress: string;
|
|
77
|
+
amount: string;
|
|
78
|
+
tokenContract: string;
|
|
79
|
+
nonce: string;
|
|
80
|
+
chainId: string;
|
|
81
|
+
tip: string;
|
|
82
|
+
resourceBounds: {
|
|
83
|
+
l2_gas: {
|
|
84
|
+
max_amount: string;
|
|
85
|
+
max_price_per_unit: string;
|
|
86
|
+
};
|
|
87
|
+
l1_gas: {
|
|
88
|
+
max_amount: string;
|
|
89
|
+
max_price_per_unit: string;
|
|
90
|
+
};
|
|
91
|
+
l1_data_gas: {
|
|
92
|
+
max_amount: string;
|
|
93
|
+
max_price_per_unit: string;
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
expectedTxHash: string;
|
|
97
|
+
};
|
|
98
|
+
//# sourceMappingURL=starknet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"starknet.d.ts","sourceRoot":"","sources":["../../../test/resources/starknet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BpB,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;CAYnC,CAAC;AA2BF,eAAO,MAAM,KAAK;;;;;CAKjB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;CAIxB,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;CAW/B,CAAC;AAIF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;CAc7B,CAAC"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KnownGoodInvokeTx = exports.SandboxTransferData = exports.TEST_AMOUNTS = exports.rawTx = exports.StarknetTransactionData = exports.Accounts = void 0;
|
|
4
|
+
const iface_1 = require("../../src/lib/iface");
|
|
5
|
+
exports.Accounts = {
|
|
6
|
+
account1: {
|
|
7
|
+
secretKey: 'c5bccb8f471c5c9eb6483aa77ee4b700003b1e12df430a24d93238eb378b968b',
|
|
8
|
+
publicKey: '042ab77b959e28c4fa47fa8fb9e57cec3d66df5684d076ac2e4c5f28fd69a23dd31a59f908c8add51eab3530b4ac5d015166eaf2198c52fa9a8df7cfaeb8fdb7d4',
|
|
9
|
+
address: '0x05a63dd0563db1ab71b5ffd25a6b4aaf5730de5de53d64423e4293fc8b3e12f6',
|
|
10
|
+
},
|
|
11
|
+
account2: {
|
|
12
|
+
secretKey: '73312c28d0d455b6a29a9a66811ffda94f3db6bfd57bf5c2bed917ee5928e15f',
|
|
13
|
+
publicKey: '044e01707f70f6ad8d9f79e5f2c2f0bac5e91520e5e2491354c6c7827b59d44148847f9180ac9679a6ce66f69c330551a99f8f9b7419c437705602a54c258a9dfe',
|
|
14
|
+
address: '0x02e153ef86ae7682160f69f4218b6a41aebc79ca11dabb1a4fcd7cc55f16f977',
|
|
15
|
+
},
|
|
16
|
+
account3: {
|
|
17
|
+
publicKey: '042281378584012843130dce9b19002f88a949f237397e2f6cda2db1392d54f6345faaf51c384fbfe4e8f67eb12fdb53732d2ddfe7470f9310a0bf824dad3f6b1b',
|
|
18
|
+
secretKey: '7b4de3d8cc3e312c70f674b52f11818205546ca7036c8071997c46e429160dc3',
|
|
19
|
+
address: '0x00b45a0e9f4b1eff1e2d2e528ae7c443655346c62750518217fb82cbce4dbb54',
|
|
20
|
+
},
|
|
21
|
+
errorsAccounts: {
|
|
22
|
+
account1: {
|
|
23
|
+
secretKey: 'not ok',
|
|
24
|
+
publicKey: 'not ok',
|
|
25
|
+
address: 'not ok',
|
|
26
|
+
},
|
|
27
|
+
account2: {
|
|
28
|
+
secretKey: 'test_test',
|
|
29
|
+
publicKey: 'test_test',
|
|
30
|
+
address: 'invalid',
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
exports.StarknetTransactionData = {
|
|
35
|
+
senderAddress: exports.Accounts.account1.address,
|
|
36
|
+
nonce: '0',
|
|
37
|
+
calls: [
|
|
38
|
+
{
|
|
39
|
+
contractAddress: '0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d',
|
|
40
|
+
entrypoint: 'transfer',
|
|
41
|
+
calldata: [exports.Accounts.account2.address, '0xde0b6b3a7640000', '0x0'],
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
chainId: '0x534e5f5345504f4c4941',
|
|
45
|
+
transactionType: iface_1.StarknetTransactionType.INVOKE,
|
|
46
|
+
};
|
|
47
|
+
// Raw transaction hex (JSON serialized to hex)
|
|
48
|
+
const rawTxUnsigned = Buffer.from(JSON.stringify({
|
|
49
|
+
senderAddress: exports.Accounts.account1.address,
|
|
50
|
+
calls: exports.StarknetTransactionData.calls,
|
|
51
|
+
nonce: '0',
|
|
52
|
+
chainId: '0x534e5f5345504f4c4941',
|
|
53
|
+
transactionType: iface_1.StarknetTransactionType.INVOKE,
|
|
54
|
+
}), 'utf-8').toString('hex');
|
|
55
|
+
const rawTxSigned = Buffer.from(JSON.stringify({
|
|
56
|
+
senderAddress: exports.Accounts.account1.address,
|
|
57
|
+
calls: exports.StarknetTransactionData.calls,
|
|
58
|
+
nonce: '0',
|
|
59
|
+
chainId: '0x534e5f5345504f4c4941',
|
|
60
|
+
transactionType: iface_1.StarknetTransactionType.INVOKE,
|
|
61
|
+
signature: ['0xabc123', '0xdef456', '0x789012', '0x345678', '0x0'],
|
|
62
|
+
transactionHash: '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef',
|
|
63
|
+
}), 'utf-8').toString('hex');
|
|
64
|
+
exports.rawTx = {
|
|
65
|
+
transfer: {
|
|
66
|
+
unsigned: rawTxUnsigned,
|
|
67
|
+
signed: rawTxSigned,
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
exports.TEST_AMOUNTS = {
|
|
71
|
+
small: '1000000000000000000',
|
|
72
|
+
medium: '10000000000000000000',
|
|
73
|
+
large: '999999999999999999999999',
|
|
74
|
+
};
|
|
75
|
+
exports.SandboxTransferData = {
|
|
76
|
+
senderAddress: '0x1559292d3f9ea355458f83adf235b400e79786af5dc5e3b50f5505caa2bdc84',
|
|
77
|
+
receiverAddress: '0x4a1e86ae265e6e6ecbea5be7f67117c3540f8aaf2ad7f1cfec33c53080f05af',
|
|
78
|
+
amount: '1000000000000000000',
|
|
79
|
+
chainId: '0x534e5f5345504f4c4941',
|
|
80
|
+
tokenContract: '0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d',
|
|
81
|
+
resourceBounds: {
|
|
82
|
+
l2_gas: { max_amount: '0x1c9c380', max_price_per_unit: '0x174876e800' },
|
|
83
|
+
l1_gas: { max_amount: '0x0', max_price_per_unit: '0x5af3107a4000' },
|
|
84
|
+
l1_data_gas: { max_amount: '0x3e8', max_price_per_unit: '0x2540be400' },
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
// Known-good tx from coins-sandbox/strkMPC/transferLocal.ts (block 9537253, Sepolia)
|
|
88
|
+
// All inputs from the sandbox script; nonce confirmed via Voyager explorer.
|
|
89
|
+
exports.KnownGoodInvokeTx = {
|
|
90
|
+
senderAddress: '0x1559292d3f9ea355458f83adf235b400e79786af5dc5e3b50f5505caa2bdc84',
|
|
91
|
+
receiverAddress: '0x4a1e86ae265e6e6ecbea5be7f67117c3540f8aaf2ad7f1cfec33c53080f05af',
|
|
92
|
+
amount: '1000000000000000000',
|
|
93
|
+
tokenContract: '0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d',
|
|
94
|
+
nonce: '0x8',
|
|
95
|
+
chainId: '0x534e5f5345504f4c4941',
|
|
96
|
+
tip: '0x0',
|
|
97
|
+
resourceBounds: {
|
|
98
|
+
l2_gas: { max_amount: '0x1c9c380', max_price_per_unit: '0x174876e800' },
|
|
99
|
+
l1_gas: { max_amount: '0x0', max_price_per_unit: '0x5af3107a4000' },
|
|
100
|
+
l1_data_gas: { max_amount: '0x3e8', max_price_per_unit: '0x2540be400' },
|
|
101
|
+
},
|
|
102
|
+
expectedTxHash: '0x739a72831c7f53634a2ffc94b78b61985e3cdffbad09ab20a1480e1bec9bdf2',
|
|
103
|
+
};
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcmtuZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3Jlc291cmNlcy9zdGFya25ldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FBOEQ7QUFFakQsUUFBQSxRQUFRLEdBQUc7SUFDdEIsUUFBUSxFQUFFO1FBQ1IsU0FBUyxFQUFFLGtFQUFrRTtRQUM3RSxTQUFTLEVBQ1Asb0lBQW9JO1FBQ3RJLE9BQU8sRUFBRSxvRUFBb0U7S0FDOUU7SUFDRCxRQUFRLEVBQUU7UUFDUixTQUFTLEVBQUUsa0VBQWtFO1FBQzdFLFNBQVMsRUFDUCxvSUFBb0k7UUFDdEksT0FBTyxFQUFFLG9FQUFvRTtLQUM5RTtJQUNELFFBQVEsRUFBRTtRQUNSLFNBQVMsRUFDUCxvSUFBb0k7UUFDdEksU0FBUyxFQUFFLGtFQUFrRTtRQUM3RSxPQUFPLEVBQUUsb0VBQW9FO0tBQzlFO0lBQ0QsY0FBYyxFQUFFO1FBQ2QsUUFBUSxFQUFFO1lBQ1IsU0FBUyxFQUFFLFFBQVE7WUFDbkIsU0FBUyxFQUFFLFFBQVE7WUFDbkIsT0FBTyxFQUFFLFFBQVE7U0FDbEI7UUFDRCxRQUFRLEVBQUU7WUFDUixTQUFTLEVBQUUsV0FBVztZQUN0QixTQUFTLEVBQUUsV0FBVztZQUN0QixPQUFPLEVBQUUsU0FBUztTQUNuQjtLQUNGO0NBQ0YsQ0FBQztBQUVXLFFBQUEsdUJBQXVCLEdBQUc7SUFDckMsYUFBYSxFQUFFLGdCQUFRLENBQUMsUUFBUSxDQUFDLE9BQU87SUFDeEMsS0FBSyxFQUFFLEdBQUc7SUFDVixLQUFLLEVBQUU7UUFDTDtZQUNFLGVBQWUsRUFBRSxvRUFBb0U7WUFDckYsVUFBVSxFQUFFLFVBQVU7WUFDdEIsUUFBUSxFQUFFLENBQUMsZ0JBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLEtBQUssQ0FBQztTQUNsRTtLQUNGO0lBQ0QsT0FBTyxFQUFFLHdCQUF3QjtJQUNqQyxlQUFlLEVBQUUsK0JBQXVCLENBQUMsTUFBTTtDQUNoRCxDQUFDO0FBRUYsK0NBQStDO0FBQy9DLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQy9CLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDYixhQUFhLEVBQUUsZ0JBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTztJQUN4QyxLQUFLLEVBQUUsK0JBQXVCLENBQUMsS0FBSztJQUNwQyxLQUFLLEVBQUUsR0FBRztJQUNWLE9BQU8sRUFBRSx3QkFBd0I7SUFDakMsZUFBZSxFQUFFLCtCQUF1QixDQUFDLE1BQU07Q0FDaEQsQ0FBQyxFQUNGLE9BQU8sQ0FDUixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUVsQixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ2IsYUFBYSxFQUFFLGdCQUFRLENBQUMsUUFBUSxDQUFDLE9BQU87SUFDeEMsS0FBSyxFQUFFLCtCQUF1QixDQUFDLEtBQUs7SUFDcEMsS0FBSyxFQUFFLEdBQUc7SUFDVixPQUFPLEVBQUUsd0JBQXdCO0lBQ2pDLGVBQWUsRUFBRSwrQkFBdUIsQ0FBQyxNQUFNO0lBQy9DLFNBQVMsRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUM7SUFDbEUsZUFBZSxFQUFFLG9FQUFvRTtDQUN0RixDQUFDLEVBQ0YsT0FBTyxDQUNSLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBRUwsUUFBQSxLQUFLLEdBQUc7SUFDbkIsUUFBUSxFQUFFO1FBQ1IsUUFBUSxFQUFFLGFBQWE7UUFDdkIsTUFBTSxFQUFFLFdBQVc7S0FDcEI7Q0FDRixDQUFDO0FBRVcsUUFBQSxZQUFZLEdBQUc7SUFDMUIsS0FBSyxFQUFFLHFCQUFxQjtJQUM1QixNQUFNLEVBQUUsc0JBQXNCO0lBQzlCLEtBQUssRUFBRSwwQkFBMEI7Q0FDbEMsQ0FBQztBQUVXLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsYUFBYSxFQUFFLG1FQUFtRTtJQUNsRixlQUFlLEVBQUUsbUVBQW1FO0lBQ3BGLE1BQU0sRUFBRSxxQkFBcUI7SUFDN0IsT0FBTyxFQUFFLHdCQUF3QjtJQUNqQyxhQUFhLEVBQUUsb0VBQW9FO0lBQ25GLGNBQWMsRUFBRTtRQUNkLE1BQU0sRUFBRSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFO1FBQ3ZFLE1BQU0sRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUU7UUFDbkUsV0FBVyxFQUFFLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUU7S0FDeEU7Q0FDRixDQUFDO0FBRUYscUZBQXFGO0FBQ3JGLDRFQUE0RTtBQUMvRCxRQUFBLGlCQUFpQixHQUFHO0lBQy9CLGFBQWEsRUFBRSxtRUFBbUU7SUFDbEYsZUFBZSxFQUFFLG1FQUFtRTtJQUNwRixNQUFNLEVBQUUscUJBQXFCO0lBQzdCLGFBQWEsRUFBRSxvRUFBb0U7SUFDbkYsS0FBSyxFQUFFLEtBQUs7SUFDWixPQUFPLEVBQUUsd0JBQXdCO0lBQ2pDLEdBQUcsRUFBRSxLQUFLO0lBQ1YsY0FBYyxFQUFFO1FBQ2QsTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUU7UUFDdkUsTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRTtRQUNuRSxXQUFXLEVBQUUsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRTtLQUN4RTtJQUNELGNBQWMsRUFBRSxtRUFBbUU7Q0FDcEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YXJrbmV0VHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnLi4vLi4vc3JjL2xpYi9pZmFjZSc7XG5cbmV4cG9ydCBjb25zdCBBY2NvdW50cyA9IHtcbiAgYWNjb3VudDE6IHtcbiAgICBzZWNyZXRLZXk6ICdjNWJjY2I4ZjQ3MWM1YzllYjY0ODNhYTc3ZWU0YjcwMDAwM2IxZTEyZGY0MzBhMjRkOTMyMzhlYjM3OGI5NjhiJyxcbiAgICBwdWJsaWNLZXk6XG4gICAgICAnMDQyYWI3N2I5NTllMjhjNGZhNDdmYThmYjllNTdjZWMzZDY2ZGY1Njg0ZDA3NmFjMmU0YzVmMjhmZDY5YTIzZGQzMWE1OWY5MDhjOGFkZDUxZWFiMzUzMGI0YWM1ZDAxNTE2NmVhZjIxOThjNTJmYTlhOGRmN2NmYWViOGZkYjdkNCcsXG4gICAgYWRkcmVzczogJzB4MDVhNjNkZDA1NjNkYjFhYjcxYjVmZmQyNWE2YjRhYWY1NzMwZGU1ZGU1M2Q2NDQyM2U0MjkzZmM4YjNlMTJmNicsXG4gIH0sXG4gIGFjY291bnQyOiB7XG4gICAgc2VjcmV0S2V5OiAnNzMzMTJjMjhkMGQ0NTViNmEyOWE5YTY2ODExZmZkYTk0ZjNkYjZiZmQ1N2JmNWMyYmVkOTE3ZWU1OTI4ZTE1ZicsXG4gICAgcHVibGljS2V5OlxuICAgICAgJzA0NGUwMTcwN2Y3MGY2YWQ4ZDlmNzllNWYyYzJmMGJhYzVlOTE1MjBlNWUyNDkxMzU0YzZjNzgyN2I1OWQ0NDE0ODg0N2Y5MTgwYWM5Njc5YTZjZTY2ZjY5YzMzMDU1MWE5OWY4ZjliNzQxOWM0Mzc3MDU2MDJhNTRjMjU4YTlkZmUnLFxuICAgIGFkZHJlc3M6ICcweDAyZTE1M2VmODZhZTc2ODIxNjBmNjlmNDIxOGI2YTQxYWViYzc5Y2ExMWRhYmIxYTRmY2Q3Y2M1NWYxNmY5NzcnLFxuICB9LFxuICBhY2NvdW50Mzoge1xuICAgIHB1YmxpY0tleTpcbiAgICAgICcwNDIyODEzNzg1ODQwMTI4NDMxMzBkY2U5YjE5MDAyZjg4YTk0OWYyMzczOTdlMmY2Y2RhMmRiMTM5MmQ1NGY2MzQ1ZmFhZjUxYzM4NGZiZmU0ZThmNjdlYjEyZmRiNTM3MzJkMmRkZmU3NDcwZjkzMTBhMGJmODI0ZGFkM2Y2YjFiJyxcbiAgICBzZWNyZXRLZXk6ICc3YjRkZTNkOGNjM2UzMTJjNzBmNjc0YjUyZjExODE4MjA1NTQ2Y2E3MDM2YzgwNzE5OTdjNDZlNDI5MTYwZGMzJyxcbiAgICBhZGRyZXNzOiAnMHgwMGI0NWEwZTlmNGIxZWZmMWUyZDJlNTI4YWU3YzQ0MzY1NTM0NmM2Mjc1MDUxODIxN2ZiODJjYmNlNGRiYjU0JyxcbiAgfSxcbiAgZXJyb3JzQWNjb3VudHM6IHtcbiAgICBhY2NvdW50MToge1xuICAgICAgc2VjcmV0S2V5OiAnbm90IG9rJyxcbiAgICAgIHB1YmxpY0tleTogJ25vdCBvaycsXG4gICAgICBhZGRyZXNzOiAnbm90IG9rJyxcbiAgICB9LFxuICAgIGFjY291bnQyOiB7XG4gICAgICBzZWNyZXRLZXk6ICd0ZXN0X3Rlc3QnLFxuICAgICAgcHVibGljS2V5OiAndGVzdF90ZXN0JyxcbiAgICAgIGFkZHJlc3M6ICdpbnZhbGlkJyxcbiAgICB9LFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IFN0YXJrbmV0VHJhbnNhY3Rpb25EYXRhID0ge1xuICBzZW5kZXJBZGRyZXNzOiBBY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzLFxuICBub25jZTogJzAnLFxuICBjYWxsczogW1xuICAgIHtcbiAgICAgIGNvbnRyYWN0QWRkcmVzczogJzB4MDQ3MThmNWEwZmMzNGNjMWFmMTZhMWNkZWU5OGZmYjIwYzMxZjVjZDYxZDZhYjA3MjAxODU4ZjQyODdjOTM4ZCcsXG4gICAgICBlbnRyeXBvaW50OiAndHJhbnNmZXInLFxuICAgICAgY2FsbGRhdGE6IFtBY2NvdW50cy5hY2NvdW50Mi5hZGRyZXNzLCAnMHhkZTBiNmIzYTc2NDAwMDAnLCAnMHgwJ10sXG4gICAgfSxcbiAgXSxcbiAgY2hhaW5JZDogJzB4NTM0ZTVmNTM0NTUwNGY0YzQ5NDEnLFxuICB0cmFuc2FjdGlvblR5cGU6IFN0YXJrbmV0VHJhbnNhY3Rpb25UeXBlLklOVk9LRSxcbn07XG5cbi8vIFJhdyB0cmFuc2FjdGlvbiBoZXggKEpTT04gc2VyaWFsaXplZCB0byBoZXgpXG5jb25zdCByYXdUeFVuc2lnbmVkID0gQnVmZmVyLmZyb20oXG4gIEpTT04uc3RyaW5naWZ5KHtcbiAgICBzZW5kZXJBZGRyZXNzOiBBY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzLFxuICAgIGNhbGxzOiBTdGFya25ldFRyYW5zYWN0aW9uRGF0YS5jYWxscyxcbiAgICBub25jZTogJzAnLFxuICAgIGNoYWluSWQ6ICcweDUzNGU1ZjUzNDU1MDRmNGM0OTQxJyxcbiAgICB0cmFuc2FjdGlvblR5cGU6IFN0YXJrbmV0VHJhbnNhY3Rpb25UeXBlLklOVk9LRSxcbiAgfSksXG4gICd1dGYtOCdcbikudG9TdHJpbmcoJ2hleCcpO1xuXG5jb25zdCByYXdUeFNpZ25lZCA9IEJ1ZmZlci5mcm9tKFxuICBKU09OLnN0cmluZ2lmeSh7XG4gICAgc2VuZGVyQWRkcmVzczogQWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcyxcbiAgICBjYWxsczogU3RhcmtuZXRUcmFuc2FjdGlvbkRhdGEuY2FsbHMsXG4gICAgbm9uY2U6ICcwJyxcbiAgICBjaGFpbklkOiAnMHg1MzRlNWY1MzQ1NTA0ZjRjNDk0MScsXG4gICAgdHJhbnNhY3Rpb25UeXBlOiBTdGFya25ldFRyYW5zYWN0aW9uVHlwZS5JTlZPS0UsXG4gICAgc2lnbmF0dXJlOiBbJzB4YWJjMTIzJywgJzB4ZGVmNDU2JywgJzB4Nzg5MDEyJywgJzB4MzQ1Njc4JywgJzB4MCddLFxuICAgIHRyYW5zYWN0aW9uSGFzaDogJzB4MTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZicsXG4gIH0pLFxuICAndXRmLTgnXG4pLnRvU3RyaW5nKCdoZXgnKTtcblxuZXhwb3J0IGNvbnN0IHJhd1R4ID0ge1xuICB0cmFuc2Zlcjoge1xuICAgIHVuc2lnbmVkOiByYXdUeFVuc2lnbmVkLFxuICAgIHNpZ25lZDogcmF3VHhTaWduZWQsXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgVEVTVF9BTU9VTlRTID0ge1xuICBzbWFsbDogJzEwMDAwMDAwMDAwMDAwMDAwMDAnLFxuICBtZWRpdW06ICcxMDAwMDAwMDAwMDAwMDAwMDAwMCcsXG4gIGxhcmdlOiAnOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBTYW5kYm94VHJhbnNmZXJEYXRhID0ge1xuICBzZW5kZXJBZGRyZXNzOiAnMHgxNTU5MjkyZDNmOWVhMzU1NDU4ZjgzYWRmMjM1YjQwMGU3OTc4NmFmNWRjNWUzYjUwZjU1MDVjYWEyYmRjODQnLFxuICByZWNlaXZlckFkZHJlc3M6ICcweDRhMWU4NmFlMjY1ZTZlNmVjYmVhNWJlN2Y2NzExN2MzNTQwZjhhYWYyYWQ3ZjFjZmVjMzNjNTMwODBmMDVhZicsXG4gIGFtb3VudDogJzEwMDAwMDAwMDAwMDAwMDAwMDAnLFxuICBjaGFpbklkOiAnMHg1MzRlNWY1MzQ1NTA0ZjRjNDk0MScsXG4gIHRva2VuQ29udHJhY3Q6ICcweDA0NzE4ZjVhMGZjMzRjYzFhZjE2YTFjZGVlOThmZmIyMGMzMWY1Y2Q2MWQ2YWIwNzIwMTg1OGY0Mjg3YzkzOGQnLFxuICByZXNvdXJjZUJvdW5kczoge1xuICAgIGwyX2dhczogeyBtYXhfYW1vdW50OiAnMHgxYzljMzgwJywgbWF4X3ByaWNlX3Blcl91bml0OiAnMHgxNzQ4NzZlODAwJyB9LFxuICAgIGwxX2dhczogeyBtYXhfYW1vdW50OiAnMHgwJywgbWF4X3ByaWNlX3Blcl91bml0OiAnMHg1YWYzMTA3YTQwMDAnIH0sXG4gICAgbDFfZGF0YV9nYXM6IHsgbWF4X2Ftb3VudDogJzB4M2U4JywgbWF4X3ByaWNlX3Blcl91bml0OiAnMHgyNTQwYmU0MDAnIH0sXG4gIH0sXG59O1xuXG4vLyBLbm93bi1nb29kIHR4IGZyb20gY29pbnMtc2FuZGJveC9zdHJrTVBDL3RyYW5zZmVyTG9jYWwudHMgKGJsb2NrIDk1MzcyNTMsIFNlcG9saWEpXG4vLyBBbGwgaW5wdXRzIGZyb20gdGhlIHNhbmRib3ggc2NyaXB0OyBub25jZSBjb25maXJtZWQgdmlhIFZveWFnZXIgZXhwbG9yZXIuXG5leHBvcnQgY29uc3QgS25vd25Hb29kSW52b2tlVHggPSB7XG4gIHNlbmRlckFkZHJlc3M6ICcweDE1NTkyOTJkM2Y5ZWEzNTU0NThmODNhZGYyMzViNDAwZTc5Nzg2YWY1ZGM1ZTNiNTBmNTUwNWNhYTJiZGM4NCcsXG4gIHJlY2VpdmVyQWRkcmVzczogJzB4NGExZTg2YWUyNjVlNmU2ZWNiZWE1YmU3ZjY3MTE3YzM1NDBmOGFhZjJhZDdmMWNmZWMzM2M1MzA4MGYwNWFmJyxcbiAgYW1vdW50OiAnMTAwMDAwMDAwMDAwMDAwMDAwMCcsXG4gIHRva2VuQ29udHJhY3Q6ICcweDA0NzE4ZjVhMGZjMzRjYzFhZjE2YTFjZGVlOThmZmIyMGMzMWY1Y2Q2MWQ2YWIwNzIwMTg1OGY0Mjg3YzkzOGQnLFxuICBub25jZTogJzB4OCcsXG4gIGNoYWluSWQ6ICcweDUzNGU1ZjUzNDU1MDRmNGM0OTQxJyxcbiAgdGlwOiAnMHgwJyxcbiAgcmVzb3VyY2VCb3VuZHM6IHtcbiAgICBsMl9nYXM6IHsgbWF4X2Ftb3VudDogJzB4MWM5YzM4MCcsIG1heF9wcmljZV9wZXJfdW5pdDogJzB4MTc0ODc2ZTgwMCcgfSxcbiAgICBsMV9nYXM6IHsgbWF4X2Ftb3VudDogJzB4MCcsIG1heF9wcmljZV9wZXJfdW5pdDogJzB4NWFmMzEwN2E0MDAwJyB9LFxuICAgIGwxX2RhdGFfZ2FzOiB7IG1heF9hbW91bnQ6ICcweDNlOCcsIG1heF9wcmljZV9wZXJfdW5pdDogJzB4MjU0MGJlNDAwJyB9LFxuICB9LFxuICBleHBlY3RlZFR4SGFzaDogJzB4NzM5YTcyODMxYzdmNTM2MzRhMmZmYzk0Yjc4YjYxOTg1ZTNjZGZmYmFkMDlhYjIwYTE0ODBlMWJlYzliZGYyJyxcbn07XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../test/unit/keyPair.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,56 @@
|
|
|
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 should_1 = __importDefault(require("should"));
|
|
7
|
+
const keyPair_1 = require("../../src/lib/keyPair");
|
|
8
|
+
const starknet_1 = require("../resources/starknet");
|
|
9
|
+
describe('Starknet KeyPair', () => {
|
|
10
|
+
describe('Constructor', () => {
|
|
11
|
+
it('should create keypair from public key only', () => {
|
|
12
|
+
const kp = new keyPair_1.KeyPair({ pub: starknet_1.Accounts.account1.publicKey });
|
|
13
|
+
const keys = kp.getKeys();
|
|
14
|
+
should_1.default.exist(keys.pub);
|
|
15
|
+
});
|
|
16
|
+
it('should create keypair from private key', () => {
|
|
17
|
+
const kp = new keyPair_1.KeyPair({ prv: starknet_1.Accounts.account1.secretKey });
|
|
18
|
+
const keys = kp.getKeys();
|
|
19
|
+
should_1.default.exist(keys.pub);
|
|
20
|
+
should_1.default.exist(keys.prv);
|
|
21
|
+
});
|
|
22
|
+
it('should create random keypair when no source', () => {
|
|
23
|
+
const kp = new keyPair_1.KeyPair();
|
|
24
|
+
const keys = kp.getKeys();
|
|
25
|
+
should_1.default.exist(keys.pub);
|
|
26
|
+
should_1.default.exist(keys.prv);
|
|
27
|
+
});
|
|
28
|
+
it('should throw on invalid public key', () => {
|
|
29
|
+
should_1.default.throws(() => new keyPair_1.KeyPair({ pub: 'invalid_key_format' }));
|
|
30
|
+
});
|
|
31
|
+
it('should throw on invalid private key', () => {
|
|
32
|
+
should_1.default.throws(() => new keyPair_1.KeyPair({ prv: 'not_a_valid_key' }));
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
describe('Key Generation', () => {
|
|
36
|
+
it('should create unique key pairs each time', () => {
|
|
37
|
+
const kp1 = new keyPair_1.KeyPair();
|
|
38
|
+
const kp2 = new keyPair_1.KeyPair();
|
|
39
|
+
kp1.getKeys().pub.should.not.equal(kp2.getKeys().pub);
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
describe('getAddress', () => {
|
|
43
|
+
it('should return a valid Starknet address from keypair', () => {
|
|
44
|
+
const kp = new keyPair_1.KeyPair({ pub: starknet_1.Accounts.account1.publicKey });
|
|
45
|
+
const address = kp.getAddress();
|
|
46
|
+
should_1.default.exist(address);
|
|
47
|
+
address.should.startWith('0x');
|
|
48
|
+
});
|
|
49
|
+
it('should return different addresses for different keys', () => {
|
|
50
|
+
const kp1 = new keyPair_1.KeyPair({ pub: starknet_1.Accounts.account1.publicKey });
|
|
51
|
+
const kp2 = new keyPair_1.KeyPair({ pub: starknet_1.Accounts.account2.publicKey });
|
|
52
|
+
kp1.getAddress().should.not.equal(kp2.getAddress());
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvdW5pdC9rZXlQYWlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG1EQUFnRDtBQUNoRCxvREFBaUQ7QUFFakQsUUFBUSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsRUFBRTtJQUNoQyxRQUFRLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRTtRQUMzQixFQUFFLENBQUMsNENBQTRDLEVBQUUsR0FBRyxFQUFFO1lBQ3BELE1BQU0sRUFBRSxHQUFHLElBQUksaUJBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxtQkFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQzdELE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMxQixnQkFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsd0NBQXdDLEVBQUUsR0FBRyxFQUFFO1lBQ2hELE1BQU0sRUFBRSxHQUFHLElBQUksaUJBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxtQkFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQzdELE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMxQixnQkFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdkIsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDZDQUE2QyxFQUFFLEdBQUcsRUFBRTtZQUNyRCxNQUFNLEVBQUUsR0FBRyxJQUFJLGlCQUFPLEVBQUUsQ0FBQztZQUN6QixNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDMUIsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZCLGdCQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxvQ0FBb0MsRUFBRSxHQUFHLEVBQUU7WUFDNUMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxpQkFBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHFDQUFxQyxFQUFFLEdBQUcsRUFBRTtZQUM3QyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLGlCQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLEVBQUU7UUFDOUIsRUFBRSxDQUFDLDBDQUEwQyxFQUFFLEdBQUcsRUFBRTtZQUNsRCxNQUFNLEdBQUcsR0FBRyxJQUFJLGlCQUFPLEVBQUUsQ0FBQztZQUMxQixNQUFNLEdBQUcsR0FBRyxJQUFJLGlCQUFPLEVBQUUsQ0FBQztZQUMxQixHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUU7UUFDMUIsRUFBRSxDQUFDLHFEQUFxRCxFQUFFLEdBQUcsRUFBRTtZQUM3RCxNQUFNLEVBQUUsR0FBRyxJQUFJLGlCQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsbUJBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUM3RCxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsc0RBQXNELEVBQUUsR0FBRyxFQUFFO1lBQzlELE1BQU0sR0FBRyxHQUFHLElBQUksaUJBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxtQkFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQzlELE1BQU0sR0FBRyxHQUFHLElBQUksaUJBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxtQkFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQzlELEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi4vLi4vc3JjL2xpYi9rZXlQYWlyJztcbmltcG9ydCB7IEFjY291bnRzIH0gZnJvbSAnLi4vcmVzb3VyY2VzL3N0YXJrbmV0JztcblxuZGVzY3JpYmUoJ1N0YXJrbmV0IEtleVBhaXInLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdDb25zdHJ1Y3RvcicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGNyZWF0ZSBrZXlwYWlyIGZyb20gcHVibGljIGtleSBvbmx5JywgKCkgPT4ge1xuICAgICAgY29uc3Qga3AgPSBuZXcgS2V5UGFpcih7IHB1YjogQWNjb3VudHMuYWNjb3VudDEucHVibGljS2V5IH0pO1xuICAgICAgY29uc3Qga2V5cyA9IGtwLmdldEtleXMoKTtcbiAgICAgIHNob3VsZC5leGlzdChrZXlzLnB1Yik7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGNyZWF0ZSBrZXlwYWlyIGZyb20gcHJpdmF0ZSBrZXknLCAoKSA9PiB7XG4gICAgICBjb25zdCBrcCA9IG5ldyBLZXlQYWlyKHsgcHJ2OiBBY2NvdW50cy5hY2NvdW50MS5zZWNyZXRLZXkgfSk7XG4gICAgICBjb25zdCBrZXlzID0ga3AuZ2V0S2V5cygpO1xuICAgICAgc2hvdWxkLmV4aXN0KGtleXMucHViKTtcbiAgICAgIHNob3VsZC5leGlzdChrZXlzLnBydik7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGNyZWF0ZSByYW5kb20ga2V5cGFpciB3aGVuIG5vIHNvdXJjZScsICgpID0+IHtcbiAgICAgIGNvbnN0IGtwID0gbmV3IEtleVBhaXIoKTtcbiAgICAgIGNvbnN0IGtleXMgPSBrcC5nZXRLZXlzKCk7XG4gICAgICBzaG91bGQuZXhpc3Qoa2V5cy5wdWIpO1xuICAgICAgc2hvdWxkLmV4aXN0KGtleXMucHJ2KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgb24gaW52YWxpZCBwdWJsaWMga2V5JywgKCkgPT4ge1xuICAgICAgc2hvdWxkLnRocm93cygoKSA9PiBuZXcgS2V5UGFpcih7IHB1YjogJ2ludmFsaWRfa2V5X2Zvcm1hdCcgfSkpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBvbiBpbnZhbGlkIHByaXZhdGUga2V5JywgKCkgPT4ge1xuICAgICAgc2hvdWxkLnRocm93cygoKSA9PiBuZXcgS2V5UGFpcih7IHBydjogJ25vdF9hX3ZhbGlkX2tleScgfSkpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnS2V5IEdlbmVyYXRpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBjcmVhdGUgdW5pcXVlIGtleSBwYWlycyBlYWNoIHRpbWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCBrcDEgPSBuZXcgS2V5UGFpcigpO1xuICAgICAgY29uc3Qga3AyID0gbmV3IEtleVBhaXIoKTtcbiAgICAgIGtwMS5nZXRLZXlzKCkucHViLnNob3VsZC5ub3QuZXF1YWwoa3AyLmdldEtleXMoKS5wdWIpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZ2V0QWRkcmVzcycsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiBhIHZhbGlkIFN0YXJrbmV0IGFkZHJlc3MgZnJvbSBrZXlwYWlyJywgKCkgPT4ge1xuICAgICAgY29uc3Qga3AgPSBuZXcgS2V5UGFpcih7IHB1YjogQWNjb3VudHMuYWNjb3VudDEucHVibGljS2V5IH0pO1xuICAgICAgY29uc3QgYWRkcmVzcyA9IGtwLmdldEFkZHJlc3MoKTtcbiAgICAgIHNob3VsZC5leGlzdChhZGRyZXNzKTtcbiAgICAgIGFkZHJlc3Muc2hvdWxkLnN0YXJ0V2l0aCgnMHgnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIGRpZmZlcmVudCBhZGRyZXNzZXMgZm9yIGRpZmZlcmVudCBrZXlzJywgKCkgPT4ge1xuICAgICAgY29uc3Qga3AxID0gbmV3IEtleVBhaXIoeyBwdWI6IEFjY291bnRzLmFjY291bnQxLnB1YmxpY0tleSB9KTtcbiAgICAgIGNvbnN0IGtwMiA9IG5ldyBLZXlQYWlyKHsgcHViOiBBY2NvdW50cy5hY2NvdW50Mi5wdWJsaWNLZXkgfSk7XG4gICAgICBrcDEuZ2V0QWRkcmVzcygpLnNob3VsZC5ub3QuZXF1YWwoa3AyLmdldEFkZHJlc3MoKSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"starknet.d.ts","sourceRoot":"","sources":["../../../test/unit/starknet.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,126 @@
|
|
|
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 sdk_test_1 = require("@bitgo/sdk-test");
|
|
40
|
+
const sdk_api_1 = require("@bitgo/sdk-api");
|
|
41
|
+
const index_1 = require("../../src/index");
|
|
42
|
+
const testData = __importStar(require("../resources/starknet"));
|
|
43
|
+
const should_1 = __importDefault(require("should"));
|
|
44
|
+
const utils_1 = require("../../src/lib/utils");
|
|
45
|
+
describe('Starknet', function () {
|
|
46
|
+
let bitgo;
|
|
47
|
+
let basecoin;
|
|
48
|
+
before(async function () {
|
|
49
|
+
bitgo = sdk_test_1.TestBitGo.decorate(sdk_api_1.BitGoAPI, { env: 'test' });
|
|
50
|
+
bitgo.safeRegister('starknet', index_1.Starknet.createInstance);
|
|
51
|
+
bitgo.safeRegister('tstarknet', index_1.Starknet.createInstance);
|
|
52
|
+
bitgo.initializeTestVars();
|
|
53
|
+
basecoin = bitgo.coin('starknet');
|
|
54
|
+
});
|
|
55
|
+
it('should return the right info', function () {
|
|
56
|
+
const starknet = bitgo.coin('starknet');
|
|
57
|
+
const tstarknet = bitgo.coin('tstarknet');
|
|
58
|
+
starknet.getChain().should.equal('starknet');
|
|
59
|
+
starknet.getFamily().should.equal('starknet');
|
|
60
|
+
starknet.getFullName().should.equal('Starknet');
|
|
61
|
+
starknet.getBaseFactor().should.equal(1e18);
|
|
62
|
+
starknet.supportsTss().should.equal(true);
|
|
63
|
+
tstarknet.getChain().should.equal('tstarknet');
|
|
64
|
+
tstarknet.getFamily().should.equal('starknet');
|
|
65
|
+
tstarknet.getFullName().should.equal('Testnet Starknet');
|
|
66
|
+
tstarknet.getBaseFactor().should.equal(1e18);
|
|
67
|
+
tstarknet.supportsTss().should.equal(true);
|
|
68
|
+
});
|
|
69
|
+
describe('Address validation', () => {
|
|
70
|
+
it('should validate a correct Starknet address', function () {
|
|
71
|
+
basecoin.isValidAddress(testData.Accounts.account1.address).should.equal(true);
|
|
72
|
+
});
|
|
73
|
+
it('should validate a second correct address', function () {
|
|
74
|
+
basecoin.isValidAddress(testData.Accounts.account2.address).should.equal(true);
|
|
75
|
+
});
|
|
76
|
+
it('should reject an obviously invalid address', function () {
|
|
77
|
+
basecoin.isValidAddress('not_an_address').should.equal(false);
|
|
78
|
+
});
|
|
79
|
+
it('should reject an empty address', function () {
|
|
80
|
+
basecoin.isValidAddress('').should.equal(false);
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
describe('Address derivation', () => {
|
|
84
|
+
it('should derive correct address from public key for account1', function () {
|
|
85
|
+
const derived = (0, utils_1.getAddressFromPublicKey)(testData.Accounts.account1.publicKey);
|
|
86
|
+
derived.should.equal(testData.Accounts.account1.address);
|
|
87
|
+
});
|
|
88
|
+
it('should derive correct address from public key for account2', function () {
|
|
89
|
+
const derived = (0, utils_1.getAddressFromPublicKey)(testData.Accounts.account2.publicKey);
|
|
90
|
+
derived.should.equal(testData.Accounts.account2.address);
|
|
91
|
+
});
|
|
92
|
+
it('should derive correct address from public key for account3', function () {
|
|
93
|
+
const derived = (0, utils_1.getAddressFromPublicKey)(testData.Accounts.account3.publicKey);
|
|
94
|
+
derived.should.equal(testData.Accounts.account3.address);
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
describe('Public key validation', () => {
|
|
98
|
+
it('should validate a correct uncompressed public key', function () {
|
|
99
|
+
basecoin.isValidPub(testData.Accounts.account1.publicKey).should.equal(true);
|
|
100
|
+
});
|
|
101
|
+
it('should reject an invalid public key', function () {
|
|
102
|
+
basecoin.isValidPub('invalid-public-key').should.equal(false);
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
describe('MPC support', () => {
|
|
106
|
+
it('should support TSS', function () {
|
|
107
|
+
basecoin.supportsTss().should.equal(true);
|
|
108
|
+
});
|
|
109
|
+
it('should return ECDSA as MPC algorithm', function () {
|
|
110
|
+
basecoin.getMPCAlgorithm().should.equal('ecdsa');
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
describe('Key pair generation', () => {
|
|
114
|
+
it('should generate a key pair', function () {
|
|
115
|
+
const keyPair = basecoin.generateKeyPair();
|
|
116
|
+
should_1.default.exist(keyPair.pub);
|
|
117
|
+
should_1.default.exist(keyPair.prv);
|
|
118
|
+
});
|
|
119
|
+
it('should generate different key pairs each time', function () {
|
|
120
|
+
const kp1 = basecoin.generateKeyPair();
|
|
121
|
+
const kp2 = basecoin.generateKeyPair();
|
|
122
|
+
kp1.pub.should.not.equal(kp2.pub);
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcmtuZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvc3RhcmtuZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FBMEQ7QUFDMUQsNENBQTBDO0FBQzFDLDJDQUEyQztBQUMzQyxnRUFBa0Q7QUFDbEQsb0RBQTRCO0FBQzVCLCtDQUE4RDtBQUU5RCxRQUFRLENBQUMsVUFBVSxFQUFFO0lBQ25CLElBQUksS0FBbUIsQ0FBQztJQUN4QixJQUFJLFFBQVEsQ0FBQztJQUViLE1BQU0sQ0FBQyxLQUFLO1FBQ1YsS0FBSyxHQUFHLG9CQUFTLENBQUMsUUFBUSxDQUFDLGtCQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN0RCxLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxnQkFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3hELEtBQUssQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLGdCQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDekQsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDM0IsUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsOEJBQThCLEVBQUU7UUFDakMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hELFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9DLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9DLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDekQsU0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFO1FBQ2xDLEVBQUUsQ0FBQyw0Q0FBNEMsRUFBRTtZQUMvQyxRQUFRLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakYsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsMENBQTBDLEVBQUU7WUFDN0MsUUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pGLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDRDQUE0QyxFQUFFO1lBQy9DLFFBQVEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hFLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGdDQUFnQyxFQUFFO1lBQ25DLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBRTtRQUNsQyxFQUFFLENBQUMsNERBQTRELEVBQUU7WUFDL0QsTUFBTSxPQUFPLEdBQUcsSUFBQSwrQkFBdUIsRUFBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM5RSxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzRCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyw0REFBNEQsRUFBRTtZQUMvRCxNQUFNLE9BQU8sR0FBRyxJQUFBLCtCQUF1QixFQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzlFLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDREQUE0RCxFQUFFO1lBQy9ELE1BQU0sT0FBTyxHQUFHLElBQUEsK0JBQXVCLEVBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDOUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLEVBQUU7UUFDckMsRUFBRSxDQUFDLG1EQUFtRCxFQUFFO1lBQ3RELFFBQVEsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvRSxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxxQ0FBcUMsRUFBRTtZQUN4QyxRQUFRLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUU7UUFDM0IsRUFBRSxDQUFDLG9CQUFvQixFQUFFO1lBQ3ZCLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHNDQUFzQyxFQUFFO1lBQ3pDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMscUJBQXFCLEVBQUUsR0FBRyxFQUFFO1FBQ25DLEVBQUUsQ0FBQyw0QkFBNEIsRUFBRTtZQUMvQixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDM0MsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzFCLGdCQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQywrQ0FBK0MsRUFBRTtZQUNsRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkMsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3ZDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlc3RCaXRHbywgVGVzdEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvL3Nkay10ZXN0JztcbmltcG9ydCB7IEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvL3Nkay1hcGknO1xuaW1wb3J0IHsgU3RhcmtuZXQgfSBmcm9tICcuLi8uLi9zcmMvaW5kZXgnO1xuaW1wb3J0ICogYXMgdGVzdERhdGEgZnJvbSAnLi4vcmVzb3VyY2VzL3N0YXJrbmV0JztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IGdldEFkZHJlc3NGcm9tUHVibGljS2V5IH0gZnJvbSAnLi4vLi4vc3JjL2xpYi91dGlscyc7XG5cbmRlc2NyaWJlKCdTdGFya25ldCcsIGZ1bmN0aW9uICgpIHtcbiAgbGV0IGJpdGdvOiBUZXN0Qml0R29BUEk7XG4gIGxldCBiYXNlY29pbjtcblxuICBiZWZvcmUoYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGJpdGdvID0gVGVzdEJpdEdvLmRlY29yYXRlKEJpdEdvQVBJLCB7IGVudjogJ3Rlc3QnIH0pO1xuICAgIGJpdGdvLnNhZmVSZWdpc3Rlcignc3RhcmtuZXQnLCBTdGFya25ldC5jcmVhdGVJbnN0YW5jZSk7XG4gICAgYml0Z28uc2FmZVJlZ2lzdGVyKCd0c3RhcmtuZXQnLCBTdGFya25ldC5jcmVhdGVJbnN0YW5jZSk7XG4gICAgYml0Z28uaW5pdGlhbGl6ZVRlc3RWYXJzKCk7XG4gICAgYmFzZWNvaW4gPSBiaXRnby5jb2luKCdzdGFya25ldCcpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHJldHVybiB0aGUgcmlnaHQgaW5mbycsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBzdGFya25ldCA9IGJpdGdvLmNvaW4oJ3N0YXJrbmV0Jyk7XG4gICAgY29uc3QgdHN0YXJrbmV0ID0gYml0Z28uY29pbigndHN0YXJrbmV0Jyk7XG5cbiAgICBzdGFya25ldC5nZXRDaGFpbigpLnNob3VsZC5lcXVhbCgnc3RhcmtuZXQnKTtcbiAgICBzdGFya25ldC5nZXRGYW1pbHkoKS5zaG91bGQuZXF1YWwoJ3N0YXJrbmV0Jyk7XG4gICAgc3RhcmtuZXQuZ2V0RnVsbE5hbWUoKS5zaG91bGQuZXF1YWwoJ1N0YXJrbmV0Jyk7XG4gICAgc3RhcmtuZXQuZ2V0QmFzZUZhY3RvcigpLnNob3VsZC5lcXVhbCgxZTE4KTtcbiAgICBzdGFya25ldC5zdXBwb3J0c1RzcygpLnNob3VsZC5lcXVhbCh0cnVlKTtcblxuICAgIHRzdGFya25ldC5nZXRDaGFpbigpLnNob3VsZC5lcXVhbCgndHN0YXJrbmV0Jyk7XG4gICAgdHN0YXJrbmV0LmdldEZhbWlseSgpLnNob3VsZC5lcXVhbCgnc3RhcmtuZXQnKTtcbiAgICB0c3RhcmtuZXQuZ2V0RnVsbE5hbWUoKS5zaG91bGQuZXF1YWwoJ1Rlc3RuZXQgU3RhcmtuZXQnKTtcbiAgICB0c3RhcmtuZXQuZ2V0QmFzZUZhY3RvcigpLnNob3VsZC5lcXVhbCgxZTE4KTtcbiAgICB0c3RhcmtuZXQuc3VwcG9ydHNUc3MoKS5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdBZGRyZXNzIHZhbGlkYXRpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCB2YWxpZGF0ZSBhIGNvcnJlY3QgU3RhcmtuZXQgYWRkcmVzcycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGJhc2Vjb2luLmlzVmFsaWRBZGRyZXNzKHRlc3REYXRhLkFjY291bnRzLmFjY291bnQxLmFkZHJlc3MpLnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgYSBzZWNvbmQgY29ycmVjdCBhZGRyZXNzJywgZnVuY3Rpb24gKCkge1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZEFkZHJlc3ModGVzdERhdGEuQWNjb3VudHMuYWNjb3VudDIuYWRkcmVzcykuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZWplY3QgYW4gb2J2aW91c2x5IGludmFsaWQgYWRkcmVzcycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGJhc2Vjb2luLmlzVmFsaWRBZGRyZXNzKCdub3RfYW5fYWRkcmVzcycpLnNob3VsZC5lcXVhbChmYWxzZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlamVjdCBhbiBlbXB0eSBhZGRyZXNzJywgZnVuY3Rpb24gKCkge1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZEFkZHJlc3MoJycpLnNob3VsZC5lcXVhbChmYWxzZSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdBZGRyZXNzIGRlcml2YXRpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBkZXJpdmUgY29ycmVjdCBhZGRyZXNzIGZyb20gcHVibGljIGtleSBmb3IgYWNjb3VudDEnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBkZXJpdmVkID0gZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkodGVzdERhdGEuQWNjb3VudHMuYWNjb3VudDEucHVibGljS2V5KTtcbiAgICAgIGRlcml2ZWQuc2hvdWxkLmVxdWFsKHRlc3REYXRhLkFjY291bnRzLmFjY291bnQxLmFkZHJlc3MpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBkZXJpdmUgY29ycmVjdCBhZGRyZXNzIGZyb20gcHVibGljIGtleSBmb3IgYWNjb3VudDInLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBkZXJpdmVkID0gZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkodGVzdERhdGEuQWNjb3VudHMuYWNjb3VudDIucHVibGljS2V5KTtcbiAgICAgIGRlcml2ZWQuc2hvdWxkLmVxdWFsKHRlc3REYXRhLkFjY291bnRzLmFjY291bnQyLmFkZHJlc3MpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBkZXJpdmUgY29ycmVjdCBhZGRyZXNzIGZyb20gcHVibGljIGtleSBmb3IgYWNjb3VudDMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBkZXJpdmVkID0gZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkodGVzdERhdGEuQWNjb3VudHMuYWNjb3VudDMucHVibGljS2V5KTtcbiAgICAgIGRlcml2ZWQuc2hvdWxkLmVxdWFsKHRlc3REYXRhLkFjY291bnRzLmFjY291bnQzLmFkZHJlc3MpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnUHVibGljIGtleSB2YWxpZGF0aW9uJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgdmFsaWRhdGUgYSBjb3JyZWN0IHVuY29tcHJlc3NlZCBwdWJsaWMga2V5JywgZnVuY3Rpb24gKCkge1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZFB1Yih0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50MS5wdWJsaWNLZXkpLnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmVqZWN0IGFuIGludmFsaWQgcHVibGljIGtleScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGJhc2Vjb2luLmlzVmFsaWRQdWIoJ2ludmFsaWQtcHVibGljLWtleScpLnNob3VsZC5lcXVhbChmYWxzZSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdNUEMgc3VwcG9ydCcsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHN1cHBvcnQgVFNTJywgZnVuY3Rpb24gKCkge1xuICAgICAgYmFzZWNvaW4uc3VwcG9ydHNUc3MoKS5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiBFQ0RTQSBhcyBNUEMgYWxnb3JpdGhtJywgZnVuY3Rpb24gKCkge1xuICAgICAgYmFzZWNvaW4uZ2V0TVBDQWxnb3JpdGhtKCkuc2hvdWxkLmVxdWFsKCdlY2RzYScpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnS2V5IHBhaXIgZ2VuZXJhdGlvbicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGdlbmVyYXRlIGEga2V5IHBhaXInLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gYmFzZWNvaW4uZ2VuZXJhdGVLZXlQYWlyKCk7XG4gICAgICBzaG91bGQuZXhpc3Qoa2V5UGFpci5wdWIpO1xuICAgICAgc2hvdWxkLmV4aXN0KGtleVBhaXIucHJ2KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZ2VuZXJhdGUgZGlmZmVyZW50IGtleSBwYWlycyBlYWNoIHRpbWUnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBrcDEgPSBiYXNlY29pbi5nZW5lcmF0ZUtleVBhaXIoKTtcbiAgICAgIGNvbnN0IGtwMiA9IGJhc2Vjb2luLmdlbmVyYXRlS2V5UGFpcigpO1xuICAgICAga3AxLnB1Yi5zaG91bGQubm90LmVxdWFsKGtwMi5wdWIpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../test/unit/transaction.ts"],"names":[],"mappings":""}
|