@bitgo-beta/sdk-coin-avaxp 0.0.0-semantic-release-managed
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/.eslintignore +5 -0
- package/.eslintrc.json +7 -0
- package/.mocharc.yml +8 -0
- package/CHANGELOG.md +1091 -0
- package/LICENSE +191 -0
- package/README.md +39 -0
- package/dist/src/avaxp.d.ts +91 -0
- package/dist/src/avaxp.d.ts.map +1 -0
- package/dist/src/avaxp.js +343 -0
- package/dist/src/iface.d.ts +42 -0
- package/dist/src/iface.d.ts.map +1 -0
- package/dist/src/iface.js +3 -0
- package/dist/src/index.d.ts +6 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +45 -0
- package/dist/src/lib/atomicInCTransactionBuilder.d.ts +21 -0
- package/dist/src/lib/atomicInCTransactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/atomicInCTransactionBuilder.js +49 -0
- package/dist/src/lib/atomicTransactionBuilder.d.ts +38 -0
- package/dist/src/lib/atomicTransactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/atomicTransactionBuilder.js +129 -0
- package/dist/src/lib/delegatorTxBuilder.d.ts +95 -0
- package/dist/src/lib/delegatorTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/delegatorTxBuilder.js +285 -0
- package/dist/src/lib/deprecatedTransaction.d.ts +98 -0
- package/dist/src/lib/deprecatedTransaction.d.ts.map +1 -0
- package/dist/src/lib/deprecatedTransaction.js +344 -0
- package/dist/src/lib/deprecatedTransactionBuilder.d.ts +114 -0
- package/dist/src/lib/deprecatedTransactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/deprecatedTransactionBuilder.js +210 -0
- package/dist/src/lib/errors.d.ts +8 -0
- package/dist/src/lib/errors.d.ts.map +1 -0
- package/dist/src/lib/errors.js +19 -0
- package/dist/src/lib/exportInCTxBuilder.d.ts +55 -0
- package/dist/src/lib/exportInCTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/exportInCTxBuilder.js +159 -0
- package/dist/src/lib/exportTxBuilder.d.ts +33 -0
- package/dist/src/lib/exportTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/exportTxBuilder.js +88 -0
- package/dist/src/lib/iface.d.ts +68 -0
- package/dist/src/lib/iface.d.ts.map +1 -0
- package/dist/src/lib/iface.js +20 -0
- package/dist/src/lib/importInCTxBuilder.d.ts +44 -0
- package/dist/src/lib/importInCTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/importInCTxBuilder.js +131 -0
- package/dist/src/lib/importTxBuilder.d.ts +18 -0
- package/dist/src/lib/importTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/importTxBuilder.js +67 -0
- package/dist/src/lib/index.d.ts +11 -0
- package/dist/src/lib/index.d.ts.map +1 -0
- package/dist/src/lib/index.js +37 -0
- package/dist/src/lib/keyPair.d.ts +58 -0
- package/dist/src/lib/keyPair.d.ts.map +1 -0
- package/dist/src/lib/keyPair.js +150 -0
- package/dist/src/lib/permissionlessValidatorTxBuilder.d.ts +154 -0
- package/dist/src/lib/permissionlessValidatorTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/permissionlessValidatorTxBuilder.js +452 -0
- package/dist/src/lib/transaction.d.ts +78 -0
- package/dist/src/lib/transaction.d.ts.map +1 -0
- package/dist/src/lib/transaction.js +254 -0
- package/dist/src/lib/transactionBuilder.d.ts +71 -0
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder.js +138 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts +57 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilderFactory.js +178 -0
- package/dist/src/lib/utils.d.ts +184 -0
- package/dist/src/lib/utils.d.ts.map +1 -0
- package/dist/src/lib/utils.js +378 -0
- package/dist/src/lib/utxoEngine.d.ts +53 -0
- package/dist/src/lib/utxoEngine.d.ts.map +1 -0
- package/dist/src/lib/utxoEngine.js +112 -0
- package/dist/src/lib/validatorTxBuilder.d.ts +37 -0
- package/dist/src/lib/validatorTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/validatorTxBuilder.js +69 -0
- package/dist/src/register.d.ts +3 -0
- package/dist/src/register.d.ts.map +1 -0
- package/dist/src/register.js +11 -0
- package/dist/src/tavaxp.d.ts +9 -0
- package/dist/src/tavaxp.d.ts.map +1 -0
- package/dist/src/tavaxp.js +14 -0
- package/dist/test/resources/avaxp.d.ts +259 -0
- package/dist/test/resources/avaxp.d.ts.map +1 -0
- package/dist/test/resources/avaxp.js +1093 -0
- package/dist/test/resources/errors.d.ts +19 -0
- package/dist/test/resources/errors.d.ts.map +1 -0
- package/dist/test/resources/errors.js +22 -0
- package/dist/test/resources/keychains.d.ts +18 -0
- package/dist/test/resources/keychains.d.ts.map +1 -0
- package/dist/test/resources/keychains.js +30 -0
- package/dist/test/resources/tx/exportC.d.ts +14 -0
- package/dist/test/resources/tx/exportC.d.ts.map +1 -0
- package/dist/test/resources/tx/exportC.js +21 -0
- package/dist/test/resources/tx/importC.d.ts +29 -0
- package/dist/test/resources/tx/importC.d.ts.map +1 -0
- package/dist/test/resources/tx/importC.js +42 -0
- package/dist/test/resources/tx/importP.d.ts +29 -0
- package/dist/test/resources/tx/importP.d.ts.map +1 -0
- package/dist/test/resources/tx/importP.js +42 -0
- package/dist/test/unit/avaxp.d.ts +2 -0
- package/dist/test/unit/avaxp.d.ts.map +1 -0
- package/dist/test/unit/avaxp.js +732 -0
- package/dist/test/unit/lib/exportC2PTxBuilder.d.ts +2 -0
- package/dist/test/unit/lib/exportC2PTxBuilder.d.ts.map +1 -0
- package/dist/test/unit/lib/exportC2PTxBuilder.js +125 -0
- package/dist/test/unit/lib/exportP2CTxBuilder.d.ts +2 -0
- package/dist/test/unit/lib/exportP2CTxBuilder.d.ts.map +1 -0
- package/dist/test/unit/lib/exportP2CTxBuilder.js +183 -0
- package/dist/test/unit/lib/importC2PTxBuilder.d.ts +2 -0
- package/dist/test/unit/lib/importC2PTxBuilder.d.ts.map +1 -0
- package/dist/test/unit/lib/importC2PTxBuilder.js +99 -0
- package/dist/test/unit/lib/importP2CTxBuilder.d.ts +2 -0
- package/dist/test/unit/lib/importP2CTxBuilder.d.ts.map +1 -0
- package/dist/test/unit/lib/importP2CTxBuilder.js +137 -0
- package/dist/test/unit/lib/keyPair.d.ts +2 -0
- package/dist/test/unit/lib/keyPair.d.ts.map +1 -0
- package/dist/test/unit/lib/keyPair.js +186 -0
- package/dist/test/unit/lib/permissionlessValidatorTxBuilder.d.ts +2 -0
- package/dist/test/unit/lib/permissionlessValidatorTxBuilder.d.ts.map +1 -0
- package/dist/test/unit/lib/permissionlessValidatorTxBuilder.js +341 -0
- package/dist/test/unit/lib/signFlowTestSuit.d.ts +20 -0
- package/dist/test/unit/lib/signFlowTestSuit.d.ts.map +1 -0
- package/dist/test/unit/lib/signFlowTestSuit.js +80 -0
- package/dist/test/unit/lib/transactionBuilderFactory.d.ts +2 -0
- package/dist/test/unit/lib/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/test/unit/lib/transactionBuilderFactory.js +179 -0
- package/dist/test/unit/lib/utils.d.ts +2 -0
- package/dist/test/unit/lib/utils.d.ts.map +1 -0
- package/dist/test/unit/lib/utils.js +83 -0
- package/dist/test/unit/lib/utxoEngine.d.ts +2 -0
- package/dist/test/unit/lib/utxoEngine.d.ts.map +1 -0
- package/dist/test/unit/lib/utxoEngine.js +168 -0
- package/dist/test/unit/lib/validateTxBuilder.d.ts +2 -0
- package/dist/test/unit/lib/validateTxBuilder.d.ts.map +1 -0
- package/dist/test/unit/lib/validateTxBuilder.js +327 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../src/lib/keyPair.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAMX,cAAc,EACd,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAU9B,oBAAY,aAAa;IACvB,OAAO,SAAS;IAChB,OAAO,SAAS;CACjB;AAED,qBAAa,OAAQ,SAAQ,wBAAwB;IACnD;;;;OAIG;gBACS,MAAM,CAAC,EAAE,cAAc;IAoBnC;;;;OAIG;IACH,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAe3C;;;;OAIG;IACH,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAkB1C;;;;OAIG;IACH,OAAO,IAAI,WAAW;IAOtB;;;;;OAKG;IACH,UAAU,CAAC,MAAM,SAAY,GAAG,MAAM;IAGtC;;;;;OAKG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAKpC;;;;OAIG;IACH,gBAAgB,IAAI,MAAM;IAS1B;;;;OAIG;IACH,oBAAoB,IAAI,MAAM;CAK/B"}
|
|
@@ -0,0 +1,150 @@
|
|
|
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.KeyPair = exports.addressFormat = void 0;
|
|
7
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
8
|
+
const create_hash_1 = __importDefault(require("create-hash"));
|
|
9
|
+
const safe_buffer_1 = require("safe-buffer");
|
|
10
|
+
const avalanche_1 = require("avalanche");
|
|
11
|
+
const common_1 = require("avalanche/dist/common");
|
|
12
|
+
const secp256k1_1 = require("@bitgo-beta/secp256k1");
|
|
13
|
+
const crypto_1 = require("crypto");
|
|
14
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
15
|
+
const DEFAULT_SEED_SIZE_BYTES = 16;
|
|
16
|
+
var addressFormat;
|
|
17
|
+
(function (addressFormat) {
|
|
18
|
+
addressFormat["testnet"] = "fuji";
|
|
19
|
+
addressFormat["mainnet"] = "avax";
|
|
20
|
+
})(addressFormat || (exports.addressFormat = addressFormat = {}));
|
|
21
|
+
class KeyPair extends sdk_core_1.Secp256k1ExtendedKeyPair {
|
|
22
|
+
/**
|
|
23
|
+
* Public constructor. By default, creates a key pair with a random master seed.
|
|
24
|
+
*
|
|
25
|
+
* @param { KeyPairOptions } source Either a master seed, a private key, or a public key
|
|
26
|
+
*/
|
|
27
|
+
constructor(source) {
|
|
28
|
+
super(source);
|
|
29
|
+
if (!source) {
|
|
30
|
+
const seed = (0, crypto_1.randomBytes)(DEFAULT_SEED_SIZE_BYTES);
|
|
31
|
+
this.hdNode = secp256k1_1.bip32.fromSeed(seed);
|
|
32
|
+
}
|
|
33
|
+
else if ((0, sdk_core_1.isSeed)(source)) {
|
|
34
|
+
this.hdNode = secp256k1_1.bip32.fromSeed(source.seed);
|
|
35
|
+
}
|
|
36
|
+
else if ((0, sdk_core_1.isPrivateKey)(source)) {
|
|
37
|
+
this.recordKeysFromPrivateKey(source.prv);
|
|
38
|
+
}
|
|
39
|
+
else if ((0, sdk_core_1.isPublicKey)(source)) {
|
|
40
|
+
this.recordKeysFromPublicKey(source.pub);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
throw new Error('Invalid key pair options');
|
|
44
|
+
}
|
|
45
|
+
if (this.hdNode) {
|
|
46
|
+
this.keyPair = sdk_core_1.Secp256k1ExtendedKeyPair.toKeyPair(this.hdNode);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Build a keypair from a protocol private key or extended private key.
|
|
51
|
+
*
|
|
52
|
+
* @param {string} prv A raw private key
|
|
53
|
+
*/
|
|
54
|
+
recordKeysFromPrivateKey(prv) {
|
|
55
|
+
if (prv.startsWith('PrivateKey-')) {
|
|
56
|
+
this.keyPair = secp256k1_1.ECPair.fromPrivateKey(Buffer.from(utils_1.default.cb58Decode(prv.split('-')[1])));
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
if (!utils_1.default.isValidPrivateKey(prv)) {
|
|
60
|
+
throw new Error('Unsupported private key');
|
|
61
|
+
}
|
|
62
|
+
if ((0, sdk_core_1.isValidXprv)(prv)) {
|
|
63
|
+
this.hdNode = secp256k1_1.bip32.fromBase58(prv);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
this.keyPair = secp256k1_1.ECPair.fromPrivateKey(Buffer.from(prv.slice(0, 64), 'hex'));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Build an ECPair from a protocol public key or extended public key.
|
|
71
|
+
*
|
|
72
|
+
* @param {string} pub A raw public key
|
|
73
|
+
*/
|
|
74
|
+
recordKeysFromPublicKey(pub) {
|
|
75
|
+
try {
|
|
76
|
+
if ((0, sdk_core_1.isValidXpub)(pub)) {
|
|
77
|
+
this.hdNode = secp256k1_1.bip32.fromBase58(pub);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
this.keyPair = secp256k1_1.ECPair.fromPublicKey(Buffer.from(pub, 'hex'));
|
|
81
|
+
}
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
catch (e) {
|
|
85
|
+
try {
|
|
86
|
+
this.keyPair = secp256k1_1.ECPair.fromPublicKey(Buffer.from(utils_1.default.cb58Decode(pub)));
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
catch (e) {
|
|
90
|
+
throw new Error('Unsupported public key');
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Default keys format is a pair of Uint8Array keys
|
|
96
|
+
*
|
|
97
|
+
* @returns { DefaultKeys } The keys in the defined format
|
|
98
|
+
*/
|
|
99
|
+
getKeys() {
|
|
100
|
+
return {
|
|
101
|
+
pub: this.getPublicKey({ compressed: true }).toString('hex'),
|
|
102
|
+
prv: this.getPrivateKey()?.toString('hex'),
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Get an Avalanche P-Chain public mainnet address
|
|
107
|
+
*
|
|
108
|
+
* @param {string} format - avalanche hrp - select Mainnet(avax) or Testnet(fuji) for the address
|
|
109
|
+
* @returns {string} The mainnet address derived from the public key
|
|
110
|
+
*/
|
|
111
|
+
getAddress(format = 'mainnet') {
|
|
112
|
+
return this.getAvaxPAddress(addressFormat[format]);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Get a public address of public key.
|
|
116
|
+
*
|
|
117
|
+
* @param {string} hrp - select Mainnet(avax) or Testnet(fuji) for the address
|
|
118
|
+
* @returns {string} The address derived from the public key and hrp
|
|
119
|
+
*/
|
|
120
|
+
getAvaxPAddress(hrp) {
|
|
121
|
+
const addressBuffer = avalanche_1.Buffer.from(this.getAddressBuffer());
|
|
122
|
+
return utils_1.default.addressToString(hrp, 'P', addressBuffer);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Get an Avalanche P-Chain public mainnet address
|
|
126
|
+
*
|
|
127
|
+
* @returns {Buffer} The address buffer derived from the public key
|
|
128
|
+
*/
|
|
129
|
+
getAddressBuffer() {
|
|
130
|
+
const publicKey = avalanche_1.Buffer.from(this.keyPair.publicKey);
|
|
131
|
+
try {
|
|
132
|
+
return Buffer.from(common_1.SECP256k1KeyPair.addressFromPublicKey(publicKey));
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
return this.getAddressSafeBuffer();
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Use the safe Buffer instead of the regular buffer to derive the address buffer. Used in the OVC.
|
|
140
|
+
*
|
|
141
|
+
* @returns {Buffer}
|
|
142
|
+
*/
|
|
143
|
+
getAddressSafeBuffer() {
|
|
144
|
+
const publicKeySafe = safe_buffer_1.Buffer.from(this.keyPair.publicKey);
|
|
145
|
+
const sha256 = safe_buffer_1.Buffer.from((0, create_hash_1.default)('sha256').update(publicKeySafe).digest());
|
|
146
|
+
return Buffer.from((0, create_hash_1.default)('ripemd160').update(sha256).digest());
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
exports.KeyPair = KeyPair;
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtREFTOEI7QUFDOUIsOERBQXFDO0FBQ3JDLDZDQUFtRDtBQUNuRCx5Q0FBaUQ7QUFDakQsa0RBQXlEO0FBQ3pELHFEQUFzRDtBQUN0RCxtQ0FBcUM7QUFDckMsb0RBQTRCO0FBRTVCLE1BQU0sdUJBQXVCLEdBQUcsRUFBRSxDQUFDO0FBQ25DLElBQVksYUFHWDtBQUhELFdBQVksYUFBYTtJQUN2QixpQ0FBZ0IsQ0FBQTtJQUNoQixpQ0FBZ0IsQ0FBQTtBQUNsQixDQUFDLEVBSFcsYUFBYSw2QkFBYixhQUFhLFFBR3hCO0FBRUQsTUFBYSxPQUFRLFNBQVEsbUNBQXdCO0lBQ25EOzs7O09BSUc7SUFDSCxZQUFZLE1BQXVCO1FBQ2pDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxHQUFHLElBQUEsb0JBQVcsRUFBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxNQUFNLEdBQUcsaUJBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsQ0FBQzthQUFNLElBQUksSUFBQSxpQkFBTSxFQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxpQkFBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsQ0FBQzthQUFNLElBQUksSUFBQSx1QkFBWSxFQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QyxDQUFDO2FBQU0sSUFBSSxJQUFBLHNCQUFXLEVBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUMvQixJQUFJ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O0lBQ0Q7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUMsR0FBVztRQUN6QixNQUFNLGFBQWEsR0FBZSxrQkFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLE9BQU8sZUFBSyxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsZ0JBQWdCO1FBQ2QsTUFBTSxTQUFTLEdBQUcsa0JBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUM7WUFDSCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMseUJBQWdCLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN2RSxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDckMsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsb0JBQW9CO1FBQ2xCLE1BQU0sYUFBYSxHQUFHLG9CQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUQsTUFBTSxNQUFNLEdBQUcsb0JBQVUsQ0FBQyxJQUFJLENBQUMsSUFBQSxxQkFBVSxFQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3BGLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFBLHFCQUFVLEVBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztDQUNGO0FBN0hELDBCQTZIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERlZmF1bHRLZXlzLFxuICBpc1ByaXZhdGVLZXksXG4gIGlzUHVibGljS2V5LFxuICBpc1NlZWQsXG4gIGlzVmFsaWRYcHJ2LFxuICBpc1ZhbGlkWHB1YixcbiAgS2V5UGFpck9wdGlvbnMsXG4gIFNlY3AyNTZrMUV4dGVuZGVkS2V5UGFpcixcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IGNyZWF0ZUhhc2ggZnJvbSAnY3JlYXRlLWhhc2gnO1xuaW1wb3J0IHsgQnVmZmVyIGFzIFNhZmVCdWZmZXIgfSBmcm9tICdzYWZlLWJ1ZmZlcic7XG5pbXBvcnQgeyBCdWZmZXIgYXMgQnVmZmVyQXZheCB9IGZyb20gJ2F2YWxhbmNoZSc7XG5pbXBvcnQgeyBTRUNQMjU2azFLZXlQYWlyIH0gZnJvbSAnYXZhbGFuY2hlL2Rpc3QvY29tbW9uJztcbmltcG9ydCB7IGJpcDMyLCBFQ1BhaXIgfSBmcm9tICdAYml0Z28tYmV0YS9zZWNwMjU2azEnO1xuaW1wb3J0IHsgcmFuZG9tQnl0ZXMgfSBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCBERUZBVUxUX1NFRURfU0laRV9CWVRFUyA9IDE2O1xuZXhwb3J0IGVudW0gYWRkcmVzc0Zvcm1hdCB7XG4gIHRlc3RuZXQgPSAnZnVqaScsXG4gIG1haW5uZXQgPSAnYXZheCcsXG59XG5cbmV4cG9ydCBjbGFzcyBLZXlQYWlyIGV4dGVuZHMgU2VjcDI1NmsxRXh0ZW5kZWRLZXlQYWlyIHtcbiAgLyoqXG4gICAqIFB1YmxpYyBjb25zdHJ1Y3Rvci4gQnkgZGVmYXVsdCwgY3JlYXRlcyBhIGtleSBwYWlyIHdpdGggYSByYW5kb20gbWFzdGVyIHNlZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7IEtleVBhaXJPcHRpb25zIH0gc291cmNlIEVpdGhlciBhIG1hc3RlciBzZWVkLCBhIHByaXZhdGUga2V5LCBvciBhIHB1YmxpYyBrZXlcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNvdXJjZT86IEtleVBhaXJPcHRpb25zKSB7XG4gICAgc3VwZXIoc291cmNlKTtcbiAgICBpZiAoIXNvdXJjZSkge1xuICAgICAgY29uc3Qgc2VlZCA9IHJhbmRvbUJ5dGVzKERFRkFVTFRfU0VFRF9TSVpFX0JZVEVTKTtcbiAgICAgIHRoaXMuaGROb2RlID0gYmlwMzIuZnJvbVNlZWQoc2VlZCk7XG4gICAgfSBlbHNlIGlmIChpc1NlZWQoc291cmNlKSkge1xuICAgICAgdGhpcy5oZE5vZGUgPSBiaXAzMi5mcm9tU2VlZChzb3VyY2Uuc2VlZCk7XG4gICAgfSBlbHNlIGlmIChpc1ByaXZhdGVLZXkoc291cmNlKSkge1xuICAgICAgdGhpcy5yZWNvcmRLZXlzRnJvbVByaXZhdGVLZXkoc291cmNlLnBydik7XG4gICAgfSBlbHNlIGlmIChpc1B1YmxpY0tleShzb3VyY2UpKSB7XG4gICAgICB0aGlzLnJlY29yZEtleXNGcm9tUHVibGljS2V5KHNvdXJjZS5wdWIpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQga2V5IHBhaXIgb3B0aW9ucycpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmhkTm9kZSkge1xuICAgICAgdGhpcy5rZXlQYWlyID0gU2VjcDI1NmsxRXh0ZW5kZWRLZXlQYWlyLnRvS2V5UGFpcih0aGlzLmhkTm9kZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEga2V5cGFpciBmcm9tIGEgcHJvdG9jb2wgcHJpdmF0ZSBrZXkgb3IgZXh0ZW5kZWQgcHJpdmF0ZSBrZXkuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwcnYgQSByYXcgcHJpdmF0ZSBrZXlcbiAgICovXG4gIHJlY29yZEtleXNGcm9tUHJpdmF0ZUtleShwcnY6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChwcnYuc3RhcnRzV2l0aCgnUHJpdmF0ZUtleS0nKSkge1xuICAgICAgdGhpcy5rZXlQYWlyID0gRUNQYWlyLmZyb21Qcml2YXRlS2V5KEJ1ZmZlci5mcm9tKHV0aWxzLmNiNThEZWNvZGUocHJ2LnNwbGl0KCctJylbMV0pKSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghdXRpbHMuaXNWYWxpZFByaXZhdGVLZXkocHJ2KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCBwcml2YXRlIGtleScpO1xuICAgIH1cbiAgICBpZiAoaXNWYWxpZFhwcnYocHJ2KSkge1xuICAgICAgdGhpcy5oZE5vZGUgPSBiaXAzMi5mcm9tQmFzZTU4KHBydik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMua2V5UGFpciA9IEVDUGFpci5mcm9tUHJpdmF0ZUtleShCdWZmZXIuZnJvbShwcnYuc2xpY2UoMCwgNjQpLCAnaGV4JykpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhbiBFQ1BhaXIgZnJvbSBhIHByb3RvY29sIHB1YmxpYyBrZXkgb3IgZXh0ZW5kZWQgcHVibGljIGtleS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHB1YiBBIHJhdyBwdWJsaWMga2V5XG4gICAqL1xuICByZWNvcmRLZXlzRnJvbVB1YmxpY0tleShwdWI6IHN0cmluZyk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBpZiAoaXNWYWxpZFhwdWIocHViKSkge1xuICAgICAgICB0aGlzLmhkTm9kZSA9IGJpcDMyLmZyb21CYXNlNTgocHViKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMua2V5UGFpciA9IEVDUGFpci5mcm9tUHVibGljS2V5KEJ1ZmZlci5mcm9tKHB1YiwgJ2hleCcpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLmtleVBhaXIgPSBFQ1BhaXIuZnJvbVB1YmxpY0tleShCdWZmZXIuZnJvbSh1dGlscy5jYjU4RGVjb2RlKHB1YikpKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIHB1YmxpYyBrZXknKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGVmYXVsdCBrZXlzIGZvcm1hdCBpcyBhIHBhaXIgb2YgVWludDhBcnJheSBrZXlzXG4gICAqXG4gICAqIEByZXR1cm5zIHsgRGVmYXVsdEtleXMgfSBUaGUga2V5cyBpbiB0aGUgZGVmaW5lZCBmb3JtYXRcbiAgICovXG4gIGdldEtleXMoKTogRGVmYXVsdEtleXMge1xuICAgIHJldHVybiB7XG4gICAgICBwdWI6IHRoaXMuZ2V0UHVibGljS2V5KHsgY29tcHJlc3NlZDogdHJ1ZSB9KS50b1N0cmluZygnaGV4JyksXG4gICAgICBwcnY6IHRoaXMuZ2V0UHJpdmF0ZUtleSgpPy50b1N0cmluZygnaGV4JyksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYW4gQXZhbGFuY2hlIFAtQ2hhaW4gcHVibGljIG1haW5uZXQgYWRkcmVzc1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZm9ybWF0IC0gYXZhbGFuY2hlIGhycCAtIHNlbGVjdCBNYWlubmV0KGF2YXgpIG9yIFRlc3RuZXQoZnVqaSkgZm9yIHRoZSBhZGRyZXNzXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBtYWlubmV0IGFkZHJlc3MgZGVyaXZlZCBmcm9tIHRoZSBwdWJsaWMga2V5XG4gICAqL1xuICBnZXRBZGRyZXNzKGZvcm1hdCA9ICdtYWlubmV0Jyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXZheFBBZGRyZXNzKGFkZHJlc3NGb3JtYXRbZm9ybWF0XSk7XG4gIH1cbiAgLyoqXG4gICAqIEdldCBhIHB1YmxpYyBhZGRyZXNzIG9mIHB1YmxpYyBrZXkuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBocnAgLSBzZWxlY3QgTWFpbm5ldChhdmF4KSBvciBUZXN0bmV0KGZ1amkpIGZvciB0aGUgYWRkcmVzc1xuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgYWRkcmVzcyBkZXJpdmVkIGZyb20gdGhlIHB1YmxpYyBrZXkgYW5kIGhycFxuICAgKi9cbiAgZ2V0QXZheFBBZGRyZXNzKGhycDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBhZGRyZXNzQnVmZmVyOiBCdWZmZXJBdmF4ID0gQnVmZmVyQXZheC5mcm9tKHRoaXMuZ2V0QWRkcmVzc0J1ZmZlcigpKTtcbiAgICByZXR1cm4gdXRpbHMuYWRkcmVzc1RvU3RyaW5nKGhycCwgJ1AnLCBhZGRyZXNzQnVmZmVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYW4gQXZhbGFuY2hlIFAtQ2hhaW4gcHVibGljIG1haW5uZXQgYWRkcmVzc1xuICAgKlxuICAgKiBAcmV0dXJucyB7QnVmZmVyfSBUaGUgYWRkcmVzcyBidWZmZXIgZGVyaXZlZCBmcm9tIHRoZSBwdWJsaWMga2V5XG4gICAqL1xuICBnZXRBZGRyZXNzQnVmZmVyKCk6IEJ1ZmZlciB7XG4gICAgY29uc3QgcHVibGljS2V5ID0gQnVmZmVyQXZheC5mcm9tKHRoaXMua2V5UGFpci5wdWJsaWNLZXkpO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gQnVmZmVyLmZyb20oU0VDUDI1NmsxS2V5UGFpci5hZGRyZXNzRnJvbVB1YmxpY0tleShwdWJsaWNLZXkpKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0QWRkcmVzc1NhZmVCdWZmZXIoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXNlIHRoZSBzYWZlIEJ1ZmZlciBpbnN0ZWFkIG9mIHRoZSByZWd1bGFyIGJ1ZmZlciB0byBkZXJpdmUgdGhlIGFkZHJlc3MgYnVmZmVyLiBVc2VkIGluIHRoZSBPVkMuXG4gICAqXG4gICAqIEByZXR1cm5zIHtCdWZmZXJ9XG4gICAqL1xuICBnZXRBZGRyZXNzU2FmZUJ1ZmZlcigpOiBCdWZmZXIge1xuICAgIGNvbnN0IHB1YmxpY0tleVNhZmUgPSBTYWZlQnVmZmVyLmZyb20odGhpcy5rZXlQYWlyLnB1YmxpY0tleSk7XG4gICAgY29uc3Qgc2hhMjU2ID0gU2FmZUJ1ZmZlci5mcm9tKGNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZShwdWJsaWNLZXlTYWZlKS5kaWdlc3QoKSk7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKGNyZWF0ZUhhc2goJ3JpcGVtZDE2MCcpLnVwZGF0ZShzaGEyNTYpLmRpZ2VzdCgpKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { avaxSerial, Credential, pvmSerial, TypeSymbols, Utxo } from '@bitgo-forks/avalanchejs';
|
|
2
|
+
import { BaseAddress, BaseKey, TransactionType } from '@bitgo-beta/sdk-core';
|
|
3
|
+
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
4
|
+
import BigNumber from 'bignumber.js';
|
|
5
|
+
import { DecodedUtxoObj, Tx } from './iface';
|
|
6
|
+
import { KeyPair } from './keyPair';
|
|
7
|
+
import { Transaction } from './transaction';
|
|
8
|
+
import { TransactionBuilder } from './transactionBuilder';
|
|
9
|
+
export declare class PermissionlessValidatorTxBuilder extends TransactionBuilder {
|
|
10
|
+
_signer: KeyPair[];
|
|
11
|
+
protected _nodeID: string;
|
|
12
|
+
protected _blsPublicKey: string;
|
|
13
|
+
protected _blsSignature: string;
|
|
14
|
+
protected _startTime: bigint;
|
|
15
|
+
protected _endTime: bigint;
|
|
16
|
+
protected _stakeAmount: bigint;
|
|
17
|
+
protected recoverSigner: boolean;
|
|
18
|
+
protected _delegationFeeRate: number;
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
* @param coinConfig
|
|
22
|
+
*/
|
|
23
|
+
constructor(coinConfig: Readonly<CoinConfig>);
|
|
24
|
+
/**
|
|
25
|
+
* get transaction type
|
|
26
|
+
* @protected
|
|
27
|
+
*/
|
|
28
|
+
protected get transactionType(): TransactionType;
|
|
29
|
+
/**
|
|
30
|
+
* Validates locktime
|
|
31
|
+
* @param locktime
|
|
32
|
+
*/
|
|
33
|
+
validateLocktime(locktime: bigint): void;
|
|
34
|
+
/**
|
|
35
|
+
* Validate that the delegation fee is at least the minDelegationFee
|
|
36
|
+
* @param delegationFeeRate number
|
|
37
|
+
*/
|
|
38
|
+
validateDelegationFeeRate(delegationFeeRate: number): void;
|
|
39
|
+
/**
|
|
40
|
+
* Check the UTXO has expected fields.
|
|
41
|
+
* @param UTXO
|
|
42
|
+
*/
|
|
43
|
+
validateUtxo(value: DecodedUtxoObj): void;
|
|
44
|
+
/**
|
|
45
|
+
* Addresses where reward should be deposit
|
|
46
|
+
* @param {string | string[]} address - single address or array of addresses to receive rewards
|
|
47
|
+
*/
|
|
48
|
+
rewardAddresses(address: string | string[]): this;
|
|
49
|
+
/** @inheritdoc */
|
|
50
|
+
protected fromImplementation(rawTransaction: string): Transaction;
|
|
51
|
+
/** @inheritdoc */
|
|
52
|
+
protected buildImplementation(): Promise<Transaction>;
|
|
53
|
+
/**
|
|
54
|
+
*
|
|
55
|
+
* @param nodeID
|
|
56
|
+
*/
|
|
57
|
+
nodeID(nodeID: string): this;
|
|
58
|
+
/**
|
|
59
|
+
*
|
|
60
|
+
* @param blsPublicKey
|
|
61
|
+
*/
|
|
62
|
+
blsPublicKey(blsPublicKey: string): this;
|
|
63
|
+
/**
|
|
64
|
+
*
|
|
65
|
+
* @param blsSignature
|
|
66
|
+
*/
|
|
67
|
+
blsSignature(blsSignature: string): this;
|
|
68
|
+
/**
|
|
69
|
+
* Locktime is a long that contains the unix timestamp that this output can be spent after.
|
|
70
|
+
* The unix timestamp is specific to the second.
|
|
71
|
+
* @param value
|
|
72
|
+
*/
|
|
73
|
+
locktime(value: string | number): this;
|
|
74
|
+
/**
|
|
75
|
+
* set the delegationFeeRate
|
|
76
|
+
* @param value number
|
|
77
|
+
*/
|
|
78
|
+
delegationFeeRate(value: number): this;
|
|
79
|
+
/**
|
|
80
|
+
* start time of staking period
|
|
81
|
+
* @param value
|
|
82
|
+
*/
|
|
83
|
+
startTime(value: string | number): this;
|
|
84
|
+
/**
|
|
85
|
+
* end time of staking period
|
|
86
|
+
* @param value
|
|
87
|
+
*/
|
|
88
|
+
endTime(value: string | number): this;
|
|
89
|
+
/**
|
|
90
|
+
*
|
|
91
|
+
* @param value
|
|
92
|
+
*/
|
|
93
|
+
stakeAmount(value: bigint | string): this;
|
|
94
|
+
/**
|
|
95
|
+
* validates a correct NodeID is used
|
|
96
|
+
* @param nodeID
|
|
97
|
+
*/
|
|
98
|
+
validateNodeID(nodeID: string): void;
|
|
99
|
+
/**
|
|
100
|
+
* Validate stake duration
|
|
101
|
+
* @param startTime
|
|
102
|
+
* @param endTime
|
|
103
|
+
*/
|
|
104
|
+
validateStakeDuration(startTime: bigint, endTime: bigint): void;
|
|
105
|
+
/**
|
|
106
|
+
* Validate stake amount
|
|
107
|
+
* @param amount
|
|
108
|
+
*/
|
|
109
|
+
validateStakeAmount(amount: bigint): void;
|
|
110
|
+
/** @inheritdoc */
|
|
111
|
+
initBuilder(tx: Tx): this;
|
|
112
|
+
static verifyTxType(type: TypeSymbols): boolean;
|
|
113
|
+
verifyTxType(tx: Tx): tx is pvmSerial.AddPermissionlessValidatorTx;
|
|
114
|
+
/**
|
|
115
|
+
* Since addresses in outputs get reordered, we need to make sure signatures
|
|
116
|
+
* are added in the correct position
|
|
117
|
+
* To find the position, we use the output's addresses to create the
|
|
118
|
+
* signatureIdx in the order needed (i.e. [user, bitgo, backup])
|
|
119
|
+
* @protected
|
|
120
|
+
*/
|
|
121
|
+
protected calculateUtxos(): {
|
|
122
|
+
inputs: avaxSerial.TransferableInput[];
|
|
123
|
+
stakeOutputs: avaxSerial.TransferableOutput[];
|
|
124
|
+
changeOutputs: avaxSerial.TransferableOutput[];
|
|
125
|
+
utxos: Utxo[];
|
|
126
|
+
credentials: Credential[];
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* Build the add validator transaction
|
|
130
|
+
* @protected
|
|
131
|
+
*/
|
|
132
|
+
protected buildAvaxTransaction(): void;
|
|
133
|
+
/** @inheritdoc */
|
|
134
|
+
protected signImplementation({ key }: BaseKey): Transaction;
|
|
135
|
+
/** @inheritdoc */
|
|
136
|
+
validateAddress(address: BaseAddress, addressFormat?: string): void;
|
|
137
|
+
/** @inheritdoc */
|
|
138
|
+
protected get transaction(): Transaction;
|
|
139
|
+
protected set transaction(transaction: Transaction);
|
|
140
|
+
hasSigner(): boolean;
|
|
141
|
+
/** @inheritdoc */
|
|
142
|
+
validateKey({ key }: BaseKey): void;
|
|
143
|
+
/**
|
|
144
|
+
* Check the raw transaction has a valid format in the blockchain context, throw otherwise.
|
|
145
|
+
*
|
|
146
|
+
* @param rawTransaction Transaction in any format
|
|
147
|
+
*/
|
|
148
|
+
validateRawTransaction(rawTransaction: string): void;
|
|
149
|
+
/** @inheritdoc */
|
|
150
|
+
validateTransaction(transaction?: Transaction): void;
|
|
151
|
+
/** @inheritdoc */
|
|
152
|
+
validateValue(value: BigNumber): void;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=permissionlessValidatorTxBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissionlessValidatorTxBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/permissionlessValidatorTxBuilder.ts"],"names":[],"mappings":"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"}
|