@bitgo-beta/sdk-coin-flrp 1.0.1-beta.2 → 1.0.1-beta.4
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/lib/atomicInCTransactionBuilder.d.ts +26 -0
- package/dist/src/lib/atomicInCTransactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/atomicInCTransactionBuilder.js +64 -0
- package/dist/src/lib/atomicTransactionBuilder.d.ts +4 -1
- package/dist/src/lib/atomicTransactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/atomicTransactionBuilder.js +3 -2
- package/dist/src/lib/exportInCTxBuilder.d.ts +77 -0
- package/dist/src/lib/exportInCTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/exportInCTxBuilder.js +164 -0
- package/dist/src/lib/{exportTxBuilder.d.ts → exportInPTxBuilder.d.ts} +2 -2
- package/dist/src/lib/exportInPTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/exportInPTxBuilder.js +56 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
- package/dist/src/lib/exportTxBuilder.d.ts.map +0 -1
- package/dist/src/lib/exportTxBuilder.js +0 -56
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { AtomicTransactionBuilder } from './atomicTransactionBuilder';
|
|
2
|
+
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
3
|
+
/**
|
|
4
|
+
* Flare P->C atomic import/export style builder (C-chain context). This adapts the AVAXP logic
|
|
5
|
+
* removing direct Avalanche SDK dependencies. Network / chain ids are expected to be provided
|
|
6
|
+
* in the transaction._network object by a higher-level factory once Flare network constants
|
|
7
|
+
* are finalized. For now we CB58-decode placeholders if present and default to zero buffers.
|
|
8
|
+
*/
|
|
9
|
+
export declare abstract class AtomicInCTransactionBuilder extends AtomicTransactionBuilder {
|
|
10
|
+
protected fixedFee: bigint;
|
|
11
|
+
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
12
|
+
/**
|
|
13
|
+
* Set base fee (already scaled to Flare C-chain native decimals). Accept bigint | number | string.
|
|
14
|
+
*/
|
|
15
|
+
feeRate(baseFee: bigint | number | string): this;
|
|
16
|
+
/**
|
|
17
|
+
* Recreate builder state from raw tx (hex). Flare C-chain support TBD; for now validate & stash.
|
|
18
|
+
*/
|
|
19
|
+
protected fromImplementation(rawTransaction: string): {
|
|
20
|
+
_tx?: unknown;
|
|
21
|
+
};
|
|
22
|
+
private validateFee;
|
|
23
|
+
private initializeChainIds;
|
|
24
|
+
private setFeeRate;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=atomicInCTransactionBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atomicInCTransactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/atomicInCTransactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAe7D;;;;;GAKG;AACH,8BAAsB,2BAA4B,SAAQ,wBAAwB;IAEhF,SAAS,CAAC,QAAQ,SAAM;gBACZ,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI;IAOhD;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG;QAAE,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE;IASvE,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,UAAU;CAKnB"}
|
|
@@ -0,0 +1,64 @@
|
|
|
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.AtomicInCTransactionBuilder = void 0;
|
|
7
|
+
const atomicTransactionBuilder_1 = require("./atomicTransactionBuilder");
|
|
8
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
9
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
10
|
+
/**
|
|
11
|
+
* Flare P->C atomic import/export style builder (C-chain context). This adapts the AVAXP logic
|
|
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
|
+
*/
|
|
16
|
+
class AtomicInCTransactionBuilder extends atomicTransactionBuilder_1.AtomicTransactionBuilder {
|
|
17
|
+
constructor(_coinConfig) {
|
|
18
|
+
super(_coinConfig);
|
|
19
|
+
// Placeholder fixed fee (can be overridden by subclasses or network config)
|
|
20
|
+
this.fixedFee = 0n;
|
|
21
|
+
this.initializeChainIds();
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Set base fee (already scaled to Flare C-chain native decimals). Accept bigint | number | string.
|
|
25
|
+
*/
|
|
26
|
+
feeRate(baseFee) {
|
|
27
|
+
const n = typeof baseFee === 'bigint' ? baseFee : BigInt(baseFee);
|
|
28
|
+
this.validateFee(n);
|
|
29
|
+
this.setFeeRate(n);
|
|
30
|
+
return this;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Recreate builder state from raw tx (hex). Flare C-chain support TBD; for now validate & stash.
|
|
34
|
+
*/
|
|
35
|
+
fromImplementation(rawTransaction) {
|
|
36
|
+
// If utils has validateRawTransaction use it; otherwise basic check
|
|
37
|
+
if (utils_1.default.validateRawTransaction) {
|
|
38
|
+
utils_1.default.validateRawTransaction(rawTransaction);
|
|
39
|
+
}
|
|
40
|
+
this.transaction.setTransaction(rawTransaction);
|
|
41
|
+
return this.transaction;
|
|
42
|
+
}
|
|
43
|
+
validateFee(fee) {
|
|
44
|
+
if (fee <= 0n) {
|
|
45
|
+
throw new sdk_core_1.BuildTransactionError('Fee must be greater than 0');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
initializeChainIds() {
|
|
49
|
+
const meta = this.transaction._network;
|
|
50
|
+
if (meta?.blockchainID) {
|
|
51
|
+
this._externalChainId = utils_1.default.cb58Decode(meta.blockchainID);
|
|
52
|
+
}
|
|
53
|
+
if (meta?.cChainBlockchainID) {
|
|
54
|
+
this.transaction._blockchainID = utils_1.default.cb58Decode(meta.cChainBlockchainID);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
setFeeRate(n) {
|
|
58
|
+
const currentContainer = this.transaction;
|
|
59
|
+
const current = currentContainer._fee || { fee: '0' };
|
|
60
|
+
currentContainer._fee = { ...current, feeRate: n.toString() };
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.AtomicInCTransactionBuilder = AtomicInCTransactionBuilder;
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRvbWljSW5DVHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9hdG9taWNJbkNUcmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEseUVBQXNFO0FBRXRFLG9EQUE0QjtBQUM1QixtREFBNkQ7QUFhN0Q7Ozs7O0dBS0c7QUFDSCxNQUFzQiwyQkFBNEIsU0FBUSxtREFBd0I7SUFHaEYsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFIckIsNEVBQTRFO1FBQ2xFLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFHdEIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTyxDQUFDLE9BQWlDO1FBQ3ZDLE1BQU0sQ0FBQyxHQUFHLE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25CLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ08sa0JBQWtCLENBQUMsY0FBc0I7UUFDakQsb0VBQW9FO1FBQ3BFLElBQUssZUFBcUUsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQ2pHLGVBQW9FLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0csQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2hELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRU8sV0FBVyxDQUFDLEdBQVc7UUFDN0IsSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUM7WUFDZCxNQUFNLElBQUksZ0NBQXFCLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUNoRSxDQUFDO0lBQ0gsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQWlDLENBQUM7UUFDaEUsSUFBSSxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGVBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxJQUFJLElBQUksRUFBRSxrQkFBa0IsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxHQUFHLGVBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDN0UsQ0FBQztJQUNILENBQUM7SUFFTyxVQUFVLENBQUMsQ0FBUztRQUMxQixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxXQUE0QyxDQUFDO1FBQzNFLE1BQU0sT0FBTyxHQUFHLGdCQUFnQixDQUFDLElBQUksSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUN0RCxnQkFBZ0IsQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7SUFDaEUsQ0FBQztDQUNGO0FBbkRELGtFQW1EQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0b21pY1RyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vYXRvbWljVHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcblxuaW50ZXJmYWNlIEZsYXJlQ2hhaW5OZXR3b3JrTWV0YSB7XG4gIGJsb2NrY2hhaW5JRD86IHN0cmluZzsgLy8gUC1jaGFpbiBpZCAoZXh0ZXJuYWwpXG4gIGNDaGFpbkJsb2NrY2hhaW5JRD86IHN0cmluZzsgLy8gQy1jaGFpbiBpZCAobG9jYWwpXG4gIFtrOiBzdHJpbmddOiB1bmtub3duO1xufVxuXG5pbnRlcmZhY2UgRmVlU2hhcGUge1xuICBmZWU/OiBzdHJpbmc7IC8vIGxlZ2FjeVxuICBmZWVSYXRlPzogc3RyaW5nOyAvLyBwZXIgdW5pdCByYXRlXG59XG5cbi8qKlxuICogRmxhcmUgUC0+QyBhdG9taWMgaW1wb3J0L2V4cG9ydCBzdHlsZSBidWlsZGVyIChDLWNoYWluIGNvbnRleHQpLiBUaGlzIGFkYXB0cyB0aGUgQVZBWFAgbG9naWNcbiAqIHJlbW92aW5nIGRpcmVjdCBBdmFsYW5jaGUgU0RLIGRlcGVuZGVuY2llcy4gTmV0d29yayAvIGNoYWluIGlkcyBhcmUgZXhwZWN0ZWQgdG8gYmUgcHJvdmlkZWRcbiAqIGluIHRoZSB0cmFuc2FjdGlvbi5fbmV0d29yayBvYmplY3QgYnkgYSBoaWdoZXItbGV2ZWwgZmFjdG9yeSBvbmNlIEZsYXJlIG5ldHdvcmsgY29uc3RhbnRzXG4gKiBhcmUgZmluYWxpemVkLiBGb3Igbm93IHdlIENCNTgtZGVjb2RlIHBsYWNlaG9sZGVycyBpZiBwcmVzZW50IGFuZCBkZWZhdWx0IHRvIHplcm8gYnVmZmVycy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEF0b21pY0luQ1RyYW5zYWN0aW9uQnVpbGRlciBleHRlbmRzIEF0b21pY1RyYW5zYWN0aW9uQnVpbGRlciB7XG4gIC8vIFBsYWNlaG9sZGVyIGZpeGVkIGZlZSAoY2FuIGJlIG92ZXJyaWRkZW4gYnkgc3ViY2xhc3NlcyBvciBuZXR3b3JrIGNvbmZpZylcbiAgcHJvdGVjdGVkIGZpeGVkRmVlID0gMG47XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLmluaXRpYWxpemVDaGFpbklkcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBiYXNlIGZlZSAoYWxyZWFkeSBzY2FsZWQgdG8gRmxhcmUgQy1jaGFpbiBuYXRpdmUgZGVjaW1hbHMpLiBBY2NlcHQgYmlnaW50IHwgbnVtYmVyIHwgc3RyaW5nLlxuICAgKi9cbiAgZmVlUmF0ZShiYXNlRmVlOiBiaWdpbnQgfCBudW1iZXIgfCBzdHJpbmcpOiB0aGlzIHtcbiAgICBjb25zdCBuID0gdHlwZW9mIGJhc2VGZWUgPT09ICdiaWdpbnQnID8gYmFzZUZlZSA6IEJpZ0ludChiYXNlRmVlKTtcbiAgICB0aGlzLnZhbGlkYXRlRmVlKG4pO1xuICAgIHRoaXMuc2V0RmVlUmF0ZShuKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWNyZWF0ZSBidWlsZGVyIHN0YXRlIGZyb20gcmF3IHR4IChoZXgpLiBGbGFyZSBDLWNoYWluIHN1cHBvcnQgVEJEOyBmb3Igbm93IHZhbGlkYXRlICYgc3Rhc2guXG4gICAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiB7IF90eD86IHVua25vd24gfSB7XG4gICAgLy8gSWYgdXRpbHMgaGFzIHZhbGlkYXRlUmF3VHJhbnNhY3Rpb24gdXNlIGl0OyBvdGhlcndpc2UgYmFzaWMgY2hlY2tcbiAgICBpZiAoKHV0aWxzIGFzIHVua25vd24gYXMgeyB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uPzogKHI6IHN0cmluZykgPT4gdm9pZCB9KS52YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKSB7XG4gICAgICAodXRpbHMgYXMgdW5rbm93biBhcyB7IHZhbGlkYXRlUmF3VHJhbnNhY3Rpb246IChyOiBzdHJpbmcpID0+IHZvaWQgfSkudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgfVxuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUZlZShmZWU6IGJpZ2ludCk6IHZvaWQge1xuICAgIGlmIChmZWUgPD0gMG4pIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ZlZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAwJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplQ2hhaW5JZHMoKTogdm9pZCB7XG4gICAgY29uc3QgbWV0YSA9IHRoaXMudHJhbnNhY3Rpb24uX25ldHdvcmsgYXMgRmxhcmVDaGFpbk5ldHdvcmtNZXRhO1xuICAgIGlmIChtZXRhPy5ibG9ja2NoYWluSUQpIHtcbiAgICAgIHRoaXMuX2V4dGVybmFsQ2hhaW5JZCA9IHV0aWxzLmNiNThEZWNvZGUobWV0YS5ibG9ja2NoYWluSUQpO1xuICAgIH1cbiAgICBpZiAobWV0YT8uY0NoYWluQmxvY2tjaGFpbklEKSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLl9ibG9ja2NoYWluSUQgPSB1dGlscy5jYjU4RGVjb2RlKG1ldGEuY0NoYWluQmxvY2tjaGFpbklEKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEZlZVJhdGUobjogYmlnaW50KTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudENvbnRhaW5lciA9IHRoaXMudHJhbnNhY3Rpb24gYXMgdW5rbm93biBhcyB7IF9mZWU6IEZlZVNoYXBlIH07XG4gICAgY29uc3QgY3VycmVudCA9IGN1cnJlbnRDb250YWluZXIuX2ZlZSB8fCB7IGZlZTogJzAnIH07XG4gICAgY3VycmVudENvbnRhaW5lci5fZmVlID0geyAuLi5jdXJyZW50LCBmZWVSYXRlOiBuLnRvU3RyaW5nKCkgfTtcbiAgfVxufVxuIl19
|
|
@@ -13,10 +13,13 @@ export declare abstract class AtomicTransactionBuilder {
|
|
|
13
13
|
_blockchainID: Buffer;
|
|
14
14
|
_assetId: Buffer;
|
|
15
15
|
_fromAddresses: string[];
|
|
16
|
+
_to: string[];
|
|
16
17
|
_locktime: bigint;
|
|
17
18
|
_threshold: number;
|
|
18
|
-
|
|
19
|
+
_fee: {
|
|
19
20
|
fee: string;
|
|
21
|
+
feeRate?: string;
|
|
22
|
+
size?: number;
|
|
20
23
|
};
|
|
21
24
|
hasCredentials: boolean;
|
|
22
25
|
_tx?: unknown;
|
|
@@ -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,EAAyB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE9E;;;GAGG;AACH,8BAAsB,wBAAwB;IAC5C,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAErD,SAAS,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IAI/C,SAAS,CAAC,WAAW,EAAE;QACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClC,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,
|
|
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,EAAyB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE9E;;;GAGG;AACH,8BAAsB,wBAAwB;IAC5C,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAErD,SAAS,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IAI/C,SAAS,CAAC,WAAW,EAAE;QACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClC,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,GAAG,EAAE,MAAM,EAAE,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACvD,cAAc,EAAE,OAAO,CAAC;QACxB,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,cAAc,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,IAAI,CAAC;KACvC,CAcC;gBAEU,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C,SAAS,CAAC,QAAQ,KAAK,eAAe,IAAI,eAAe,CAAC;IAE1D,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMpC;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAAC,OAAO,EAAE,OAAO,EAAE,CAAC;QAAC,WAAW,EAAE,OAAO,EAAE,CAAA;KAAE;IAI9G;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;CAGhC"}
|
|
@@ -16,9 +16,10 @@ class AtomicTransactionBuilder {
|
|
|
16
16
|
_blockchainID: Buffer.alloc(0),
|
|
17
17
|
_assetId: Buffer.alloc(0),
|
|
18
18
|
_fromAddresses: [],
|
|
19
|
+
_to: [],
|
|
19
20
|
_locktime: 0n,
|
|
20
21
|
_threshold: 1,
|
|
21
|
-
|
|
22
|
+
_fee: { fee: '0' },
|
|
22
23
|
hasCredentials: false,
|
|
23
24
|
setTransaction: function (_tx) {
|
|
24
25
|
this._tx = _tx;
|
|
@@ -45,4 +46,4 @@ class AtomicTransactionBuilder {
|
|
|
45
46
|
}
|
|
46
47
|
}
|
|
47
48
|
exports.AtomicTransactionBuilder = AtomicTransactionBuilder;
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRvbWljVHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9hdG9taWNUcmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsbURBQThFO0FBRTlFOzs7R0FHRztBQUNILE1BQXNCLHdCQUF3QjtJQW9DNUMsWUFBWSxVQUFnQztRQS9CNUMsc0ZBQXNGO1FBQ3RGLHdDQUF3QztRQUM5QixnQkFBVyxHQWFqQjtZQUNGLFFBQVEsRUFBRSxFQUFFO1lBQ1osVUFBVSxFQUFFLENBQUM7WUFDYixhQUFhLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDOUIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLGNBQWMsRUFBRSxFQUFFO1lBQ2xCLEdBQUcsRUFBRSxFQUFFO1lBQ1AsU0FBUyxFQUFFLEVBQUU7WUFDYixVQUFVLEVBQUUsQ0FBQztZQUNiLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7WUFDbEIsY0FBYyxFQUFFLEtBQUs7WUFDckIsY0FBYyxFQUFFLFVBQVUsR0FBWTtnQkFDcEMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7WUFDakIsQ0FBQztTQUNGLENBQUM7UUFHQSxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztJQUNoQyxDQUFDO0lBSUQsY0FBYyxDQUFDLE1BQWM7UUFDM0IsSUFBSSxNQUFNLElBQUksRUFBRSxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLGdDQUFxQixDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDN0QsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNPLGlCQUFpQixDQUFDLE1BQWM7UUFDeEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVyxDQUFDLEdBQVk7UUFDdEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUE3REQsNERBNkRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgQnVpbGRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5cbi8qKlxuICogTWluaW1hbCBwbGFjZWhvbGRlciBmb3IgRmxhcmUgUC1jaGFpbiBhdG9taWMgdHJhbnNhY3Rpb24gYnVpbGRpbmcuXG4gKiBUaGlzIHdpbGwgYmUgZXhwYW5kZWQgd2l0aCBwcm9wZXIgRmxhcmUgUC1jaGFpbiBsb2dpYyAoaW5wdXRzL291dHB1dHMvY3JlZGVudGlhbHMsIFVUWE8gaGFuZGxpbmcsIGZlZXMsIGV0Yy4pLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQXRvbWljVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPjtcbiAgLy8gRXh0ZXJuYWwgY2hhaW4gaWQgKGRlc3RpbmF0aW9uKSBmb3IgZXhwb3J0IHRyYW5zYWN0aW9uc1xuICBwcm90ZWN0ZWQgX2V4dGVybmFsQ2hhaW5JZDogQnVmZmVyIHwgdW5kZWZpbmVkO1xuXG4gIC8vIFNpbXBsaWZpZWQgaW50ZXJuYWwgdHJhbnNhY3Rpb24gc3RhdGUgKG1pcnJvcnMgc2hhcGUgZXhwZWN0ZWQgYnkgZXhpc3RpbmcgYnVpbGRlcnMpXG4gIC8vIFNpbXBsaWZpZWQgaW50ZXJuYWwgdHJhbnNhY3Rpb24gc3RhdGVcbiAgcHJvdGVjdGVkIHRyYW5zYWN0aW9uOiB7XG4gICAgX25ldHdvcms6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIF9uZXR3b3JrSUQ6IG51bWJlcjtcbiAgICBfYmxvY2tjaGFpbklEOiBCdWZmZXI7XG4gICAgX2Fzc2V0SWQ6IEJ1ZmZlcjtcbiAgICBfZnJvbUFkZHJlc3Nlczogc3RyaW5nW107XG4gICAgX3RvOiBzdHJpbmdbXTtcbiAgICBfbG9ja3RpbWU6IGJpZ2ludDtcbiAgICBfdGhyZXNob2xkOiBudW1iZXI7XG4gICAgX2ZlZTogeyBmZWU6IHN0cmluZzsgZmVlUmF0ZT86IHN0cmluZzsgc2l6ZT86IG51bWJlciB9O1xuICAgIGhhc0NyZWRlbnRpYWxzOiBib29sZWFuO1xuICAgIF90eD86IHVua25vd247XG4gICAgc2V0VHJhbnNhY3Rpb246ICh0eDogdW5rbm93bikgPT4gdm9pZDtcbiAgfSA9IHtcbiAgICBfbmV0d29yazoge30sXG4gICAgX25ldHdvcmtJRDogMCxcbiAgICBfYmxvY2tjaGFpbklEOiBCdWZmZXIuYWxsb2MoMCksXG4gICAgX2Fzc2V0SWQ6IEJ1ZmZlci5hbGxvYygwKSxcbiAgICBfZnJvbUFkZHJlc3NlczogW10sXG4gICAgX3RvOiBbXSxcbiAgICBfbG9ja3RpbWU6IDBuLFxuICAgIF90aHJlc2hvbGQ6IDEsXG4gICAgX2ZlZTogeyBmZWU6ICcwJyB9LFxuICAgIGhhc0NyZWRlbnRpYWxzOiBmYWxzZSxcbiAgICBzZXRUcmFuc2FjdGlvbjogZnVuY3Rpb24gKF90eDogdW5rbm93bikge1xuICAgICAgdGhpcy5fdHggPSBfdHg7XG4gICAgfSxcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHRoaXMuX2NvaW5Db25maWcgPSBjb2luQ29uZmlnO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlO1xuXG4gIHZhbGlkYXRlQW1vdW50KGFtb3VudDogYmlnaW50KTogdm9pZCB7XG4gICAgaWYgKGFtb3VudCA8PSAwbikge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignQW1vdW50IG11c3QgYmUgcG9zaXRpdmUnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUGxhY2Vob2xkZXIgdGhhdCBzaG91bGQgYXNzZW1ibGUgaW5wdXRzL291dHB1dHMgYW5kIGNyZWRlbnRpYWxzIG9uY2UgVVRYTyArIGtleSBsb2dpYyBpcyBpbXBsZW1lbnRlZC5cbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVJbnB1dE91dHB1dChfdG90YWw6IGJpZ2ludCk6IHsgaW5wdXRzOiB1bmtub3duW107IG91dHB1dHM6IHVua25vd25bXTsgY3JlZGVudGlhbHM6IHVua25vd25bXSB9IHtcbiAgICByZXR1cm4geyBpbnB1dHM6IFtdLCBvdXRwdXRzOiBbXSwgY3JlZGVudGlhbHM6IFtdIH07XG4gIH1cblxuICAvKipcbiAgICogQmFzZSBpbml0QnVpbGRlciB1c2VkIGJ5IGNvbmNyZXRlIGJ1aWxkZXJzLiBGb3Igbm93IGp1c3QgcmV0dXJucyB0aGlzIHNvIGZsdWVudCBBUEkgd29ya3MuXG4gICAqL1xuICBpbml0QnVpbGRlcihfdHg6IHVua25vd24pOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { TransactionType } from '@bitgo-beta/sdk-core';
|
|
2
|
+
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
3
|
+
import { AtomicInCTransactionBuilder } from './atomicInCTransactionBuilder';
|
|
4
|
+
interface FlareExportInputShape {
|
|
5
|
+
address: string;
|
|
6
|
+
amount: bigint;
|
|
7
|
+
assetId: Buffer;
|
|
8
|
+
nonce: bigint;
|
|
9
|
+
}
|
|
10
|
+
interface FlareExportOutputShape {
|
|
11
|
+
addresses: string[];
|
|
12
|
+
amount: bigint;
|
|
13
|
+
assetId: Buffer;
|
|
14
|
+
}
|
|
15
|
+
interface FlareUnsignedExportTx {
|
|
16
|
+
networkId: number;
|
|
17
|
+
sourceBlockchainId: Buffer;
|
|
18
|
+
destinationBlockchainId: Buffer;
|
|
19
|
+
inputs: FlareExportInputShape[];
|
|
20
|
+
outputs: FlareExportOutputShape[];
|
|
21
|
+
}
|
|
22
|
+
interface FlareSignedExportTx {
|
|
23
|
+
unsignedTx: FlareUnsignedExportTx;
|
|
24
|
+
credentials: unknown[];
|
|
25
|
+
}
|
|
26
|
+
type RawFlareExportTx = FlareSignedExportTx;
|
|
27
|
+
export declare class ExportInCTxBuilder extends AtomicInCTransactionBuilder {
|
|
28
|
+
private _amount?;
|
|
29
|
+
private _nonce?;
|
|
30
|
+
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
31
|
+
/**
|
|
32
|
+
* Utxos are not required in Export Tx in C-Chain.
|
|
33
|
+
* Override utxos to prevent used by throwing a error.
|
|
34
|
+
*
|
|
35
|
+
* @param {DecodedUtxoObj[]} value ignored
|
|
36
|
+
*/
|
|
37
|
+
utxos(_value: unknown[]): this;
|
|
38
|
+
/**
|
|
39
|
+
* Amount is a long that specifies the quantity of the asset that this output owns. Must be positive.
|
|
40
|
+
* The transaction output amount add a fixed fee that will be paid upon import.
|
|
41
|
+
*
|
|
42
|
+
* @param {BN | string} amount The withdrawal amount
|
|
43
|
+
*/
|
|
44
|
+
amount(amount: bigint | number | string): this;
|
|
45
|
+
/**
|
|
46
|
+
* Set the nonce of C-Chain sender address
|
|
47
|
+
*
|
|
48
|
+
* @param {number | string} nonce - number that can be only used once
|
|
49
|
+
*/
|
|
50
|
+
nonce(nonce: bigint | number | string): this;
|
|
51
|
+
/**
|
|
52
|
+
* Export tx target P wallet.
|
|
53
|
+
*
|
|
54
|
+
* @param pAddresses
|
|
55
|
+
*/
|
|
56
|
+
to(pAddresses: string | string[]): this;
|
|
57
|
+
protected get transactionType(): TransactionType;
|
|
58
|
+
initBuilder(raw: RawFlareExportTx): this;
|
|
59
|
+
static verifyTxType(_tx: unknown): _tx is FlareUnsignedExportTx;
|
|
60
|
+
verifyTxType(_tx: unknown): _tx is FlareUnsignedExportTx;
|
|
61
|
+
/**
|
|
62
|
+
* Build the export in C-chain transaction
|
|
63
|
+
* @protected
|
|
64
|
+
*/
|
|
65
|
+
protected buildFlareTransaction(): void;
|
|
66
|
+
/** @inheritdoc */
|
|
67
|
+
protected fromImplementation(raw: string | RawFlareExportTx): {
|
|
68
|
+
_tx?: unknown;
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Check the amount is positive.
|
|
72
|
+
* @param amount
|
|
73
|
+
*/
|
|
74
|
+
validateNonce(nonce: bigint): void;
|
|
75
|
+
}
|
|
76
|
+
export {};
|
|
77
|
+
//# sourceMappingURL=exportInCTxBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exportInCTxBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/exportInCTxBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAG5E,UAAU,qBAAqB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,sBAAsB;IAC9B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,qBAAqB;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,uBAAuB,EAAE,MAAM,CAAC;IAChC,MAAM,EAAE,qBAAqB,EAAE,CAAC;IAChC,OAAO,EAAE,sBAAsB,EAAE,CAAC;CACnC;AAED,UAAU,mBAAmB;IAC3B,UAAU,EAAE,qBAAqB,CAAC;IAElC,WAAW,EAAE,OAAO,EAAE,CAAC;CACxB;AAED,KAAK,gBAAgB,GAAG,mBAAmB,CAAC;AAE5C,qBAAa,kBAAmB,SAAQ,2BAA2B;IACjE,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,MAAM,CAAC,CAAS;gBAEZ,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;;;OAKG;IACH,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI;IAI9B;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI;IAO9C;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI;IAO5C;;;;OAIG;IACH,EAAE,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAOvC,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,WAAW,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI;IAuCxC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,qBAAqB;IAI/D,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,qBAAqB;IAIxD;;;OAGG;IACH,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAoCvC,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,GAAG;QAAE,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE;IAS/E;;;OAGG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAKnC"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExportInCTxBuilder = void 0;
|
|
4
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
5
|
+
const atomicInCTransactionBuilder_1 = require("./atomicInCTransactionBuilder");
|
|
6
|
+
class ExportInCTxBuilder extends atomicInCTransactionBuilder_1.AtomicInCTransactionBuilder {
|
|
7
|
+
constructor(_coinConfig) {
|
|
8
|
+
super(_coinConfig);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Utxos are not required in Export Tx in C-Chain.
|
|
12
|
+
* Override utxos to prevent used by throwing a error.
|
|
13
|
+
*
|
|
14
|
+
* @param {DecodedUtxoObj[]} value ignored
|
|
15
|
+
*/
|
|
16
|
+
utxos(_value) {
|
|
17
|
+
throw new sdk_core_1.BuildTransactionError('utxos are not required in Export Tx in C-Chain');
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Amount is a long that specifies the quantity of the asset that this output owns. Must be positive.
|
|
21
|
+
* The transaction output amount add a fixed fee that will be paid upon import.
|
|
22
|
+
*
|
|
23
|
+
* @param {BN | string} amount The withdrawal amount
|
|
24
|
+
*/
|
|
25
|
+
amount(amount) {
|
|
26
|
+
const n = typeof amount === 'bigint' ? amount : BigInt(amount);
|
|
27
|
+
this.validateAmount(n);
|
|
28
|
+
this._amount = n;
|
|
29
|
+
return this;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Set the nonce of C-Chain sender address
|
|
33
|
+
*
|
|
34
|
+
* @param {number | string} nonce - number that can be only used once
|
|
35
|
+
*/
|
|
36
|
+
nonce(nonce) {
|
|
37
|
+
const n = typeof nonce === 'bigint' ? nonce : BigInt(nonce);
|
|
38
|
+
this.validateNonce(n);
|
|
39
|
+
this._nonce = n;
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Export tx target P wallet.
|
|
44
|
+
*
|
|
45
|
+
* @param pAddresses
|
|
46
|
+
*/
|
|
47
|
+
to(pAddresses) {
|
|
48
|
+
const pubKeys = Array.isArray(pAddresses) ? pAddresses : pAddresses.split('~');
|
|
49
|
+
// For now ensure they are stored as bech32 / string addresses directly
|
|
50
|
+
this.transaction._to = pubKeys.map((a) => a.toString());
|
|
51
|
+
return this;
|
|
52
|
+
}
|
|
53
|
+
get transactionType() {
|
|
54
|
+
return sdk_core_1.TransactionType.Export;
|
|
55
|
+
}
|
|
56
|
+
initBuilder(raw) {
|
|
57
|
+
// Basic shape validation
|
|
58
|
+
const unsigned = raw.unsignedTx;
|
|
59
|
+
if (unsigned.networkId !== this.transaction._networkID) {
|
|
60
|
+
throw new Error('Network ID mismatch');
|
|
61
|
+
}
|
|
62
|
+
if (!unsigned.sourceBlockchainId.equals(this.transaction._blockchainID)) {
|
|
63
|
+
throw new Error('Blockchain ID mismatch');
|
|
64
|
+
}
|
|
65
|
+
if (unsigned.outputs.length !== 1) {
|
|
66
|
+
throw new sdk_core_1.BuildTransactionError('Transaction can have one output');
|
|
67
|
+
}
|
|
68
|
+
if (unsigned.inputs.length !== 1) {
|
|
69
|
+
throw new sdk_core_1.BuildTransactionError('Transaction can have one input');
|
|
70
|
+
}
|
|
71
|
+
const out = unsigned.outputs[0];
|
|
72
|
+
const inp = unsigned.inputs[0];
|
|
73
|
+
if (!out.assetId.equals(this.transaction._assetId) || !inp.assetId.equals(this.transaction._assetId)) {
|
|
74
|
+
throw new Error('AssetID mismatch');
|
|
75
|
+
}
|
|
76
|
+
this.transaction._to = out.addresses;
|
|
77
|
+
this._amount = out.amount;
|
|
78
|
+
const fee = inp.amount - out.amount;
|
|
79
|
+
if (fee < 0n) {
|
|
80
|
+
throw new sdk_core_1.BuildTransactionError('Computed fee is negative');
|
|
81
|
+
}
|
|
82
|
+
const fixed = this.fixedFee;
|
|
83
|
+
const feeRate = fee - fixed;
|
|
84
|
+
this.transaction._fee.feeRate = feeRate.toString();
|
|
85
|
+
this.transaction._fee.fee = fee.toString();
|
|
86
|
+
this.transaction._fee.size = 1;
|
|
87
|
+
this.transaction._fromAddresses = [inp.address];
|
|
88
|
+
this._nonce = inp.nonce;
|
|
89
|
+
this.transaction.setTransaction(raw);
|
|
90
|
+
return this;
|
|
91
|
+
}
|
|
92
|
+
// For parity with Avalanche builder interfaces; always returns true for placeholder
|
|
93
|
+
//TODO: WIN-6322
|
|
94
|
+
static verifyTxType(_tx) {
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
verifyTxType(_tx) {
|
|
98
|
+
return ExportInCTxBuilder.verifyTxType(_tx);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Build the export in C-chain transaction
|
|
102
|
+
* @protected
|
|
103
|
+
*/
|
|
104
|
+
buildFlareTransaction() {
|
|
105
|
+
if (this.transaction.hasCredentials)
|
|
106
|
+
return; // placeholder: credentials not yet implemented
|
|
107
|
+
if (this._amount === undefined)
|
|
108
|
+
throw new Error('amount is required');
|
|
109
|
+
if (this.transaction._fromAddresses.length !== 1)
|
|
110
|
+
throw new Error('sender is one and required');
|
|
111
|
+
if (this.transaction._to.length === 0)
|
|
112
|
+
throw new Error('to is required');
|
|
113
|
+
if (!this.transaction._fee.feeRate)
|
|
114
|
+
throw new Error('fee rate is required');
|
|
115
|
+
if (this._nonce === undefined)
|
|
116
|
+
throw new Error('nonce is required');
|
|
117
|
+
// Compose placeholder unsigned tx shape
|
|
118
|
+
const feeRate = BigInt(this.transaction._fee.feeRate);
|
|
119
|
+
const fixed = this.fixedFee;
|
|
120
|
+
const totalFee = feeRate + fixed;
|
|
121
|
+
const input = {
|
|
122
|
+
address: this.transaction._fromAddresses[0],
|
|
123
|
+
amount: this._amount + totalFee,
|
|
124
|
+
assetId: this.transaction._assetId,
|
|
125
|
+
nonce: this._nonce,
|
|
126
|
+
};
|
|
127
|
+
const output = {
|
|
128
|
+
addresses: this.transaction._to,
|
|
129
|
+
amount: this._amount,
|
|
130
|
+
assetId: this.transaction._assetId,
|
|
131
|
+
};
|
|
132
|
+
const unsigned = {
|
|
133
|
+
networkId: this.transaction._networkID,
|
|
134
|
+
sourceBlockchainId: this.transaction._blockchainID,
|
|
135
|
+
destinationBlockchainId: this._externalChainId || Buffer.alloc(0),
|
|
136
|
+
inputs: [input],
|
|
137
|
+
outputs: [output],
|
|
138
|
+
};
|
|
139
|
+
const signed = { unsignedTx: unsigned, credentials: [] };
|
|
140
|
+
this.transaction._fee.fee = totalFee.toString();
|
|
141
|
+
this.transaction._fee.size = 1;
|
|
142
|
+
this.transaction.setTransaction(signed);
|
|
143
|
+
}
|
|
144
|
+
/** @inheritdoc */
|
|
145
|
+
fromImplementation(raw) {
|
|
146
|
+
if (typeof raw === 'string') {
|
|
147
|
+
// Future: parse hex or serialized form. For now treat as opaque raw tx.
|
|
148
|
+
this.transaction.setTransaction(raw);
|
|
149
|
+
return this.transaction;
|
|
150
|
+
}
|
|
151
|
+
return this.initBuilder(raw).transaction;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Check the amount is positive.
|
|
155
|
+
* @param amount
|
|
156
|
+
*/
|
|
157
|
+
validateNonce(nonce) {
|
|
158
|
+
if (nonce < 0n) {
|
|
159
|
+
throw new sdk_core_1.BuildTransactionError('Nonce must be greater or equal than 0');
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
exports.ExportInCTxBuilder = ExportInCTxBuilder;
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0SW5DVHhCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9leHBvcnRJbkNUeEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQThFO0FBRTlFLCtFQUE0RTtBQWdDNUUsTUFBYSxrQkFBbUIsU0FBUSx5REFBMkI7SUFJakUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLE1BQWlCO1FBQ3JCLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxNQUFnQztRQUNyQyxNQUFNLENBQUMsR0FBRyxPQUFPLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFDakIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxLQUErQjtRQUNuQyxNQUFNLENBQUMsR0FBRyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDaEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEVBQUUsQ0FBQyxVQUE2QjtRQUM5QixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FB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TSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELGtCQUFrQjtJQUNSLGtCQUFrQixDQUFDLEdBQThCO1FBQ3pELElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDNUIsd0VBQXdFO1lBQ3hFLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsYUFBYSxDQUFDLEtBQWE7UUFDekIsSUFBSSxLQUFLLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksZ0NBQXFCLENBQUMsdUNBQXVDLENBQUMsQ0FBQztRQUMzRSxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBcktELGdEQXFLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgQXRvbWljSW5DVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi9hdG9taWNJbkNUcmFuc2FjdGlvbkJ1aWxkZXInO1xuXG4vLyBMaWdodHdlaWdodCBpbnRlcmZhY2UgcGxhY2Vob2xkZXJzIHJlcGxhY2luZyBBdmFsYW5jaGUgU0RLIHRyYW5zYWN0aW9uIHNoYXBlc1xuaW50ZXJmYWNlIEZsYXJlRXhwb3J0SW5wdXRTaGFwZSB7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgYW1vdW50OiBiaWdpbnQ7IC8vIGluY2x1ZGVzIGV4cG9ydGVkIGFtb3VudCArIGZlZVxuICBhc3NldElkOiBCdWZmZXI7XG4gIG5vbmNlOiBiaWdpbnQ7XG59XG5cbmludGVyZmFjZSBGbGFyZUV4cG9ydE91dHB1dFNoYXBlIHtcbiAgYWRkcmVzc2VzOiBzdHJpbmdbXTsgLy8gZGVzdGluYXRpb24gUC1jaGFpbiBhZGRyZXNzZXNcbiAgYW1vdW50OiBiaWdpbnQ7IC8vIGV4cG9ydGVkIGFtb3VudFxuICBhc3NldElkOiBCdWZmZXI7XG59XG5cbmludGVyZmFjZSBGbGFyZVVuc2lnbmVkRXhwb3J0VHgge1xuICBuZXR3b3JrSWQ6IG51bWJlcjtcbiAgc291cmNlQmxvY2tjaGFpbklkOiBCdWZmZXI7IC8vIEMtY2hhaW4gaWRcbiAgZGVzdGluYXRpb25CbG9ja2NoYWluSWQ6IEJ1ZmZlcjsgLy8gUC1jaGFpbiBpZFxuICBpbnB1dHM6IEZsYXJlRXhwb3J0SW5wdXRTaGFwZVtdO1xuICBvdXRwdXRzOiBGbGFyZUV4cG9ydE91dHB1dFNoYXBlW107XG59XG5cbmludGVyZmFjZSBGbGFyZVNpZ25lZEV4cG9ydFR4IHtcbiAgdW5zaWduZWRUeDogRmxhcmVVbnNpZ25lZEV4cG9ydFR4O1xuICAvLyBjcmVkZW50aWFscyBwbGFjZWhvbGRlclxuICBjcmVkZW50aWFsczogdW5rbm93bltdO1xufVxuXG50eXBlIFJhd0ZsYXJlRXhwb3J0VHggPSBGbGFyZVNpZ25lZEV4cG9ydFR4OyAvLyBmb3Igbm93IHRyZWF0IHRoZW0gdGhlIHNhbWVcblxuZXhwb3J0IGNsYXNzIEV4cG9ydEluQ1R4QnVpbGRlciBleHRlbmRzIEF0b21pY0luQ1RyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByaXZhdGUgX2Ftb3VudD86IGJpZ2ludDtcbiAgcHJpdmF0ZSBfbm9uY2U/OiBiaWdpbnQ7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFV0eG9zIGFyZSBub3QgcmVxdWlyZWQgaW4gRXhwb3J0IFR4IGluIEMtQ2hhaW4uXG4gICAqIE92ZXJyaWRlIHV0eG9zIHRvIHByZXZlbnQgdXNlZCBieSB0aHJvd2luZyBhIGVycm9yLlxuICAgKlxuICAgKiBAcGFyYW0ge0RlY29kZWRVdHhvT2JqW119IHZhbHVlIGlnbm9yZWRcbiAgICovXG4gIHV0eG9zKF92YWx1ZTogdW5rbm93bltdKTogdGhpcyB7XG4gICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcigndXR4b3MgYXJlIG5vdCByZXF1aXJlZCBpbiBFeHBvcnQgVHggaW4gQy1DaGFpbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFtb3VudCBpcyBhIGxvbmcgdGhhdCBzcGVjaWZpZXMgdGhlIHF1YW50aXR5IG9mIHRoZSBhc3NldCB0aGF0IHRoaXMgb3V0cHV0IG93bnMuIE11c3QgYmUgcG9zaXRpdmUuXG4gICAqIFRoZSB0cmFuc2FjdGlvbiBvdXRwdXQgYW1vdW50IGFkZCBhIGZpeGVkIGZlZSB0aGF0IHdpbGwgYmUgcGFpZCB1cG9uIGltcG9ydC5cbiAgICpcbiAgICogQHBhcmFtIHtCTiB8IHN0cmluZ30gYW1vdW50IFRoZSB3aXRoZHJhd2FsIGFtb3VudFxuICAgKi9cbiAgYW1vdW50KGFtb3VudDogYmlnaW50IHwgbnVtYmVyIHwgc3RyaW5nKTogdGhpcyB7XG4gICAgY29uc3QgbiA9IHR5cGVvZiBhbW91bnQgPT09ICdiaWdpbnQnID8gYW1vdW50IDogQmlnSW50KGFtb3VudCk7XG4gICAgdGhpcy52YWxpZGF0ZUFtb3VudChuKTtcbiAgICB0aGlzLl9hbW91bnQgPSBuO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgbm9uY2Ugb2YgQy1DaGFpbiBzZW5kZXIgYWRkcmVzc1xuICAgKlxuICAgKiBAcGFyYW0ge251bWJlciB8IHN0cmluZ30gbm9uY2UgLSBudW1iZXIgdGhhdCBjYW4gYmUgb25seSB1c2VkIG9uY2VcbiAgICovXG4gIG5vbmNlKG5vbmNlOiBiaWdpbnQgfCBudW1iZXIgfCBzdHJpbmcpOiB0aGlzIHtcbiAgICBjb25zdCBuID0gdHlwZW9mIG5vbmNlID09PSAnYmlnaW50JyA/IG5vbmNlIDogQmlnSW50KG5vbmNlKTtcbiAgICB0aGlzLnZhbGlkYXRlTm9uY2Uobik7XG4gICAgdGhpcy5fbm9uY2UgPSBuO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4cG9ydCB0eCB0YXJnZXQgUCB3YWxsZXQuXG4gICAqXG4gICAqIEBwYXJhbSBwQWRkcmVzc2VzXG4gICAqL1xuICB0byhwQWRkcmVzc2VzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHRoaXMge1xuICAgIGNvbnN0IHB1YktleXMgPSBBcnJheS5pc0FycmF5KHBBZGRyZXNzZXMpID8gcEFkZHJlc3NlcyA6IHBBZGRyZXNzZXMuc3BsaXQoJ34nKTtcbiAgICAvLyBGb3Igbm93IGVuc3VyZSB0aGV5IGFyZSBzdG9yZWQgYXMgYmVjaDMyIC8gc3RyaW5nIGFkZHJlc3NlcyBkaXJlY3RseVxuICAgIHRoaXMudHJhbnNhY3Rpb24uX3RvID0gcHViS2V5cy5tYXAoKGEpID0+IGEudG9TdHJpbmcoKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuRXhwb3J0O1xuICB9XG5cbiAgaW5pdEJ1aWxkZXIocmF3OiBSYXdGbGFyZUV4cG9ydFR4KTogdGhpcyB7XG4gICAgLy8gQmFzaWMgc2hhcGUgdmFsaWRhdGlvblxuICAgIGNvbnN0IHVuc2lnbmVkID0gcmF3LnVuc2lnbmVkVHg7XG4gICAgaWYgKHVuc2lnbmVkLm5ldHdvcmtJZCAhPT0gdGhpcy50cmFuc2FjdGlvbi5fbmV0d29ya0lEKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05ldHdvcmsgSUQgbWlzbWF0Y2gnKTtcbiAgICB9XG4gICAgaWYgKCF1bnNpZ25lZC5zb3VyY2VCbG9ja2NoYWluSWQuZXF1YWxzKHRoaXMudHJhbnNhY3Rpb24uX2Jsb2NrY2hhaW5JRCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQmxvY2tjaGFpbiBJRCBtaXNtYXRjaCcpO1xuICAgIH1cbiAgICBpZiAodW5zaWduZWQub3V0cHV0cy5sZW5ndGggIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1RyYW5zYWN0aW9uIGNhbiBoYXZlIG9uZSBvdXRwdXQnKTtcbiAgICB9XG4gICAgaWYgKHVuc2lnbmVkLmlucHV0cy5sZW5ndGggIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1RyYW5zYWN0aW9uIGNhbiBoYXZlIG9uZSBpbnB1dCcpO1xuICAgIH1cbiAgICBjb25zdCBvdXQgPSB1bnNpZ25lZC5vdXRwdXRzWzBdO1xuICAgIGNvbnN0IGlucCA9IHVuc2lnbmVkLmlucHV0c1swXTtcbiAgICBpZiAoIW91dC5hc3NldElkLmVxdWFscyh0aGlzLnRyYW5zYWN0aW9uLl9hc3NldElkKSB8fCAhaW5wLmFzc2V0SWQuZXF1YWxzKHRoaXMudHJhbnNhY3Rpb24uX2Fzc2V0SWQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Fzc2V0SUQgbWlzbWF0Y2gnKTtcbiAgICB9XG4gICAgdGhpcy50cmFuc2FjdGlvbi5fdG8gPSBvdXQuYWRkcmVzc2VzO1xuICAgIHRoaXMuX2Ftb3VudCA9IG91dC5hbW91bnQ7XG4gICAgY29uc3QgZmVlID0gaW5wLmFtb3VudCAtIG91dC5hbW91bnQ7XG4gICAgaWYgKGZlZSA8IDBuKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdDb21wdXRlZCBmZWUgaXMgbmVnYXRpdmUnKTtcbiAgICB9XG4gICAgY29uc3QgZml4ZWQgPSB0aGlzLmZpeGVkRmVlO1xuICAgIGNvbnN0IGZlZVJhdGUgPSBmZWUgLSBmaXhlZDtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLl9mZWUuZmVlUmF0ZSA9IGZlZVJhdGUudG9TdHJpbmcoKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLl9mZWUuZmVlID0gZmVlLnRvU3RyaW5nKCk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5fZmVlLnNpemUgPSAxO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uX2Zyb21BZGRyZXNzZXMgPSBbaW5wLmFkZHJlc3NdO1xuICAgIHRoaXMuX25vbmNlID0gaW5wLm5vbmNlO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0VHJhbnNhY3Rpb24ocmF3KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIEZvciBwYXJpdHkgd2l0aCBBdmFsYW5jaGUgYnVpbGRlciBpbnRlcmZhY2VzOyBhbHdheXMgcmV0dXJucyB0cnVlIGZvciBwbGFjZWhvbGRlclxuICAvL1RPRE86IFdJTi02MzIyXG4gIHN0YXRpYyB2ZXJpZnlUeFR5cGUoX3R4OiB1bmtub3duKTogX3R4IGlzIEZsYXJlVW5zaWduZWRFeHBvcnRUeCB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB2ZXJpZnlUeFR5cGUoX3R4OiB1bmtub3duKTogX3R4IGlzIEZsYXJlVW5zaWduZWRFeHBvcnRUeCB7XG4gICAgcmV0dXJuIEV4cG9ydEluQ1R4QnVpbGRlci52ZXJpZnlUeFR5cGUoX3R4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCB0aGUgZXhwb3J0IGluIEMtY2hhaW4gdHJhbnNhY3Rpb25cbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkRmxhcmVUcmFuc2FjdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbi5oYXNDcmVkZW50aWFscykgcmV0dXJuOyAvLyBwbGFjZWhvbGRlcjogY3JlZGVudGlhbHMgbm90IHlldCBpbXBsZW1lbnRlZFxuICAgIGlmICh0aGlzLl9hbW91bnQgPT09IHVuZGVmaW5lZCkgdGhyb3cgbmV3IEVycm9yKCdhbW91bnQgaXMgcmVxdWlyZWQnKTtcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbi5fZnJvbUFkZHJlc3Nlcy5sZW5ndGggIT09IDEpIHRocm93IG5ldyBFcnJvcignc2VuZGVyIGlzIG9uZSBhbmQgcmVxdWlyZWQnKTtcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbi5fdG8ubGVuZ3RoID09PSAwKSB0aHJvdyBuZXcgRXJyb3IoJ3RvIGlzIHJlcXVpcmVkJyk7XG4gICAgaWYgKCF0aGlzLnRyYW5zYWN0aW9uLl9mZWUuZmVlUmF0ZSkgdGhyb3cgbmV3IEVycm9yKCdmZWUgcmF0ZSBpcyByZXF1aXJlZCcpO1xuICAgIGlmICh0aGlzLl9ub25jZSA9PT0gdW5kZWZpbmVkKSB0aHJvdyBuZXcgRXJyb3IoJ25vbmNlIGlzIHJlcXVpcmVkJyk7XG5cbiAgICAvLyBDb21wb3NlIHBsYWNlaG9sZGVyIHVuc2lnbmVkIHR4IHNoYXBlXG4gICAgY29uc3QgZmVlUmF0ZSA9IEJpZ0ludCh0aGlzLnRyYW5zYWN0aW9uLl9mZWUuZmVlUmF0ZSk7XG4gICAgY29uc3QgZml4ZWQgPSB0aGlzLmZpeGVkRmVlO1xuICAgIGNvbnN0IHRvdGFsRmVlID0gZmVlUmF0ZSArIGZpeGVkO1xuICAgIGNvbnN0IGlucHV0OiBGbGFyZUV4cG9ydElucHV0U2hhcGUgPSB7XG4gICAgICBhZGRyZXNzOiB0aGlzLnRyYW5zYWN0aW9uLl9mcm9tQWRkcmVzc2VzWzBdLFxuICAgICAgYW1vdW50OiB0aGlzLl9hbW91bnQgKyB0b3RhbEZlZSxcbiAgICAgIGFzc2V0SWQ6IHRoaXMudHJhbnNhY3Rpb24uX2Fzc2V0SWQsXG4gICAgICBub25jZTogdGhpcy5fbm9uY2UsXG4gICAgfTtcbiAgICBjb25zdCBvdXRwdXQ6IEZsYXJlRXhwb3J0T3V0cHV0U2hhcGUgPSB7XG4gICAgICBhZGRyZXNzZXM6IHRoaXMudHJhbnNhY3Rpb24uX3RvLFxuICAgICAgYW1vdW50OiB0aGlzLl9hbW91bnQsXG4gICAgICBhc3NldElkOiB0aGlzLnRyYW5zYWN0aW9uLl9hc3NldElkLFxuICAgIH07XG4gICAgY29uc3QgdW5zaWduZWQ6IEZsYXJlVW5zaWduZWRFeHBvcnRUeCA9IHtcbiAgICAgIG5ldHdvcmtJZDogdGhpcy50cmFuc2FjdGlvbi5fbmV0d29ya0lELFxuICAgICAgc291cmNlQmxvY2tjaGFpbklkOiB0aGlzLnRyYW5zYWN0aW9uLl9ibG9ja2NoYWluSUQsXG4gICAgICBkZXN0aW5hdGlvbkJsb2NrY2hhaW5JZDogdGhpcy5fZXh0ZXJuYWxDaGFpbklkIHx8IEJ1ZmZlci5hbGxvYygwKSxcbiAgICAgIGlucHV0czogW2lucHV0XSxcbiAgICAgIG91dHB1dHM6IFtvdXRwdXRdLFxuICAgIH07XG4gICAgY29uc3Qgc2lnbmVkOiBGbGFyZVNpZ25lZEV4cG9ydFR4ID0geyB1bnNpZ25lZFR4OiB1bnNpZ25lZCwgY3JlZGVudGlhbHM6IFtdIH07XG4gICAgdGhpcy50cmFuc2FjdGlvbi5fZmVlLmZlZSA9IHRvdGFsRmVlLnRvU3RyaW5nKCk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5fZmVlLnNpemUgPSAxO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0VHJhbnNhY3Rpb24oc2lnbmVkKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhdzogc3RyaW5nIHwgUmF3RmxhcmVFeHBvcnRUeCk6IHsgX3R4PzogdW5rbm93biB9IHtcbiAgICBpZiAodHlwZW9mIHJhdyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIEZ1dHVyZTogcGFyc2UgaGV4IG9yIHNlcmlhbGl6ZWQgZm9ybS4gRm9yIG5vdyB0cmVhdCBhcyBvcGFxdWUgcmF3IHR4LlxuICAgICAgdGhpcy50cmFuc2FjdGlvbi5zZXRUcmFuc2FjdGlvbihyYXcpO1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmluaXRCdWlsZGVyKHJhdykudHJhbnNhY3Rpb247XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgdGhlIGFtb3VudCBpcyBwb3NpdGl2ZS5cbiAgICogQHBhcmFtIGFtb3VudFxuICAgKi9cbiAgdmFsaWRhdGVOb25jZShub25jZTogYmlnaW50KTogdm9pZCB7XG4gICAgaWYgKG5vbmNlIDwgMG4pIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ05vbmNlIG11c3QgYmUgZ3JlYXRlciBvciBlcXVhbCB0aGFuIDAnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
2
2
|
import { TransactionType } from '@bitgo-beta/sdk-core';
|
|
3
3
|
import { AtomicTransactionBuilder } from './atomicTransactionBuilder';
|
|
4
|
-
export declare class
|
|
4
|
+
export declare class ExportInPTxBuilder extends AtomicTransactionBuilder {
|
|
5
5
|
private _amount;
|
|
6
6
|
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
7
7
|
protected get transactionType(): TransactionType;
|
|
@@ -27,4 +27,4 @@ export declare class ExportTxBuilder extends AtomicTransactionBuilder {
|
|
|
27
27
|
*/
|
|
28
28
|
protected exportedOutputs(): unknown[];
|
|
29
29
|
}
|
|
30
|
-
//# sourceMappingURL=
|
|
30
|
+
//# sourceMappingURL=exportInPTxBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exportInPTxBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/exportInPTxBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,qBAAa,kBAAmB,SAAQ,wBAAwB;IAC9D,OAAO,CAAC,OAAO,CAAM;gBAET,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI;IAO7C,kBAAkB;IAElB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAM/B,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAI9C,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAIvC;;;OAGG;IAEH,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAIvC;;;;OAIG;IACH,SAAS,CAAC,eAAe,IAAI,OAAO,EAAE;CAGvC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExportInPTxBuilder = void 0;
|
|
4
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
5
|
+
const atomicTransactionBuilder_1 = require("./atomicTransactionBuilder");
|
|
6
|
+
class ExportInPTxBuilder extends atomicTransactionBuilder_1.AtomicTransactionBuilder {
|
|
7
|
+
constructor(_coinConfig) {
|
|
8
|
+
super(_coinConfig);
|
|
9
|
+
this._amount = 0n;
|
|
10
|
+
}
|
|
11
|
+
get transactionType() {
|
|
12
|
+
return sdk_core_1.TransactionType.Export;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Amount is a long that specifies the quantity of the asset that this output owns. Must be positive.
|
|
16
|
+
*
|
|
17
|
+
* @param {BN | string} amount The withdrawal amount
|
|
18
|
+
*/
|
|
19
|
+
amount(value) {
|
|
20
|
+
const v = typeof value === 'bigint' ? value : BigInt(value);
|
|
21
|
+
this.validateAmount(v);
|
|
22
|
+
this._amount = v;
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
25
|
+
/** @inheritdoc */
|
|
26
|
+
// Placeholder: parsing existing ExportTx not yet supported on Flare P-chain
|
|
27
|
+
initBuilder(_tx) {
|
|
28
|
+
super.initBuilder(_tx);
|
|
29
|
+
return this;
|
|
30
|
+
}
|
|
31
|
+
// Type verification not yet implemented for Flare P-chain
|
|
32
|
+
static verifyTxType(_baseTx) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
verifyTxType(_baseTx) {
|
|
36
|
+
return ExportInPTxBuilder.verifyTxType(_baseTx);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Create the internal transaction.
|
|
40
|
+
* @protected
|
|
41
|
+
*/
|
|
42
|
+
// Build not implemented yet
|
|
43
|
+
buildFlareTransaction() {
|
|
44
|
+
throw new Error('Flare P-chain export transaction build not implemented');
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Create the ExportedOut where the recipient address are the sender.
|
|
48
|
+
* Later a importTx should complete the operations signing with the same keys.
|
|
49
|
+
* @protected
|
|
50
|
+
*/
|
|
51
|
+
exportedOutputs() {
|
|
52
|
+
return [];
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.ExportInPTxBuilder = ExportInPTxBuilder;
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0SW5QVHhCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9leHBvcnRJblBUeEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsbURBQXVEO0FBQ3ZELHlFQUFzRTtBQUV0RSxNQUFhLGtCQUFtQixTQUFRLG1EQUF3QjtJQUc5RCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUhiLFlBQU8sR0FBRyxFQUFFLENBQUM7SUFJckIsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLEtBQStCO1FBQ3BDLE1BQU0sQ0FBQyxHQUFHLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUNqQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsNEVBQTRFO0lBQzVFLFdBQVcsQ0FBQyxHQUFZO1FBQ3RCLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsMERBQTBEO0lBQzFELE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBZ0I7UUFDbEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQWdCO1FBQzNCLE9BQU8sa0JBQWtCLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7O09BR0c7SUFDSCw0QkFBNEI7SUFDbEIscUJBQXFCO1FBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLGVBQWU7UUFDdkIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0NBQ0Y7QUF4REQsZ0RBd0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQXRvbWljVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi9hdG9taWNUcmFuc2FjdGlvbkJ1aWxkZXInO1xuXG5leHBvcnQgY2xhc3MgRXhwb3J0SW5QVHhCdWlsZGVyIGV4dGVuZHMgQXRvbWljVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJpdmF0ZSBfYW1vdW50ID0gMG47XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLkV4cG9ydDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbW91bnQgaXMgYSBsb25nIHRoYXQgc3BlY2lmaWVzIHRoZSBxdWFudGl0eSBvZiB0aGUgYXNzZXQgdGhhdCB0aGlzIG91dHB1dCBvd25zLiBNdXN0IGJlIHBvc2l0aXZlLlxuICAgKlxuICAgKiBAcGFyYW0ge0JOIHwgc3RyaW5nfSBhbW91bnQgVGhlIHdpdGhkcmF3YWwgYW1vdW50XG4gICAqL1xuICBhbW91bnQodmFsdWU6IGJpZ2ludCB8IHN0cmluZyB8IG51bWJlcik6IHRoaXMge1xuICAgIGNvbnN0IHYgPSB0eXBlb2YgdmFsdWUgPT09ICdiaWdpbnQnID8gdmFsdWUgOiBCaWdJbnQodmFsdWUpO1xuICAgIHRoaXMudmFsaWRhdGVBbW91bnQodik7XG4gICAgdGhpcy5fYW1vdW50ID0gdjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICAvLyBQbGFjZWhvbGRlcjogcGFyc2luZyBleGlzdGluZyBFeHBvcnRUeCBub3QgeWV0IHN1cHBvcnRlZCBvbiBGbGFyZSBQLWNoYWluXG4gIGluaXRCdWlsZGVyKF90eDogdW5rbm93bik6IHRoaXMge1xuICAgIHN1cGVyLmluaXRCdWlsZGVyKF90eCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyBUeXBlIHZlcmlmaWNhdGlvbiBub3QgeWV0IGltcGxlbWVudGVkIGZvciBGbGFyZSBQLWNoYWluXG4gIHN0YXRpYyB2ZXJpZnlUeFR5cGUoX2Jhc2VUeDogdW5rbm93bik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZlcmlmeVR4VHlwZShfYmFzZVR4OiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEV4cG9ydEluUFR4QnVpbGRlci52ZXJpZnlUeFR5cGUoX2Jhc2VUeCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHRoZSBpbnRlcm5hbCB0cmFuc2FjdGlvbi5cbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgLy8gQnVpbGQgbm90IGltcGxlbWVudGVkIHlldFxuICBwcm90ZWN0ZWQgYnVpbGRGbGFyZVRyYW5zYWN0aW9uKCk6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcignRmxhcmUgUC1jaGFpbiBleHBvcnQgdHJhbnNhY3Rpb24gYnVpbGQgbm90IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHRoZSBFeHBvcnRlZE91dCB3aGVyZSB0aGUgcmVjaXBpZW50IGFkZHJlc3MgYXJlIHRoZSBzZW5kZXIuXG4gICAqIExhdGVyIGEgaW1wb3J0VHggc2hvdWxkIGNvbXBsZXRlIHRoZSBvcGVyYXRpb25zIHNpZ25pbmcgd2l0aCB0aGUgc2FtZSBrZXlzLlxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgZXhwb3J0ZWRPdXRwdXRzKCk6IHVua25vd25bXSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG59XG4iXX0=
|