@bitgo-beta/sdk-coin-flrp 1.0.1-beta.32 → 1.0.1-beta.320
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/flrp.d.ts +9 -16
- package/dist/src/flrp.d.ts.map +1 -1
- package/dist/src/flrp.js +49 -75
- package/dist/src/index.d.ts +0 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -2
- package/dist/src/lib/ExportInCTxBuilder.d.ts +51 -0
- package/dist/src/lib/ExportInCTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/ExportInCTxBuilder.js +188 -0
- package/dist/src/lib/ExportInPTxBuilder.d.ts +47 -0
- package/dist/src/lib/ExportInPTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/ExportInPTxBuilder.js +273 -0
- package/dist/src/lib/ImportInCTxBuilder.d.ts +48 -0
- package/dist/src/lib/ImportInCTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/ImportInCTxBuilder.js +215 -0
- package/dist/src/lib/ImportInPTxBuilder.d.ts +33 -0
- package/dist/src/lib/ImportInPTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/ImportInPTxBuilder.js +180 -0
- package/dist/src/lib/atomicInCTransactionBuilder.d.ts +18 -16
- package/dist/src/lib/atomicInCTransactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/atomicInCTransactionBuilder.js +38 -36
- package/dist/src/lib/atomicTransactionBuilder.d.ts +42 -76
- package/dist/src/lib/atomicTransactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/atomicTransactionBuilder.js +141 -218
- package/dist/src/lib/iface.d.ts +38 -61
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +13 -14
- package/dist/src/lib/index.d.ts +5 -0
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +12 -2
- package/dist/src/lib/keyPair.d.ts +5 -5
- package/dist/src/lib/keyPair.d.ts.map +1 -1
- package/dist/src/lib/keyPair.js +17 -9
- package/dist/src/lib/permissionlessValidatorTxBuilder.d.ts +43 -0
- package/dist/src/lib/permissionlessValidatorTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/permissionlessValidatorTxBuilder.js +132 -0
- package/dist/src/lib/transaction.d.ts +14 -69
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +258 -199
- package/dist/src/lib/transactionBuilder.d.ts +107 -0
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder.js +210 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts +50 -30
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +129 -72
- package/dist/src/lib/utils.d.ts +74 -147
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +235 -324
- package/dist/test/resources/account.d.ts +51 -0
- package/dist/test/resources/account.d.ts.map +1 -0
- package/dist/test/resources/account.js +54 -0
- package/dist/test/resources/transactionData/exportInC.d.ts +20 -0
- package/dist/test/resources/transactionData/exportInC.d.ts.map +1 -0
- package/dist/test/resources/transactionData/exportInC.js +34 -0
- package/dist/test/resources/transactionData/exportInP.d.ts +69 -0
- package/dist/test/resources/transactionData/exportInP.d.ts.map +1 -0
- package/dist/test/resources/transactionData/exportInP.js +140 -0
- package/dist/test/resources/transactionData/importInC.d.ts +27 -0
- package/dist/test/resources/transactionData/importInC.d.ts.map +1 -0
- package/dist/test/resources/transactionData/importInC.js +44 -0
- package/dist/test/resources/transactionData/importInP.d.ts +35 -0
- package/dist/test/resources/transactionData/importInP.d.ts.map +1 -0
- package/dist/test/resources/transactionData/importInP.js +58 -0
- package/dist/test/unit/flrp.js +449 -68
- package/dist/test/unit/lib/exportInCTxBuilder.d.ts +2 -0
- package/dist/test/unit/lib/exportInCTxBuilder.d.ts.map +1 -0
- package/dist/test/unit/lib/exportInCTxBuilder.js +166 -0
- package/dist/test/unit/lib/exportInPTxBuilder.d.ts +2 -0
- package/dist/test/unit/lib/exportInPTxBuilder.d.ts.map +1 -0
- package/dist/test/unit/lib/exportInPTxBuilder.js +121 -0
- package/dist/test/unit/lib/importInCTxBuilder.d.ts +2 -0
- package/dist/test/unit/lib/importInCTxBuilder.d.ts.map +1 -0
- package/dist/test/unit/lib/importInCTxBuilder.js +47 -0
- package/dist/test/unit/lib/importInPTxBuilder.d.ts +2 -0
- package/dist/test/unit/lib/importInPTxBuilder.d.ts.map +1 -0
- package/dist/test/unit/lib/importInPTxBuilder.js +73 -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 +158 -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 +89 -0
- package/dist/test/unit/lib/utils.js +507 -207
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +18 -10
- package/.eslintignore +0 -5
- package/.eslintrc.json +0 -7
- package/.mocharc.yml +0 -8
- package/CHANGELOG.md +0 -0
- package/dist/src/iface.d.ts +0 -25
- package/dist/src/iface.d.ts.map +0 -1
- package/dist/src/iface.js +0 -3
- package/dist/src/lib/constants.d.ts +0 -11
- package/dist/src/lib/constants.d.ts.map +0 -1
- package/dist/src/lib/constants.js +0 -17
- package/dist/src/lib/errors.d.ts +0 -8
- package/dist/src/lib/errors.d.ts.map +0 -1
- package/dist/src/lib/errors.js +0 -19
- package/dist/src/lib/exportInCTxBuilder.d.ts +0 -77
- package/dist/src/lib/exportInCTxBuilder.d.ts.map +0 -1
- package/dist/src/lib/exportInCTxBuilder.js +0 -170
- package/dist/src/lib/exportInPTxBuilder.d.ts +0 -30
- package/dist/src/lib/exportInPTxBuilder.d.ts.map +0 -1
- package/dist/src/lib/exportInPTxBuilder.js +0 -56
- package/dist/test/unit/lib/atomicTransactionBuilder.d.ts +0 -2
- package/dist/test/unit/lib/atomicTransactionBuilder.d.ts.map +0 -1
- package/dist/test/unit/lib/atomicTransactionBuilder.js +0 -222
- package/dist/test/unit/lib/exportTxBuilder.d.ts +0 -2
- package/dist/test/unit/lib/exportTxBuilder.d.ts.map +0 -1
- package/dist/test/unit/lib/exportTxBuilder.js +0 -45
- package/dist/test/unit/lib/transaction.d.ts +0 -2
- package/dist/test/unit/lib/transaction.d.ts.map +0 -1
- package/dist/test/unit/lib/transaction.js +0 -460
- package/dist/test/unit/smoke.d.ts +0 -2
- package/dist/test/unit/smoke.d.ts.map +0 -1
- package/dist/test/unit/smoke.js +0 -23
|
@@ -5,60 +5,62 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.AtomicInCTransactionBuilder = void 0;
|
|
7
7
|
const atomicTransactionBuilder_1 = require("./atomicTransactionBuilder");
|
|
8
|
-
const utils_1 = __importDefault(require("./utils"));
|
|
9
8
|
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
* removing direct Avalanche SDK dependencies. Network / chain ids are expected to be provided
|
|
13
|
-
* in the transaction._network object by a higher-level factory once Flare network constants
|
|
14
|
-
* are finalized. For now we CB58-decode placeholders if present and default to zero buffers.
|
|
15
|
-
*/
|
|
9
|
+
const flarejs_1 = require("@flarenetwork/flarejs");
|
|
10
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
16
11
|
class AtomicInCTransactionBuilder extends atomicTransactionBuilder_1.AtomicTransactionBuilder {
|
|
17
12
|
constructor(_coinConfig) {
|
|
18
13
|
super(_coinConfig);
|
|
19
|
-
//
|
|
20
|
-
this.
|
|
21
|
-
|
|
14
|
+
// external chain id is P
|
|
15
|
+
this._externalChainId = utils_1.default.cb58Decode(this.transaction._network.blockchainID);
|
|
16
|
+
// chain id is C
|
|
17
|
+
this.transaction._blockchainID = Buffer.from(utils_1.default.cb58Decode(this.transaction._network.cChainBlockchainID)).toString('hex');
|
|
22
18
|
}
|
|
23
19
|
/**
|
|
24
|
-
*
|
|
20
|
+
* C-Chain base fee with decimal places converted from 18 to 9.
|
|
21
|
+
*
|
|
22
|
+
* @param {string | number} baseFee
|
|
25
23
|
*/
|
|
26
24
|
feeRate(baseFee) {
|
|
27
|
-
const
|
|
28
|
-
this.validateFee(
|
|
29
|
-
this.
|
|
25
|
+
const fee = BigInt(baseFee);
|
|
26
|
+
this.validateFee(fee);
|
|
27
|
+
this.transaction._fee.feeRate = Number(fee);
|
|
30
28
|
return this;
|
|
31
29
|
}
|
|
32
|
-
/**
|
|
33
|
-
* Recreate builder state from raw tx (hex). Flare C-chain support TBD; for now validate & stash.
|
|
34
|
-
*/
|
|
30
|
+
/** @inheritdoc */
|
|
35
31
|
fromImplementation(rawTransaction) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
32
|
+
const txBytes = new Uint8Array(Buffer.from(rawTransaction, 'hex'));
|
|
33
|
+
const codec = flarejs_1.avmSerial.getAVMManager().getDefaultCodec();
|
|
34
|
+
const [tx] = flarejs_1.evmSerial.ImportTx.fromBytes(txBytes, codec);
|
|
35
|
+
const addressMaps = this.transaction._fromAddresses.map((a) => new flarejs_1.utils.AddressMap([[new flarejs_1.Address(a), 0]]));
|
|
36
|
+
const unsignedTx = new flarejs_1.UnsignedTx(tx, [], new flarejs_1.utils.AddressMaps(addressMaps), []);
|
|
37
|
+
this.initBuilder(unsignedTx);
|
|
41
38
|
return this.transaction;
|
|
42
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Check that fee is greater than 0.
|
|
42
|
+
* @param {bigint} fee
|
|
43
|
+
*/
|
|
43
44
|
validateFee(fee) {
|
|
44
|
-
if (fee <=
|
|
45
|
+
if (fee <= BigInt(0)) {
|
|
45
46
|
throw new sdk_core_1.BuildTransactionError('Fee must be greater than 0');
|
|
46
47
|
}
|
|
47
48
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
49
|
+
/**
|
|
50
|
+
* Initialize the transaction builder fields using the decoded transaction data
|
|
51
|
+
*
|
|
52
|
+
* @param {UnsignedTx} tx the transaction data
|
|
53
|
+
* @returns itself
|
|
54
|
+
*/
|
|
55
|
+
initBuilder(tx) {
|
|
56
|
+
// Validate network and blockchain IDs
|
|
57
|
+
const baseTx = tx.getTx();
|
|
58
|
+
if (baseTx.getBlockchainId() !== this.transaction._blockchainID) {
|
|
59
|
+
throw new Error('blockchain ID mismatch');
|
|
55
60
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
const currentContainer = this.transaction;
|
|
59
|
-
const current = currentContainer._fee || { fee: '0' };
|
|
60
|
-
currentContainer._fee = { ...current, feeRate: n.toString() };
|
|
61
|
+
this.transaction.setTransaction(tx);
|
|
62
|
+
return this;
|
|
61
63
|
}
|
|
62
64
|
}
|
|
63
65
|
exports.AtomicInCTransactionBuilder = AtomicInCTransactionBuilder;
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRvbWljSW5DVHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9hdG9taWNJbkNUcmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEseUVBQXNFO0FBRXRFLG1EQUE2RDtBQUM3RCxtREFBdUc7QUFDdkcsb0RBQTRCO0FBRzVCLE1BQXNCLDJCQUE0QixTQUFRLG1EQUF3QjtJQUNoRixZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQix5QkFBeUI7UUFDekIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGVBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDakYsZ0JBQWdCO1FBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQzFDLGVBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FDL0QsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxPQUFPLENBQUMsT0FBd0I7UUFDOUIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsa0JBQWtCLENBQUMsY0FBc0I7UUFDdkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNuRSxNQUFNLEtBQUssR0FBRyxtQkFBUyxDQUFDLGFBQWEsRUFBRSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzFELE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxtQkFBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTFELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxlQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLGlCQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFakgsTUFBTSxVQUFVLEdBQUcsSUFBSSxvQkFBVSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxlQUFVLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZGLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXLENBQUMsR0FBVztRQUNyQixJQUFJLEdBQUcsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNyQixNQUFNLElBQUksZ0NBQXFCLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUNoRSxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLEVBQWM7UUFDeEIsc0NBQXNDO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMxQixJQUFJLE1BQU0sQ0FBQyxlQUFlLEVBQUUsS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2hFLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUE3REQsa0VBNkRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXRvbWljVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi9hdG9taWNUcmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgQnVpbGRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgZXZtU2VyaWFsLCBVbnNpZ25lZFR4LCB1dGlscyBhcyBGbGFyZVV0aWxzLCBhdm1TZXJpYWwsIEFkZHJlc3MgfSBmcm9tICdAZmxhcmVuZXR3b3JrL2ZsYXJlanMnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEF0b21pY0luQ1RyYW5zYWN0aW9uQnVpbGRlciBleHRlbmRzIEF0b21pY1RyYW5zYWN0aW9uQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICAvLyBleHRlcm5hbCBjaGFpbiBpZCBpcyBQXG4gICAgdGhpcy5fZXh0ZXJuYWxDaGFpbklkID0gdXRpbHMuY2I1OERlY29kZSh0aGlzLnRyYW5zYWN0aW9uLl9uZXR3b3JrLmJsb2NrY2hhaW5JRCk7XG4gICAgLy8gY2hhaW4gaWQgaXMgQ1xuICAgIHRoaXMudHJhbnNhY3Rpb24uX2Jsb2NrY2hhaW5JRCA9IEJ1ZmZlci5mcm9tKFxuICAgICAgdXRpbHMuY2I1OERlY29kZSh0aGlzLnRyYW5zYWN0aW9uLl9uZXR3b3JrLmNDaGFpbkJsb2NrY2hhaW5JRClcbiAgICApLnRvU3RyaW5nKCdoZXgnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDLUNoYWluIGJhc2UgZmVlIHdpdGggZGVjaW1hbCBwbGFjZXMgY29udmVydGVkIGZyb20gMTggdG8gOS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudW1iZXJ9IGJhc2VGZWVcbiAgICovXG4gIGZlZVJhdGUoYmFzZUZlZTogc3RyaW5nIHwgbnVtYmVyKTogdGhpcyB7XG4gICAgY29uc3QgZmVlID0gQmlnSW50KGJhc2VGZWUpO1xuICAgIHRoaXMudmFsaWRhdGVGZWUoZmVlKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLl9mZWUuZmVlUmF0ZSA9IE51bWJlcihmZWUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4Qnl0ZXMgPSBuZXcgVWludDhBcnJheShCdWZmZXIuZnJvbShyYXdUcmFuc2FjdGlvbiwgJ2hleCcpKTtcbiAgICBjb25zdCBjb2RlYyA9IGF2bVNlcmlhbC5nZXRBVk1NYW5hZ2VyKCkuZ2V0RGVmYXVsdENvZGVjKCk7XG4gICAgY29uc3QgW3R4XSA9IGV2bVNlcmlhbC5JbXBvcnRUeC5mcm9tQnl0ZXModHhCeXRlcywgY29kZWMpO1xuXG4gICAgY29uc3QgYWRkcmVzc01hcHMgPSB0aGlzLnRyYW5zYWN0aW9uLl9mcm9tQWRkcmVzc2VzLm1hcCgoYSkgPT4gbmV3IEZsYXJlVXRpbHMuQWRkcmVzc01hcChbW25ldyBBZGRyZXNzKGEpLCAwXV0pKTtcblxuICAgIGNvbnN0IHVuc2lnbmVkVHggPSBuZXcgVW5zaWduZWRUeCh0eCwgW10sIG5ldyBGbGFyZVV0aWxzLkFkZHJlc3NNYXBzKGFkZHJlc3NNYXBzKSwgW10pO1xuICAgIHRoaXMuaW5pdEJ1aWxkZXIodW5zaWduZWRUeCk7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgdGhhdCBmZWUgaXMgZ3JlYXRlciB0aGFuIDAuXG4gICAqIEBwYXJhbSB7YmlnaW50fSBmZWVcbiAgICovXG4gIHZhbGlkYXRlRmVlKGZlZTogYmlnaW50KTogdm9pZCB7XG4gICAgaWYgKGZlZSA8PSBCaWdJbnQoMCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ZlZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAwJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIHRyYW5zYWN0aW9uIGJ1aWxkZXIgZmllbGRzIHVzaW5nIHRoZSBkZWNvZGVkIHRyYW5zYWN0aW9uIGRhdGFcbiAgICpcbiAgICogQHBhcmFtIHtVbnNpZ25lZFR4fSB0eCB0aGUgdHJhbnNhY3Rpb24gZGF0YVxuICAgKiBAcmV0dXJucyBpdHNlbGZcbiAgICovXG4gIGluaXRCdWlsZGVyKHR4OiBVbnNpZ25lZFR4KTogdGhpcyB7XG4gICAgLy8gVmFsaWRhdGUgbmV0d29yayBhbmQgYmxvY2tjaGFpbiBJRHNcbiAgICBjb25zdCBiYXNlVHggPSB0eC5nZXRUeCgpO1xuICAgIGlmIChiYXNlVHguZ2V0QmxvY2tjaGFpbklkKCkgIT09IHRoaXMudHJhbnNhY3Rpb24uX2Jsb2NrY2hhaW5JRCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdibG9ja2NoYWluIElEIG1pc21hdGNoJyk7XG4gICAgfVxuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0VHJhbnNhY3Rpb24odHgpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG59XG4iXX0=
|
|
@@ -1,93 +1,59 @@
|
|
|
1
1
|
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
2
|
-
import { TransactionType
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
_locktime: bigint;
|
|
22
|
-
_threshold: number;
|
|
23
|
-
_fee: {
|
|
24
|
-
fee: string;
|
|
25
|
-
feeRate?: string;
|
|
26
|
-
size?: number;
|
|
27
|
-
};
|
|
28
|
-
hasCredentials: boolean;
|
|
29
|
-
_tx?: unknown;
|
|
30
|
-
setTransaction: (tx: unknown) => void;
|
|
31
|
-
};
|
|
32
|
-
constructor(coinConfig: Readonly<CoinConfig>);
|
|
33
|
-
protected abstract get transactionType(): TransactionType;
|
|
34
|
-
validateAmount(amount: bigint): void;
|
|
35
|
-
/**
|
|
36
|
-
* Validates that credentials array is properly formed
|
|
37
|
-
* @param credentials - Array of credentials to validate
|
|
38
|
-
*/
|
|
39
|
-
protected validateCredentials(credentials: Credential[]): void;
|
|
40
|
-
/**
|
|
41
|
-
* Creates inputs, outputs, and credentials for Flare P-chain atomic transactions.
|
|
42
|
-
* Based on AVAX P-chain implementation adapted for FlareJS.
|
|
43
|
-
*
|
|
44
|
-
* Note: This is a simplified implementation that creates the core structure.
|
|
45
|
-
* The FlareJS type system integration will be refined in future iterations.
|
|
46
|
-
*
|
|
47
|
-
* @param total - Total amount needed including fees
|
|
48
|
-
* @returns Object containing TransferableInput[], TransferableOutput[], and Credential[]
|
|
49
|
-
*/
|
|
50
|
-
protected createInputOutput(total: bigint): {
|
|
2
|
+
import { TransactionType } from '@bitgo-beta/sdk-core';
|
|
3
|
+
import { TransactionBuilder } from './transactionBuilder';
|
|
4
|
+
import { Transaction } from './transaction';
|
|
5
|
+
import { TransferableInput, Credential } from '@flarenetwork/flarejs';
|
|
6
|
+
export declare abstract class AtomicTransactionBuilder extends TransactionBuilder {
|
|
7
|
+
protected _externalChainId: Buffer;
|
|
8
|
+
protected recoverSigner: boolean;
|
|
9
|
+
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
10
|
+
/**
|
|
11
|
+
* Create inputs and outputs from UTXOs
|
|
12
|
+
* @param {bigint} amount Amount to transfer
|
|
13
|
+
* @return {
|
|
14
|
+
* inputs: TransferableInput[];
|
|
15
|
+
* outputs: TransferableInput[];
|
|
16
|
+
* credentials: Credential[];
|
|
17
|
+
* }
|
|
18
|
+
* @protected
|
|
19
|
+
*/
|
|
20
|
+
protected createInputOutput(amount: bigint): {
|
|
51
21
|
inputs: TransferableInput[];
|
|
52
|
-
outputs:
|
|
22
|
+
outputs: TransferableInput[];
|
|
53
23
|
credentials: Credential[];
|
|
54
24
|
};
|
|
25
|
+
/** @inheritdoc */
|
|
26
|
+
protected buildImplementation(): Promise<Transaction>;
|
|
55
27
|
/**
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
* @param utxos - Array of decoded UTXO objects
|
|
59
|
-
* @returns this builder instance for chaining
|
|
28
|
+
* Builds the Flare transaction. Transaction field is changed.
|
|
60
29
|
*/
|
|
61
|
-
|
|
30
|
+
protected abstract buildFlareTransaction(): void;
|
|
31
|
+
protected abstract get transactionType(): TransactionType;
|
|
62
32
|
/**
|
|
63
|
-
*
|
|
64
|
-
* Creates a credential with the provided signatures
|
|
33
|
+
* Fee is fix for AVM atomic tx.
|
|
65
34
|
*
|
|
66
|
-
* @
|
|
67
|
-
* @
|
|
68
|
-
* @returns Credential instance
|
|
69
|
-
*/
|
|
70
|
-
protected createFlareCredential(_credentialId: number, signatures: string[]): Credential;
|
|
71
|
-
/**
|
|
72
|
-
* Base initBuilder used by concrete builders. For now just returns this so fluent API works.
|
|
35
|
+
* @returns network.txFee
|
|
36
|
+
* @protected
|
|
73
37
|
*/
|
|
74
|
-
|
|
38
|
+
protected get fixedFee(): string;
|
|
75
39
|
/**
|
|
76
|
-
*
|
|
77
|
-
*
|
|
40
|
+
* Set the transaction type
|
|
41
|
+
*
|
|
42
|
+
* @param {TransactionType} transactionType The transaction type to be set
|
|
78
43
|
*/
|
|
79
|
-
|
|
80
|
-
key: string;
|
|
81
|
-
}): this;
|
|
44
|
+
setTransactionType(transactionType: TransactionType): void;
|
|
82
45
|
/**
|
|
83
|
-
*
|
|
84
|
-
*
|
|
46
|
+
* The internal chain is the one set for the coin in coinConfig.network. The external chain is the other chain involved.
|
|
47
|
+
* The external chain id is the source on import and the destination on export.
|
|
48
|
+
*
|
|
49
|
+
* @param {string} chainId - id of the external chain
|
|
85
50
|
*/
|
|
86
|
-
|
|
51
|
+
externalChainId(chainId: string | Buffer): this;
|
|
87
52
|
/**
|
|
88
|
-
*
|
|
89
|
-
*
|
|
53
|
+
* Set the transaction fee
|
|
54
|
+
*
|
|
55
|
+
* @param {string | bigint} feeValue - the fee value
|
|
90
56
|
*/
|
|
91
|
-
|
|
57
|
+
fee(feeValue: string | bigint): this;
|
|
92
58
|
}
|
|
93
59
|
//# sourceMappingURL=atomicTransactionBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atomicTransactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/atomicTransactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,
|
|
1
|
+
{"version":3,"file":"atomicTransactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/atomicTransactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAwB,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAW5F,8BAAsB,wBAAyB,SAAQ,kBAAkB;IACvE,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,aAAa,UAAS;gBAEpB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C;;;;;;;;;OASG;IACH,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG;QAC3C,MAAM,EAAE,iBAAiB,EAAE,CAAC;QAC5B,OAAO,EAAE,iBAAiB,EAAE,CAAC;QAC7B,WAAW,EAAE,UAAU,EAAE,CAAC;KAC3B;IAoHD,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAY3D;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,qBAAqB,IAAI,IAAI;IAEhD,SAAS,CAAC,QAAQ,KAAK,eAAe,IAAI,eAAe,CAAC;IAE1D;;;;;OAKG;IACH,SAAS,KAAK,QAAQ,IAAI,MAAM,CAE/B;IAED;;;;OAIG;IACH,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAI1D;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAO/C;;;;OAIG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAKrC"}
|