@bitgo-beta/sdk-coin-avaxp 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/.eslintignore +5 -0
  2. package/.eslintrc.json +7 -0
  3. package/.mocharc.yml +8 -0
  4. package/CHANGELOG.md +168 -0
  5. package/LICENSE +191 -0
  6. package/README.md +39 -0
  7. package/dist/src/avaxp.d.ts +69 -0
  8. package/dist/src/avaxp.d.ts.map +1 -0
  9. package/dist/src/avaxp.js +248 -0
  10. package/dist/src/iface.d.ts +43 -0
  11. package/dist/src/iface.d.ts.map +1 -0
  12. package/dist/src/iface.js +3 -0
  13. package/dist/src/index.d.ts +5 -0
  14. package/dist/src/index.d.ts.map +1 -0
  15. package/dist/src/index.js +30 -0
  16. package/dist/src/lib/atomicTransactionBuilder.d.ts +33 -0
  17. package/dist/src/lib/atomicTransactionBuilder.d.ts.map +1 -0
  18. package/dist/src/lib/atomicTransactionBuilder.js +122 -0
  19. package/dist/src/lib/delegatorTxBuilder.d.ts +96 -0
  20. package/dist/src/lib/delegatorTxBuilder.d.ts.map +1 -0
  21. package/dist/src/lib/delegatorTxBuilder.js +287 -0
  22. package/dist/src/lib/errors.d.ts +8 -0
  23. package/dist/src/lib/errors.d.ts.map +1 -0
  24. package/dist/src/lib/errors.js +19 -0
  25. package/dist/src/lib/exportTxBuilder.d.ts +34 -0
  26. package/dist/src/lib/exportTxBuilder.d.ts.map +1 -0
  27. package/dist/src/lib/exportTxBuilder.js +88 -0
  28. package/dist/src/lib/iface.d.ts +58 -0
  29. package/dist/src/lib/iface.d.ts.map +1 -0
  30. package/dist/src/lib/iface.js +18 -0
  31. package/dist/src/lib/importInCTxBuilder.d.ts +48 -0
  32. package/dist/src/lib/importInCTxBuilder.d.ts.map +1 -0
  33. package/dist/src/lib/importInCTxBuilder.js +152 -0
  34. package/dist/src/lib/importTxBuilder.d.ts +18 -0
  35. package/dist/src/lib/importTxBuilder.d.ts.map +1 -0
  36. package/dist/src/lib/importTxBuilder.js +67 -0
  37. package/dist/src/lib/index.d.ts +9 -0
  38. package/dist/src/lib/index.d.ts.map +1 -0
  39. package/dist/src/lib/index.js +29 -0
  40. package/dist/src/lib/keyPair.d.ts +59 -0
  41. package/dist/src/lib/keyPair.d.ts.map +1 -0
  42. package/dist/src/lib/keyPair.js +151 -0
  43. package/dist/src/lib/transaction.d.ts +81 -0
  44. package/dist/src/lib/transaction.d.ts.map +1 -0
  45. package/dist/src/lib/transaction.js +277 -0
  46. package/dist/src/lib/transactionBuilder.d.ts +122 -0
  47. package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
  48. package/dist/src/lib/transactionBuilder.js +224 -0
  49. package/dist/src/lib/transactionBuilderFactory.d.ts +42 -0
  50. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -0
  51. package/dist/src/lib/transactionBuilderFactory.js +107 -0
  52. package/dist/src/lib/transferBuilder.d.ts +18 -0
  53. package/dist/src/lib/transferBuilder.d.ts.map +1 -0
  54. package/dist/src/lib/transferBuilder.js +31 -0
  55. package/dist/src/lib/utils.d.ts +152 -0
  56. package/dist/src/lib/utils.d.ts.map +1 -0
  57. package/dist/src/lib/utils.js +300 -0
  58. package/dist/src/lib/utxoEngine.d.ts +45 -0
  59. package/dist/src/lib/utxoEngine.d.ts.map +1 -0
  60. package/dist/src/lib/utxoEngine.js +89 -0
  61. package/dist/src/lib/validatorTxBuilder.d.ts +37 -0
  62. package/dist/src/lib/validatorTxBuilder.d.ts.map +1 -0
  63. package/dist/src/lib/validatorTxBuilder.js +69 -0
  64. package/dist/src/tavaxp.d.ts +9 -0
  65. package/dist/src/tavaxp.d.ts.map +1 -0
  66. package/dist/src/tavaxp.js +14 -0
  67. package/dist/test/resources/avaxp.d.ts +178 -0
  68. package/dist/test/resources/avaxp.d.ts.map +1 -0
  69. package/dist/test/resources/avaxp.js +953 -0
  70. package/dist/test/resources/errors.d.ts +18 -0
  71. package/dist/test/resources/errors.d.ts.map +1 -0
  72. package/dist/test/resources/errors.js +21 -0
  73. package/dist/test/resources/keychains.d.ts +18 -0
  74. package/dist/test/resources/keychains.d.ts.map +1 -0
  75. package/dist/test/resources/keychains.js +30 -0
  76. package/dist/test/resources/tx/importC.d.ts +29 -0
  77. package/dist/test/resources/tx/importC.d.ts.map +1 -0
  78. package/dist/test/resources/tx/importC.js +42 -0
  79. package/dist/test/resources/tx/importP.d.ts +29 -0
  80. package/dist/test/resources/tx/importP.d.ts.map +1 -0
  81. package/dist/test/resources/tx/importP.js +42 -0
  82. package/dist/test/unit/avaxp.d.ts +2 -0
  83. package/dist/test/unit/avaxp.d.ts.map +1 -0
  84. package/dist/test/unit/avaxp.js +553 -0
  85. package/dist/test/unit/lib/exportP2CTxBuilder.d.ts +2 -0
  86. package/dist/test/unit/lib/exportP2CTxBuilder.d.ts.map +1 -0
  87. package/dist/test/unit/lib/exportP2CTxBuilder.js +173 -0
  88. package/dist/test/unit/lib/importC2PTxBuilder.d.ts +2 -0
  89. package/dist/test/unit/lib/importC2PTxBuilder.d.ts.map +1 -0
  90. package/dist/test/unit/lib/importC2PTxBuilder.js +85 -0
  91. package/dist/test/unit/lib/importP2CTxBuilder.d.ts +2 -0
  92. package/dist/test/unit/lib/importP2CTxBuilder.d.ts.map +1 -0
  93. package/dist/test/unit/lib/importP2CTxBuilder.js +125 -0
  94. package/dist/test/unit/lib/keyPair.d.ts +2 -0
  95. package/dist/test/unit/lib/keyPair.d.ts.map +1 -0
  96. package/dist/test/unit/lib/keyPair.js +172 -0
  97. package/dist/test/unit/lib/signFlowTestSuit.d.ts +20 -0
  98. package/dist/test/unit/lib/signFlowTestSuit.d.ts.map +1 -0
  99. package/dist/test/unit/lib/signFlowTestSuit.js +80 -0
  100. package/dist/test/unit/lib/transactionBuilderFactory.d.ts +2 -0
  101. package/dist/test/unit/lib/transactionBuilderFactory.d.ts.map +1 -0
  102. package/dist/test/unit/lib/transactionBuilderFactory.js +114 -0
  103. package/dist/test/unit/lib/utils.d.ts +2 -0
  104. package/dist/test/unit/lib/utils.d.ts.map +1 -0
  105. package/dist/test/unit/lib/utils.js +69 -0
  106. package/dist/test/unit/lib/utxoEngine.d.ts +2 -0
  107. package/dist/test/unit/lib/utxoEngine.d.ts.map +1 -0
  108. package/dist/test/unit/lib/utxoEngine.js +168 -0
  109. package/dist/test/unit/lib/validateTxBuilder.d.ts +2 -0
  110. package/dist/test/unit/lib/validateTxBuilder.d.ts.map +1 -0
  111. package/dist/test/unit/lib/validateTxBuilder.js +318 -0
  112. package/dist/tsconfig.tsbuildinfo +10238 -0
  113. package/package.json +62 -0
@@ -0,0 +1,58 @@
1
+ import { Entry, TransactionExplanation as BaseTransactionExplanation, TransactionType } from '@bitgo-beta/sdk-core';
2
+ import { BaseTx as PMVBaseTx, TransferableOutput, Tx as PMVTx } from 'avalanche/dist/apis/platformvm';
3
+ import { EVMBaseTx, EVMOutput, Tx as EMVTx } from 'avalanche/dist/apis/evm';
4
+ export interface TransactionExplanation extends BaseTransactionExplanation {
5
+ type: TransactionType;
6
+ rewardAddresses: string[];
7
+ inputs: Entry[];
8
+ memo?: string;
9
+ }
10
+ /**
11
+ * Method names for the transaction method. Names change based on the type of transaction e.g 'bond' for the staking transaction
12
+ */
13
+ export declare enum MethodNames {
14
+ addDelegator = 0,
15
+ addValidator = 1
16
+ }
17
+ /**
18
+ * The transaction data returned from the toJson() function of a transaction
19
+ */
20
+ export interface TxData {
21
+ id: string;
22
+ inputs: Entry[];
23
+ type: TransactionType;
24
+ fromAddresses: string[];
25
+ threshold: number;
26
+ locktime: string;
27
+ memo?: string;
28
+ signatures: string[];
29
+ outputs: Entry[];
30
+ changeOutputs: Entry[];
31
+ }
32
+ /**
33
+ * Decoded UTXO object. This is for a single utxo
34
+ *
35
+ * @param {number} outputID
36
+ * @param {string} amount Amount as a Big Number string
37
+ * @param {string} txid Transaction ID encoded as cb58
38
+ * @param {string} outputidx Output index as a string
39
+ */
40
+ export declare type DecodedUtxoObj = {
41
+ outputID: number;
42
+ amount: string;
43
+ txid: string;
44
+ outputidx: string;
45
+ threshold: number;
46
+ addresses: string[];
47
+ addressesIndex?: number[];
48
+ };
49
+ /**
50
+ * TypeId value for SECP256K1 Transfer Output
51
+ *
52
+ * {@link https://docs.avax.network/specs/platform-transaction-serialization#secp256k1-transfer-output-example }
53
+ */
54
+ export declare const SECP256K1_Transfer_Output = 7;
55
+ export declare type Tx = PMVTx | EMVTx;
56
+ export declare type BaseTx = PMVBaseTx | EVMBaseTx;
57
+ export declare type Output = TransferableOutput | EVMOutput;
58
+ //# sourceMappingURL=iface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../src/lib/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,sBAAsB,IAAI,0BAA0B,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACpH,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,kBAAkB,EAAE,EAAE,IAAI,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACtG,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,IAAI,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAE5E,MAAM,WAAW,sBAAuB,SAAQ,0BAA0B;IACxE,IAAI,EAAE,eAAe,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,oBAAY,WAAW;IACrB,YAAY,IAAA;IACZ,YAAY,IAAA;CACb;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,IAAI,EAAE,eAAe,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,KAAK,EAAE,CAAC;IACjB,aAAa,EAAE,KAAK,EAAE,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,oBAAY,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,oBAAY,EAAE,GAAG,KAAK,GAAG,KAAK,CAAC;AAC/B,oBAAY,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAC3C,oBAAY,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SECP256K1_Transfer_Output = exports.MethodNames = void 0;
4
+ /**
5
+ * Method names for the transaction method. Names change based on the type of transaction e.g 'bond' for the staking transaction
6
+ */
7
+ var MethodNames;
8
+ (function (MethodNames) {
9
+ MethodNames[MethodNames["addDelegator"] = 0] = "addDelegator";
10
+ MethodNames[MethodNames["addValidator"] = 1] = "addValidator";
11
+ })(MethodNames = exports.MethodNames || (exports.MethodNames = {}));
12
+ /**
13
+ * TypeId value for SECP256K1 Transfer Output
14
+ *
15
+ * {@link https://docs.avax.network/specs/platform-transaction-serialization#secp256k1-transfer-output-example }
16
+ */
17
+ exports.SECP256K1_Transfer_Output = 7;
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2lmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVdBOztHQUVHO0FBQ0gsSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLDZEQUFZLENBQUE7SUFDWiw2REFBWSxDQUFBO0FBQ2QsQ0FBQyxFQUhXLFdBQVcsR0FBWCxtQkFBVyxLQUFYLG1CQUFXLFFBR3RCO0FBb0NEOzs7O0dBSUc7QUFDVSxRQUFBLHlCQUF5QixHQUFHLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudHJ5LCBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIGFzIEJhc2VUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlVHggYXMgUE1WQmFzZVR4LCBUcmFuc2ZlcmFibGVPdXRwdXQsIFR4IGFzIFBNVlR4IH0gZnJvbSAnYXZhbGFuY2hlL2Rpc3QvYXBpcy9wbGF0Zm9ybXZtJztcbmltcG9ydCB7IEVWTUJhc2VUeCwgRVZNT3V0cHV0LCBUeCBhcyBFTVZUeCB9IGZyb20gJ2F2YWxhbmNoZS9kaXN0L2FwaXMvZXZtJztcblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICB0eXBlOiBUcmFuc2FjdGlvblR5cGU7XG4gIHJld2FyZEFkZHJlc3Nlczogc3RyaW5nW107XG4gIGlucHV0czogRW50cnlbXTtcbiAgbWVtbz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBNZXRob2QgbmFtZXMgZm9yIHRoZSB0cmFuc2FjdGlvbiBtZXRob2QuIE5hbWVzIGNoYW5nZSBiYXNlZCBvbiB0aGUgdHlwZSBvZiB0cmFuc2FjdGlvbiBlLmcgJ2JvbmQnIGZvciB0aGUgc3Rha2luZyB0cmFuc2FjdGlvblxuICovXG5leHBvcnQgZW51bSBNZXRob2ROYW1lcyB7XG4gIGFkZERlbGVnYXRvcixcbiAgYWRkVmFsaWRhdG9yLFxufVxuXG4vKipcbiAqIFRoZSB0cmFuc2FjdGlvbiBkYXRhIHJldHVybmVkIGZyb20gdGhlIHRvSnNvbigpIGZ1bmN0aW9uIG9mIGEgdHJhbnNhY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUeERhdGEge1xuICBpZDogc3RyaW5nO1xuICBpbnB1dHM6IEVudHJ5W107XG4gIHR5cGU6IFRyYW5zYWN0aW9uVHlwZTtcbiAgZnJvbUFkZHJlc3Nlczogc3RyaW5nW107XG4gIHRocmVzaG9sZDogbnVtYmVyO1xuICBsb2NrdGltZTogc3RyaW5nO1xuICBtZW1vPzogc3RyaW5nO1xuICBzaWduYXR1cmVzOiBzdHJpbmdbXTtcbiAgb3V0cHV0czogRW50cnlbXTtcbiAgY2hhbmdlT3V0cHV0czogRW50cnlbXTtcbn1cblxuLyoqXG4gKiBEZWNvZGVkIFVUWE8gb2JqZWN0LiBUaGlzIGlzIGZvciBhIHNpbmdsZSB1dHhvXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IG91dHB1dElEXG4gKiBAcGFyYW0ge3N0cmluZ30gYW1vdW50IEFtb3VudCBhcyBhIEJpZyBOdW1iZXIgc3RyaW5nXG4gKiBAcGFyYW0ge3N0cmluZ30gdHhpZCBUcmFuc2FjdGlvbiBJRCBlbmNvZGVkIGFzIGNiNThcbiAqIEBwYXJhbSB7c3RyaW5nfSBvdXRwdXRpZHggT3V0cHV0IGluZGV4IGFzIGEgc3RyaW5nXG4gKi9cbmV4cG9ydCB0eXBlIERlY29kZWRVdHhvT2JqID0ge1xuICBvdXRwdXRJRDogbnVtYmVyO1xuICBhbW91bnQ6IHN0cmluZztcbiAgdHhpZDogc3RyaW5nO1xuICBvdXRwdXRpZHg6IHN0cmluZztcbiAgdGhyZXNob2xkOiBudW1iZXI7XG4gIGFkZHJlc3Nlczogc3RyaW5nW107XG4gIGFkZHJlc3Nlc0luZGV4PzogbnVtYmVyW107XG59O1xuXG4vKipcbiAqIFR5cGVJZCB2YWx1ZSBmb3IgU0VDUDI1NksxIFRyYW5zZmVyIE91dHB1dFxuICpcbiAqIHtAbGluayBodHRwczovL2RvY3MuYXZheC5uZXR3b3JrL3NwZWNzL3BsYXRmb3JtLXRyYW5zYWN0aW9uLXNlcmlhbGl6YXRpb24jc2VjcDI1NmsxLXRyYW5zZmVyLW91dHB1dC1leGFtcGxlIH1cbiAqL1xuZXhwb3J0IGNvbnN0IFNFQ1AyNTZLMV9UcmFuc2Zlcl9PdXRwdXQgPSA3O1xuXG5leHBvcnQgdHlwZSBUeCA9IFBNVlR4IHwgRU1WVHg7XG5leHBvcnQgdHlwZSBCYXNlVHggPSBQTVZCYXNlVHggfCBFVk1CYXNlVHg7XG5leHBvcnQgdHlwZSBPdXRwdXQgPSBUcmFuc2ZlcmFibGVPdXRwdXQgfCBFVk1PdXRwdXQ7XG4iXX0=
@@ -0,0 +1,48 @@
1
+ /// <reference types="bn.js" />
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { TransactionType } from '@bitgo-beta/sdk-core';
4
+ import { ImportTx, TransferableInput } from 'avalanche/dist/apis/evm';
5
+ import { BN } from 'avalanche';
6
+ import { Credential } from 'avalanche/dist/common';
7
+ import { Transaction } from './transaction';
8
+ import { AtomicTransactionBuilder } from './atomicTransactionBuilder';
9
+ import { BaseTx, Tx } from './iface';
10
+ export declare class ImportInCTxBuilder extends AtomicTransactionBuilder {
11
+ constructor(_coinConfig: Readonly<CoinConfig>);
12
+ feeRate(value: string | number): this;
13
+ to(cAddress: string): this;
14
+ protected get transactionType(): TransactionType;
15
+ initBuilder(tx: Tx): this;
16
+ static verifyTxType(baseTx: BaseTx): baseTx is ImportTx;
17
+ verifyTxType(baseTx: BaseTx): baseTx is ImportTx;
18
+ /**
19
+ *
20
+ * @protected
21
+ */
22
+ protected buildAvaxpTransaction(): void;
23
+ /** @inheritdoc */
24
+ protected fromImplementation(rawTransaction: string): Transaction;
25
+ /**
26
+ * Create inputs by mapping {@see utxoEngine.utxoToInput} result.
27
+ * Reorder sender to handle recover signer.
28
+ * TransferableInput is a EVM Tx.
29
+ * @return {
30
+ * inputs: TransferableInput[];
31
+ * credentials: Credential[];
32
+ * amount: BN;
33
+ * } where amount is the sum of inputs amount and credentials has signer address to be replaced with correct signature.
34
+ * @protected
35
+ *
36
+ */
37
+ protected createInputs(): {
38
+ inputs: TransferableInput[];
39
+ credentials: Credential[];
40
+ amount: BN;
41
+ };
42
+ /**
43
+ * Check that fee is grater than 0.
44
+ * @param {BN} fee
45
+ */
46
+ validateFee(fee: BN): void;
47
+ }
48
+ //# sourceMappingURL=importInCTxBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"importInCTxBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/importInCTxBuilder.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAuC,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAGL,QAAQ,EAIR,iBAAiB,EAGlB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,EAAE,EAAwB,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAErC,qBAAa,kBAAmB,SAAQ,wBAAwB;gBAClD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAQ7C,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAOrC,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAM1B,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI;IA6CzB,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,QAAQ;IAIvD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,QAAQ;IAIhD;;;OAGG;IACH,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAuCvC,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAOjE;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,YAAY,IAAI;QACxB,MAAM,EAAE,iBAAiB,EAAE,CAAC;QAC5B,WAAW,EAAE,UAAU,EAAE,CAAC;QAC1B,MAAM,EAAE,EAAE,CAAC;KACZ;IA+BD;;;OAGG;IACH,WAAW,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI;CAK3B"}
@@ -0,0 +1,152 @@
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.ImportInCTxBuilder = void 0;
7
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
+ const evm_1 = require("avalanche/dist/apis/evm");
9
+ const utils_1 = require("avalanche/dist/utils");
10
+ const utils_2 = __importDefault(require("./utils"));
11
+ const avalanche_1 = require("avalanche");
12
+ const atomicTransactionBuilder_1 = require("./atomicTransactionBuilder");
13
+ const utxoEngine_1 = require("./utxoEngine");
14
+ class ImportInCTxBuilder extends atomicTransactionBuilder_1.AtomicTransactionBuilder {
15
+ constructor(_coinConfig) {
16
+ super(_coinConfig);
17
+ // external chain id is P
18
+ this._externalChainId = utils_2.default.cb58Decode(this.transaction._network.blockchainID);
19
+ // chain id is C
20
+ this.transaction._blockchainID = utils_2.default.cb58Decode(this.transaction._network.cChainBlockchainID);
21
+ }
22
+ feeRate(value) {
23
+ const bnValue = new avalanche_1.BN(value);
24
+ this.validateFee(bnValue);
25
+ this.transaction._fee.feeRate = bnValue.toNumber();
26
+ return this;
27
+ }
28
+ to(cAddress) {
29
+ const toAddress = avalanche_1.Buffer.from(cAddress.slice(2), 'hex');
30
+ this.transaction._to = [toAddress];
31
+ return this;
32
+ }
33
+ get transactionType() {
34
+ return sdk_core_1.TransactionType.Import;
35
+ }
36
+ initBuilder(tx) {
37
+ const baseTx = tx.getUnsignedTx().getTransaction();
38
+ if (baseTx.getNetworkID() !== this.transaction._networkID ||
39
+ !baseTx.getBlockchainID().equals(this.transaction._blockchainID)) {
40
+ throw new Error('Network or blockchain is not equals');
41
+ }
42
+ if (!this.verifyTxType(baseTx)) {
43
+ throw new sdk_core_1.NotSupported('Transaction cannot be parsed or has an unsupported transaction type');
44
+ }
45
+ // The outputs is a signler C-Chain address result.
46
+ // It's expected to have only one outputs to the destination C-Chain address.
47
+ const outputs = baseTx.getOuts();
48
+ if (outputs.length != 1) {
49
+ throw new sdk_core_1.BuildTransactionError('Transaction can have one output');
50
+ }
51
+ const output = outputs[0];
52
+ if (!output.getAssetID().equals(this.transaction._assetId)) {
53
+ throw new Error('AssetID are not equals');
54
+ }
55
+ this.transaction._to = [output.getAddress()];
56
+ const input = baseTx.getImportInputs();
57
+ this.transaction._utxos = utxoEngine_1.recoverUtxos(input);
58
+ const totalInputAmount = input.reduce((t, i) => t.add(i.getInput().getAmount()), new avalanche_1.BN(0));
59
+ // it should be (output as AmountOutput).getAmount(), but it's not working.
60
+ const totalOutputAmount = new avalanche_1.BN(output.amount);
61
+ const feeSize = utils_1.costImportTx(tx.getUnsignedTx());
62
+ const fee = totalInputAmount.sub(totalOutputAmount);
63
+ const feeRate = fee.divn(feeSize);
64
+ this.transaction._fee = {
65
+ fee: fee.toString(),
66
+ feeRate: feeRate.toNumber(),
67
+ size: feeSize,
68
+ };
69
+ this.transaction.setTransaction(tx);
70
+ return this;
71
+ }
72
+ static verifyTxType(baseTx) {
73
+ return baseTx.getTypeID() === evm_1.EVMConstants.IMPORTTX;
74
+ }
75
+ verifyTxType(baseTx) {
76
+ return ImportInCTxBuilder.verifyTxType(baseTx);
77
+ }
78
+ /**
79
+ *
80
+ * @protected
81
+ */
82
+ buildAvaxpTransaction() {
83
+ // if tx has credentials, tx shouldn't change
84
+ if (this.transaction.hasCredentials)
85
+ return;
86
+ if (this.transaction._to.length !== 1) {
87
+ throw new Error('to is required');
88
+ }
89
+ if (!this.transaction._fee.feeRate) {
90
+ throw new Error('fee rate is required');
91
+ }
92
+ const { inputs, amount, credentials } = this.createInputs();
93
+ const feeRate = new avalanche_1.BN(this.transaction._fee.feeRate);
94
+ const feeSize = utils_1.costImportTx(new evm_1.UnsignedTx(new evm_1.ImportTx(this.transaction._networkID, this.transaction._blockchainID, this._externalChainId, inputs, [
95
+ new evm_1.EVMOutput(this.transaction._to[0], amount, this.transaction._assetId),
96
+ ])));
97
+ const fee = feeRate.muln(feeSize);
98
+ this.transaction._fee.fee = fee.toString();
99
+ this.transaction._fee.size = feeSize;
100
+ this.transaction.setTransaction(new evm_1.Tx(new evm_1.UnsignedTx(new evm_1.ImportTx(this.transaction._networkID, this.transaction._blockchainID, this._externalChainId, inputs, [new evm_1.EVMOutput(this.transaction._to[0], amount.sub(fee), this.transaction._assetId)], fee)), credentials));
101
+ }
102
+ /** @inheritdoc */
103
+ fromImplementation(rawTransaction) {
104
+ const tx = new evm_1.Tx();
105
+ tx.fromBuffer(avalanche_1.Buffer.from(rawTransaction, 'hex'));
106
+ this.initBuilder(tx);
107
+ return this.transaction;
108
+ }
109
+ /**
110
+ * Create inputs by mapping {@see utxoEngine.utxoToInput} result.
111
+ * Reorder sender to handle recover signer.
112
+ * TransferableInput is a EVM Tx.
113
+ * @return {
114
+ * inputs: TransferableInput[];
115
+ * credentials: Credential[];
116
+ * amount: BN;
117
+ * } where amount is the sum of inputs amount and credentials has signer address to be replaced with correct signature.
118
+ * @protected
119
+ *
120
+ */
121
+ createInputs() {
122
+ const sender = this.transaction._fromAddresses.slice();
123
+ if (this.recoverSigner) {
124
+ // switch first and last signer.
125
+ const tmp = sender.pop();
126
+ sender.push(sender[0]);
127
+ if (tmp) {
128
+ sender[0] = tmp;
129
+ }
130
+ }
131
+ const { inputs, amount } = utxoEngine_1.utxoToInput(this.transaction._utxos, sender);
132
+ const result = { inputs: [], credentials: [] };
133
+ inputs.forEach((input) => {
134
+ const secpTransferInput = new evm_1.SECPTransferInput(input.amount);
135
+ input.signaturesIdx.forEach((signatureIdx, arrayIndex) => secpTransferInput.addSignatureIdx(signatureIdx, sender[arrayIndex]));
136
+ result.inputs.push(new evm_1.TransferableInput(input.txidBuf, input.outputIdx, this.transaction._assetId, secpTransferInput));
137
+ result.credentials.push(evm_1.SelectCredentialClass(secpTransferInput.getCredentialID(), input.signatures));
138
+ });
139
+ return { ...result, amount };
140
+ }
141
+ /**
142
+ * Check that fee is grater than 0.
143
+ * @param {BN} fee
144
+ */
145
+ validateFee(fee) {
146
+ if (fee.lten(0)) {
147
+ throw new sdk_core_1.BuildTransactionError('Fee must be greater than 0');
148
+ }
149
+ }
150
+ }
151
+ exports.ImportInCTxBuilder = ImportInCTxBuilder;
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0SW5DVHhCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9pbXBvcnRJbkNUeEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsbURBQTRGO0FBQzVGLGlEQVVpQztBQUNqQyxnREFBb0Q7QUFDcEQsb0RBQTRCO0FBQzVCLHlDQUFxRDtBQUdyRCx5RUFBc0U7QUFDdEUsNkNBQXlEO0FBR3pELE1BQWEsa0JBQW1CLFNBQVEsbURBQXdCO0lBQzlELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLHlCQUF5QjtRQUN6QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZUFBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNqRixnQkFBZ0I7UUFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEdBQUcsZUFBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBc0I7UUFDNUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxjQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25ELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELEVBQUUsQ0FBQyxRQUFnQjtRQUNqQixNQUFNLFNBQVMsR0FBRyxrQkFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxXQUFXLENBQUMsR0FB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LEVBQUU7WUFDZixNQUFNLElBQUksZ0NBQXFCLENBQUMsNEJBQTRCLENBQUMsQ0FBQztTQUMvRDtJQUNILENBQUM7Q0FDRjtBQTFMRCxnREEwTEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIE5vdFN1cHBvcnRlZCwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHtcbiAgRVZNQ29uc3RhbnRzLFxuICBUeCBhcyBFVk1UeCxcbiAgSW1wb3J0VHgsXG4gIFVuc2lnbmVkVHgsXG4gIFNFQ1BUcmFuc2ZlcklucHV0LFxuICBTZWxlY3RDcmVkZW50aWFsQ2xhc3MsXG4gIFRyYW5zZmVyYWJsZUlucHV0LFxuICBFVk1PdXRwdXQsXG4gIEFtb3VudElucHV0LFxufSBmcm9tICdhdmFsYW5jaGUvZGlzdC9hcGlzL2V2bSc7XG5pbXBvcnQgeyBjb3N0SW1wb3J0VHggfSBmcm9tICdhdmFsYW5jaGUvZGlzdC91dGlscyc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBCTiwgQnVmZmVyIGFzIEJ1ZmZlckF2YXggfSBmcm9tICdhdmFsYW5jaGUnO1xuaW1wb3J0IHsgQ3JlZGVudGlhbCB9IGZyb20gJ2F2YWxhbmNoZS9kaXN0L2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgQXRvbWljVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi9hdG9taWNUcmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgcmVjb3ZlclV0eG9zLCB1dHhvVG9JbnB1dCB9IGZyb20gJy4vdXR4b0VuZ2luZSc7XG5pbXBvcnQgeyBCYXNlVHgsIFR4IH0gZnJvbSAnLi9pZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBJbXBvcnRJbkNUeEJ1aWxkZXIgZXh0ZW5kcyBBdG9taWNUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgLy8gZXh0ZXJuYWwgY2hhaW4gaWQgaXMgUFxuICAgIHRoaXMuX2V4dGVybmFsQ2hhaW5JZCA9IHV0aWxzLmNiNThEZWNvZGUodGhpcy50cmFuc2FjdGlvbi5fbmV0d29yay5ibG9ja2NoYWluSUQpO1xuICAgIC8vIGNoYWluIGlkIGlzIENcbiAgICB0aGlzLnRyYW5zYWN0aW9uLl9ibG9ja2NoYWluSUQgPSB1dGlscy5jYjU4RGVjb2RlKHRoaXMudHJhbnNhY3Rpb24uX25ldHdvcmsuY0NoYWluQmxvY2tjaGFpbklEKTtcbiAgfVxuXG4gIGZlZVJhdGUodmFsdWU6IHN0cmluZyB8IG51bWJlcik6IHRoaXMge1xuICAgIGNvbnN0IGJuVmFsdWUgPSBuZXcgQk4odmFsdWUpO1xuICAgIHRoaXMudmFsaWRhdGVGZWUoYm5WYWx1ZSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5fZmVlLmZlZVJhdGUgPSBiblZhbHVlLnRvTnVtYmVyKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB0byhjQWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgY29uc3QgdG9BZGRyZXNzID0gQnVmZmVyQXZheC5mcm9tKGNBZGRyZXNzLnNsaWNlKDIpLCAnaGV4Jyk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5fdG8gPSBbdG9BZGRyZXNzXTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5JbXBvcnQ7XG4gIH1cblxuICBpbml0QnVpbGRlcih0eDogVHgpOiB0aGlzIHtcbiAgICBjb25zdCBiYXNlVHg6IEJhc2VUeCA9IHR4LmdldFVuc2lnbmVkVHgoKS5nZXRUcmFuc2FjdGlvbigpO1xuICAgIGlmIChcbiAgICAgIGJhc2VUeC5nZXROZXR3b3JrSUQoKSAhPT0gdGhpcy50cmFuc2FjdGlvbi5fbmV0d29ya0lEIHx8XG4gICAgICAhYmFzZVR4LmdldEJsb2NrY2hhaW5JRCgpLmVxdWFscyh0aGlzLnRyYW5zYWN0aW9uLl9ibG9ja2NoYWluSUQpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05ldHdvcmsgb3IgYmxvY2tjaGFpbiBpcyBub3QgZXF1YWxzJyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnZlcmlmeVR4VHlwZShiYXNlVHgpKSB7XG4gICAgICB0aHJvdyBuZXcgTm90U3VwcG9ydGVkKCdUcmFuc2FjdGlvbiBjYW5ub3QgYmUgcGFyc2VkIG9yIGhhcyBhbiB1bnN1cHBvcnRlZCB0cmFuc2FjdGlvbiB0eXBlJyk7XG4gICAgfVxuXG4gICAgLy8gVGhlIG91dHB1dHMgaXMgYSBzaWdubGVyIEMtQ2hhaW4gYWRkcmVzcyByZXN1bHQuXG4gICAgLy8gSXQncyBleHBlY3RlZCB0byBoYXZlIG9ubHkgb25lIG91dHB1dHMgdG8gdGhlIGRlc3RpbmF0aW9uIEMtQ2hhaW4gYWRkcmVzcy5cbiAgICBjb25zdCBvdXRwdXRzID0gYmFzZVR4LmdldE91dHMoKTtcbiAgICBpZiAob3V0cHV0cy5sZW5ndGggIT0gMSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignVHJhbnNhY3Rpb24gY2FuIGhhdmUgb25lIG91dHB1dCcpO1xuICAgIH1cbiAgICBjb25zdCBvdXRwdXQgPSBvdXRwdXRzWzBdO1xuXG4gICAgaWYgKCFvdXRwdXQuZ2V0QXNzZXRJRCgpLmVxdWFscyh0aGlzLnRyYW5zYWN0aW9uLl9hc3NldElkKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBc3NldElEIGFyZSBub3QgZXF1YWxzJyk7XG4gICAgfVxuICAgIHRoaXMudHJhbnNhY3Rpb24uX3RvID0gW291dHB1dC5nZXRBZGRyZXNzKCldO1xuXG4gICAgY29uc3QgaW5wdXQgPSBiYXNlVHguZ2V0SW1wb3J0SW5wdXRzKCk7XG5cbiAgICB0aGlzLnRyYW5zYWN0aW9uLl91dHhvcyA9IHJlY292ZXJVdHhvcyhpbnB1dCk7XG5cbiAgICBjb25zdCB0b3RhbElucHV0QW1vdW50ID0gaW5wdXQucmVkdWNlKCh0LCBpKSA9PiB0LmFkZCgoaS5nZXRJbnB1dCgpIGFzIEFtb3VudElucHV0KS5nZXRBbW91bnQoKSksIG5ldyBCTigwKSk7XG4gICAgLy8gaXQgc2hvdWxkIGJlIChvdXRwdXQgYXMgQW1vdW50T3V0cHV0KS5nZXRBbW91bnQoKSwgYnV0IGl0J3Mgbm90IHdvcmtpbmcuXG4gICAgY29uc3QgdG90YWxPdXRwdXRBbW91bnQgPSBuZXcgQk4oKG91dHB1dCBhcyBhbnkpLmFtb3VudCk7XG4gICAgY29uc3QgZmVlU2l6ZSA9IGNvc3RJbXBvcnRUeCh0eC5nZXRVbnNpZ25lZFR4KCkgYXMgVW5zaWduZWRUeCk7XG4gICAgY29uc3QgZmVlID0gdG90YWxJbnB1dEFtb3VudC5zdWIodG90YWxPdXRwdXRBbW91bnQpO1xuICAgIGNvbnN0IGZlZVJhdGUgPSBmZWUuZGl2bihmZWVTaXplKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLl9mZWUgPSB7XG4gICAgICBmZWU6IGZlZS50b1N0cmluZygpLFxuICAgICAgZmVlUmF0ZTogZmVlUmF0ZS50b051bWJlcigpLFxuICAgICAgc2l6ZTogZmVlU2l6ZSxcbiAgICB9O1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0VHJhbnNhY3Rpb24odHgpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc3RhdGljIHZlcmlmeVR4VHlwZShiYXNlVHg6IEJhc2VUeCk6IGJhc2VUeCBpcyBJbXBvcnRUeCB7XG4gICAgcmV0dXJuIGJhc2VUeC5nZXRUeXBlSUQoKSA9PT0gRVZNQ29uc3RhbnRzLklNUE9SVFRYO1xuICB9XG5cbiAgdmVyaWZ5VHhUeXBlKGJhc2VUeDogQmFzZVR4KTogYmFzZVR4IGlzIEltcG9ydFR4IHtcbiAgICByZXR1cm4gSW1wb3J0SW5DVHhCdWlsZGVyLnZlcmlmeVR4VHlwZShiYXNlVHgpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBidWlsZEF2YXhwVHJhbnNhY3Rpb24oKTogdm9pZCB7XG4gICAgLy8gaWYgdHggaGFzIGNyZWRlbnRpYWxzLCB0eCBzaG91bGRuJ3QgY2hhbmdlXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24uaGFzQ3JlZGVudGlhbHMpIHJldHVybjtcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbi5fdG8ubGVuZ3RoICE9PSAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3RvIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy50cmFuc2FjdGlvbi5fZmVlLmZlZVJhdGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignZmVlIHJhdGUgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG4gICAgY29uc3QgeyBpbnB1dHMsIGFtb3VudCwgY3JlZGVudGlhbHMgfSA9IHRoaXMuY3JlYXRlSW5wdXRzKCk7XG5cbiAgICBjb25zdCBmZWVSYXRlID0gbmV3IEJOKHRoaXMudHJhbnNhY3Rpb24uX2ZlZS5mZWVSYXRlKTtcbiAgICBjb25zdCBmZWVTaXplID0gY29zdEltcG9ydFR4KFxuICAgICAgbmV3IFVuc2lnbmVkVHgoXG4gICAgICAgIG5ldyBJbXBvcnRUeCh0aGlzLnRyYW5zYWN0aW9uLl9uZXR3b3JrSUQsIHRoaXMudHJhbnNhY3Rpb24uX2Jsb2NrY2hhaW5JRCwgdGhpcy5fZXh0ZXJuYWxDaGFpbklkLCBpbnB1dHMsIFtcbiAgICAgICAgICBuZXcgRVZNT3V0cHV0KHRoaXMudHJhbnNhY3Rpb24uX3RvWzBdLCBhbW91bnQsIHRoaXMudHJhbnNhY3Rpb24uX2Fzc2V0SWQpLFxuICAgICAgICBdKVxuICAgICAgKVxuICAgICk7XG4gICAgY29uc3QgZmVlID0gZmVlUmF0ZS5tdWxuKGZlZVNpemUpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uX2ZlZS5mZWUgPSBmZWUudG9TdHJpbmcoKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLl9mZWUuc2l6ZSA9IGZlZVNpemU7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXRUcmFuc2FjdGlvbihcbiAgICAgIG5ldyBFVk1UeChcbiAgICAgICAgbmV3IFVuc2lnbmVkVHgoXG4gICAgICAgICAgbmV3IEltcG9ydFR4KFxuICAgICAgICAgICAgdGhpcy50cmFuc2FjdGlvbi5fbmV0d29ya0lELFxuICAgICAgICAgICAgdGhpcy50cmFuc2FjdGlvbi5fYmxvY2tjaGFpbklELFxuICAgICAgICAgICAgdGhpcy5fZXh0ZXJuYWxDaGFpbklkLFxuICAgICAgICAgICAgaW5wdXRzLFxuICAgICAgICAgICAgW25ldyBFVk1PdXRwdXQodGhpcy50cmFuc2FjdGlvbi5fdG9bMF0sIGFtb3VudC5zdWIoZmVlKSwgdGhpcy50cmFuc2FjdGlvbi5fYXNzZXRJZCldLFxuICAgICAgICAgICAgZmVlXG4gICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgICBjcmVkZW50aWFsc1xuICAgICAgKVxuICAgICk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4ID0gbmV3IEVWTVR4KCk7XG4gICAgdHguZnJvbUJ1ZmZlcihCdWZmZXJBdmF4LmZyb20ocmF3VHJhbnNhY3Rpb24sICdoZXgnKSk7XG4gICAgdGhpcy5pbml0QnVpbGRlcih0eCk7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGlucHV0cyBieSBtYXBwaW5nIHtAc2VlIHV0eG9FbmdpbmUudXR4b1RvSW5wdXR9IHJlc3VsdC5cbiAgICogUmVvcmRlciBzZW5kZXIgdG8gaGFuZGxlIHJlY292ZXIgc2lnbmVyLlxuICAgKiBUcmFuc2ZlcmFibGVJbnB1dCBpcyBhIEVWTSBUeC5cbiAgICogQHJldHVybiB7XG4gICAqICAgICBpbnB1dHM6IFRyYW5zZmVyYWJsZUlucHV0W107XG4gICAqICAgICBjcmVkZW50aWFsczogQ3JlZGVudGlhbFtdO1xuICAgKiAgICAgYW1vdW50OiBCTjtcbiAgICogICB9IHdoZXJlIGFtb3VudCBpcyB0aGUgc3VtIG9mIGlucHV0cyBhbW91bnQgYW5kIGNyZWRlbnRpYWxzIGhhcyBzaWduZXIgYWRkcmVzcyB0byBiZSByZXBsYWNlZCB3aXRoIGNvcnJlY3Qgc2lnbmF0dXJlLlxuICAgKiBAcHJvdGVjdGVkXG4gICAqXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlSW5wdXRzKCk6IHtcbiAgICBpbnB1dHM6IFRyYW5zZmVyYWJsZUlucHV0W107XG4gICAgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxbXTtcbiAgICBhbW91bnQ6IEJOO1xuICB9IHtcbiAgICBjb25zdCBzZW5kZXIgPSB0aGlzLnRyYW5zYWN0aW9uLl9mcm9tQWRkcmVzc2VzLnNsaWNlKCk7XG4gICAgaWYgKHRoaXMucmVjb3ZlclNpZ25lcikge1xuICAgICAgLy8gc3dpdGNoIGZpcnN0IGFuZCBsYXN0IHNpZ25lci5cbiAgICAgIGNvbnN0IHRtcCA9IHNlbmRlci5wb3AoKTtcbiAgICAgIHNlbmRlci5wdXNoKHNlbmRlclswXSk7XG4gICAgICBpZiAodG1wKSB7XG4gICAgICAgIHNlbmRlclswXSA9IHRtcDtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgeyBpbnB1dHMsIGFtb3VudCB9ID0gdXR4b1RvSW5wdXQodGhpcy50cmFuc2FjdGlvbi5fdXR4b3MsIHNlbmRlcik7XG4gICAgY29uc3QgcmVzdWx0OiB7XG4gICAgICBpbnB1dHM6IFRyYW5zZmVyYWJsZUlucHV0W107XG4gICAgICBjcmVkZW50aWFsczogQ3JlZGVudGlhbFtdO1xuICAgIH0gPSB7IGlucHV0czogW10sIGNyZWRlbnRpYWxzOiBbXSB9O1xuXG4gICAgaW5wdXRzLmZvckVhY2goKGlucHV0KSA9PiB7XG4gICAgICBjb25zdCBzZWNwVHJhbnNmZXJJbnB1dCA9IG5ldyBTRUNQVHJhbnNmZXJJbnB1dChpbnB1dC5hbW91bnQpO1xuICAgICAgaW5wdXQuc2lnbmF0dXJlc0lkeC5mb3JFYWNoKChzaWduYXR1cmVJZHgsIGFycmF5SW5kZXgpID0+XG4gICAgICAgIHNlY3BUcmFuc2ZlcklucHV0LmFkZFNpZ25hdHVyZUlkeChzaWduYXR1cmVJZHgsIHNlbmRlclthcnJheUluZGV4XSlcbiAgICAgICk7XG4gICAgICByZXN1bHQuaW5wdXRzLnB1c2goXG4gICAgICAgIG5ldyBUcmFuc2ZlcmFibGVJbnB1dChpbnB1dC50eGlkQnVmLCBpbnB1dC5vdXRwdXRJZHgsIHRoaXMudHJhbnNhY3Rpb24uX2Fzc2V0SWQsIHNlY3BUcmFuc2ZlcklucHV0KVxuICAgICAgKTtcblxuICAgICAgcmVzdWx0LmNyZWRlbnRpYWxzLnB1c2goU2VsZWN0Q3JlZGVudGlhbENsYXNzKHNlY3BUcmFuc2ZlcklucHV0LmdldENyZWRlbnRpYWxJRCgpLCBpbnB1dC5zaWduYXR1cmVzKSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4geyAuLi5yZXN1bHQsIGFtb3VudCB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIHRoYXQgZmVlIGlzIGdyYXRlciB0aGFuIDAuXG4gICAqIEBwYXJhbSB7Qk59IGZlZVxuICAgKi9cbiAgdmFsaWRhdGVGZWUoZmVlOiBCTik6IHZvaWQge1xuICAgIGlmIChmZWUubHRlbigwKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignRmVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIDAnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,18 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import { TransactionType } from '@bitgo-beta/sdk-core';
3
+ import { AtomicTransactionBuilder } from './atomicTransactionBuilder';
4
+ import { ImportTx } from 'avalanche/dist/apis/platformvm';
5
+ import { Tx, BaseTx } from './iface';
6
+ export declare class ImportTxBuilder extends AtomicTransactionBuilder {
7
+ constructor(_coinConfig: Readonly<CoinConfig>);
8
+ protected get transactionType(): TransactionType;
9
+ initBuilder(tx: Tx): this;
10
+ static verifyTxType(baseTx: BaseTx): baseTx is ImportTx;
11
+ verifyTxType(baseTx: BaseTx): baseTx is ImportTx;
12
+ /**
13
+ * Build the import transaction
14
+ * @protected
15
+ */
16
+ protected buildAvaxpTransaction(): void;
17
+ }
18
+ //# sourceMappingURL=importTxBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"importTxBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/importTxBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAuC,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAgD,MAAM,gCAAgC,CAAC;AAIxG,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAErC,qBAAa,eAAgB,SAAQ,wBAAwB;gBAC/C,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI;IA4BzB,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,QAAQ;IAIvD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,QAAQ;IAIhD;;;OAGG;IACH,SAAS,CAAC,qBAAqB,IAAI,IAAI;CAqBxC"}
@@ -0,0 +1,67 @@
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.ImportTxBuilder = void 0;
7
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
+ const atomicTransactionBuilder_1 = require("./atomicTransactionBuilder");
9
+ const platformvm_1 = require("avalanche/dist/apis/platformvm");
10
+ const utils_1 = __importDefault(require("./utils"));
11
+ const avalanche_1 = require("avalanche");
12
+ const utxoEngine_1 = require("./utxoEngine");
13
+ class ImportTxBuilder extends atomicTransactionBuilder_1.AtomicTransactionBuilder {
14
+ constructor(_coinConfig) {
15
+ super(_coinConfig);
16
+ this._externalChainId = utils_1.default.cb58Decode(this.transaction._network.cChainBlockchainID);
17
+ }
18
+ get transactionType() {
19
+ return sdk_core_1.TransactionType.Import;
20
+ }
21
+ initBuilder(tx) {
22
+ super.initBuilder(tx);
23
+ const baseTx = tx.getUnsignedTx().getTransaction();
24
+ if (!this.verifyTxType(baseTx)) {
25
+ throw new sdk_core_1.NotSupported('Transaction cannot be parsed or has an unsupported transaction type');
26
+ }
27
+ // The regular change output is the tx output in Import tx.
28
+ // {@link createInputOutput} result a single item array.
29
+ // It's expected to have only one outputs with the addresses of the sender.
30
+ const outputs = baseTx.getOuts();
31
+ if (outputs.length !== 1) {
32
+ throw new sdk_core_1.BuildTransactionError('Transaction can have one external output');
33
+ }
34
+ const output = outputs[0];
35
+ if (!output.getAssetID().equals(this.transaction._assetId)) {
36
+ throw new Error('The Asset ID of the output does not match the transaction');
37
+ }
38
+ const secpOut = output.getOutput();
39
+ this.transaction._locktime = secpOut.getLocktime();
40
+ this.transaction._threshold = secpOut.getThreshold();
41
+ // output addresses are the sender addresses
42
+ this.transaction._fromAddresses = secpOut.getAddresses();
43
+ this._externalChainId = baseTx.getSourceChain();
44
+ this.transaction._utxos = utxoEngine_1.recoverUtxos(baseTx.getImportInputs());
45
+ return this;
46
+ }
47
+ static verifyTxType(baseTx) {
48
+ return baseTx.getTypeID() === platformvm_1.PlatformVMConstants.IMPORTTX;
49
+ }
50
+ verifyTxType(baseTx) {
51
+ return ImportTxBuilder.verifyTxType(baseTx);
52
+ }
53
+ /**
54
+ * Build the import transaction
55
+ * @protected
56
+ */
57
+ buildAvaxpTransaction() {
58
+ // if tx has credentials, tx shouldn't change
59
+ if (this.transaction.hasCredentials)
60
+ return;
61
+ const { inputs, outputs, credentials } = this.createInputOutput(new avalanche_1.BN(this.transaction.fee.fee));
62
+ this.transaction.setTransaction(new platformvm_1.Tx(new platformvm_1.UnsignedTx(new platformvm_1.ImportTx(this.transaction._networkID, this.transaction._blockchainID, outputs, [], // P-Chain input
63
+ this.transaction._memo, this._externalChainId, inputs)), credentials));
64
+ }
65
+ }
66
+ exports.ImportTxBuilder = ImportTxBuilder;
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0VHhCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9pbXBvcnRUeEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsbURBQTRGO0FBQzVGLHlFQUFzRTtBQUN0RSwrREFBd0c7QUFDeEcsb0RBQTRCO0FBQzVCLHlDQUErQjtBQUMvQiw2Q0FBNEM7QUFHNUMsTUFBYSxlQUFnQixTQUFRLG1EQUF3QjtJQUMzRCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZUFBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLE1BQU0sQ0FBQztJQUNoQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQU07UUFDaEIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QixNQUFNLE1BQU0sR0FBVyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDM0QsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDOUIsTUFBTSxJQUFJLHVCQUFZLENBQUMscUVBQXFFLENBQUMsQ0FBQztTQUMvRjtRQUVELDJEQUEyRDtRQUMzRCx3REFBd0Q7UUFDeEQsMkVBQTJFO1FBQzNFLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1NBQzdFO1FBQ0QsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDMUQsTUFBTSxJQUFJLEtBQUssQ0FBQywyREFBMkQsQ0FBQyxDQUFDO1NBQzlFO1FBQ0QsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuRCxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDckQsNENBQTRDO1FBQzVDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN6RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLHlCQUFZLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDakUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFjO1FBQ2hDLE9BQU8sTUFBTSxDQUFDLFNBQVMsRUFBRSxLQUFLLGdDQUFtQixDQUFDLFFBQVEsQ0FBQztJQUM3RCxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQWM7UUFDekIsT0FBTyxlQUFlLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7O09BR0c7SUFDTyxxQkFBcUI7UUFDN0IsNkNBQTZDO1FBQzdDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjO1lBQUUsT0FBTztRQUM1QyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxjQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNsRyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FDN0IsSUFBSSxlQUFLLENBQ1AsSUFBSSx1QkFBVSxDQUNaLElBQUkscUJBQVEsQ0FDVixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQzlCLE9BQU8sRUFDUCxFQUFFLEVBQUUsZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUN0QixJQUFJLENBQUMsZ0JBQWdCLEVBQ3JCLE1BQU0sQ0FDUCxDQUNGLEVBQ0QsV0FBVyxDQUNaLENBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXZFRCwwQ0F1RUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIE5vdFN1cHBvcnRlZCwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQXRvbWljVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi9hdG9taWNUcmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgSW1wb3J0VHgsIFBsYXRmb3JtVk1Db25zdGFudHMsIFR4IGFzIFBWTVR4LCBVbnNpZ25lZFR4IH0gZnJvbSAnYXZhbGFuY2hlL2Rpc3QvYXBpcy9wbGF0Zm9ybXZtJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEJOIH0gZnJvbSAnYXZhbGFuY2hlJztcbmltcG9ydCB7IHJlY292ZXJVdHhvcyB9IGZyb20gJy4vdXR4b0VuZ2luZSc7XG5pbXBvcnQgeyBUeCwgQmFzZVR4IH0gZnJvbSAnLi9pZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBJbXBvcnRUeEJ1aWxkZXIgZXh0ZW5kcyBBdG9taWNUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fZXh0ZXJuYWxDaGFpbklkID0gdXRpbHMuY2I1OERlY29kZSh0aGlzLnRyYW5zYWN0aW9uLl9uZXR3b3JrLmNDaGFpbkJsb2NrY2hhaW5JRCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuSW1wb3J0O1xuICB9XG5cbiAgaW5pdEJ1aWxkZXIodHg6IFR4KTogdGhpcyB7XG4gICAgc3VwZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgIGNvbnN0IGJhc2VUeDogQmFzZVR4ID0gdHguZ2V0VW5zaWduZWRUeCgpLmdldFRyYW5zYWN0aW9uKCk7XG4gICAgaWYgKCF0aGlzLnZlcmlmeVR4VHlwZShiYXNlVHgpKSB7XG4gICAgICB0aHJvdyBuZXcgTm90U3VwcG9ydGVkKCdUcmFuc2FjdGlvbiBjYW5ub3QgYmUgcGFyc2VkIG9yIGhhcyBhbiB1bnN1cHBvcnRlZCB0cmFuc2FjdGlvbiB0eXBlJyk7XG4gICAgfVxuXG4gICAgLy8gVGhlIHJlZ3VsYXIgY2hhbmdlIG91dHB1dCBpcyB0aGUgdHggb3V0cHV0IGluIEltcG9ydCB0eC5cbiAgICAvLyB7QGxpbmsgY3JlYXRlSW5wdXRPdXRwdXR9IHJlc3VsdCBhIHNpbmdsZSBpdGVtIGFycmF5LlxuICAgIC8vIEl0J3MgZXhwZWN0ZWQgdG8gaGF2ZSBvbmx5IG9uZSBvdXRwdXRzIHdpdGggdGhlIGFkZHJlc3NlcyBvZiB0aGUgc2VuZGVyLlxuICAgIGNvbnN0IG91dHB1dHMgPSBiYXNlVHguZ2V0T3V0cygpO1xuICAgIGlmIChvdXRwdXRzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignVHJhbnNhY3Rpb24gY2FuIGhhdmUgb25lIGV4dGVybmFsIG91dHB1dCcpO1xuICAgIH1cbiAgICBjb25zdCBvdXRwdXQgPSBvdXRwdXRzWzBdO1xuICAgIGlmICghb3V0cHV0LmdldEFzc2V0SUQoKS5lcXVhbHModGhpcy50cmFuc2FjdGlvbi5fYXNzZXRJZCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIEFzc2V0IElEIG9mIHRoZSBvdXRwdXQgZG9lcyBub3QgbWF0Y2ggdGhlIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIGNvbnN0IHNlY3BPdXQgPSBvdXRwdXQuZ2V0T3V0cHV0KCk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5fbG9ja3RpbWUgPSBzZWNwT3V0LmdldExvY2t0aW1lKCk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5fdGhyZXNob2xkID0gc2VjcE91dC5nZXRUaHJlc2hvbGQoKTtcbiAgICAvLyBvdXRwdXQgYWRkcmVzc2VzIGFyZSB0aGUgc2VuZGVyIGFkZHJlc3Nlc1xuICAgIHRoaXMudHJhbnNhY3Rpb24uX2Zyb21BZGRyZXNzZXMgPSBzZWNwT3V0LmdldEFkZHJlc3NlcygpO1xuICAgIHRoaXMuX2V4dGVybmFsQ2hhaW5JZCA9IGJhc2VUeC5nZXRTb3VyY2VDaGFpbigpO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uX3V0eG9zID0gcmVjb3ZlclV0eG9zKGJhc2VUeC5nZXRJbXBvcnRJbnB1dHMoKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzdGF0aWMgdmVyaWZ5VHhUeXBlKGJhc2VUeDogQmFzZVR4KTogYmFzZVR4IGlzIEltcG9ydFR4IHtcbiAgICByZXR1cm4gYmFzZVR4LmdldFR5cGVJRCgpID09PSBQbGF0Zm9ybVZNQ29uc3RhbnRzLklNUE9SVFRYO1xuICB9XG5cbiAgdmVyaWZ5VHhUeXBlKGJhc2VUeDogQmFzZVR4KTogYmFzZVR4IGlzIEltcG9ydFR4IHtcbiAgICByZXR1cm4gSW1wb3J0VHhCdWlsZGVyLnZlcmlmeVR4VHlwZShiYXNlVHgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIHRoZSBpbXBvcnQgdHJhbnNhY3Rpb25cbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkQXZheHBUcmFuc2FjdGlvbigpOiB2b2lkIHtcbiAgICAvLyBpZiB0eCBoYXMgY3JlZGVudGlhbHMsIHR4IHNob3VsZG4ndCBjaGFuZ2VcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbi5oYXNDcmVkZW50aWFscykgcmV0dXJuO1xuICAgIGNvbnN0IHsgaW5wdXRzLCBvdXRwdXRzLCBjcmVkZW50aWFscyB9ID0gdGhpcy5jcmVhdGVJbnB1dE91dHB1dChuZXcgQk4odGhpcy50cmFuc2FjdGlvbi5mZWUuZmVlKSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXRUcmFuc2FjdGlvbihcbiAgICAgIG5ldyBQVk1UeChcbiAgICAgICAgbmV3IFVuc2lnbmVkVHgoXG4gICAgICAgICAgbmV3IEltcG9ydFR4KFxuICAgICAgICAgICAgdGhpcy50cmFuc2FjdGlvbi5fbmV0d29ya0lELFxuICAgICAgICAgICAgdGhpcy50cmFuc2FjdGlvbi5fYmxvY2tjaGFpbklELFxuICAgICAgICAgICAgb3V0cHV0cyxcbiAgICAgICAgICAgIFtdLCAvLyBQLUNoYWluIGlucHV0XG4gICAgICAgICAgICB0aGlzLnRyYW5zYWN0aW9uLl9tZW1vLFxuICAgICAgICAgICAgdGhpcy5fZXh0ZXJuYWxDaGFpbklkLFxuICAgICAgICAgICAgaW5wdXRzXG4gICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgICBjcmVkZW50aWFsc1xuICAgICAgKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,9 @@
1
+ import Utils from './utils';
2
+ export * from './iface';
3
+ export { KeyPair } from './keyPair';
4
+ export { Transaction } from './transaction';
5
+ export { TransactionBuilder } from './transactionBuilder';
6
+ export { TransactionBuilderFactory } from './transactionBuilderFactory';
7
+ export * from './iface';
8
+ export { Utils };
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ var __importDefault = (this && this.__importDefault) || function (mod) {
13
+ return (mod && mod.__esModule) ? mod : { "default": mod };
14
+ };
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.Utils = exports.TransactionBuilderFactory = exports.TransactionBuilder = exports.Transaction = exports.KeyPair = void 0;
17
+ const utils_1 = __importDefault(require("./utils"));
18
+ exports.Utils = utils_1.default;
19
+ __exportStar(require("./iface"), exports);
20
+ var keyPair_1 = require("./keyPair");
21
+ Object.defineProperty(exports, "KeyPair", { enumerable: true, get: function () { return keyPair_1.KeyPair; } });
22
+ var transaction_1 = require("./transaction");
23
+ Object.defineProperty(exports, "Transaction", { enumerable: true, get: function () { return transaction_1.Transaction; } });
24
+ var transactionBuilder_1 = require("./transactionBuilder");
25
+ Object.defineProperty(exports, "TransactionBuilder", { enumerable: true, get: function () { return transactionBuilder_1.TransactionBuilder; } });
26
+ var transactionBuilderFactory_1 = require("./transactionBuilderFactory");
27
+ Object.defineProperty(exports, "TransactionBuilderFactory", { enumerable: true, get: function () { return transactionBuilderFactory_1.TransactionBuilderFactory; } });
28
+ __exportStar(require("./iface"), exports);
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFPbkIsZ0JBUEYsZUFBSyxDQU9FO0FBTmQsMENBQXdCO0FBQ3hCLHFDQUFvQztBQUEzQixrR0FBQSxPQUFPLE9BQUE7QUFDaEIsNkNBQTRDO0FBQW5DLDBHQUFBLFdBQVcsT0FBQTtBQUNwQiwyREFBMEQ7QUFBakQsd0hBQUEsa0JBQWtCLE9BQUE7QUFDM0IseUVBQXdFO0FBQS9ELHNJQUFBLHlCQUF5QixPQUFBO0FBQ2xDLDBDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBVdGlscyBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vaWZhY2UnO1xuZXhwb3J0IHsgS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5leHBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2lmYWNlJztcbmV4cG9ydCB7IFV0aWxzIH07XG4iXX0=
@@ -0,0 +1,59 @@
1
+ /// <reference types="node" />
2
+ import { DefaultKeys, KeyPairOptions, Secp256k1ExtendedKeyPair } from '@bitgo-beta/sdk-core';
3
+ export declare enum addressFormat {
4
+ testnet = "fuji",
5
+ mainnet = "avax"
6
+ }
7
+ export declare class KeyPair extends Secp256k1ExtendedKeyPair {
8
+ /**
9
+ * Public constructor. By default, creates a key pair with a random master seed.
10
+ *
11
+ * @param { KeyPairOptions } source Either a master seed, a private key, or a public key
12
+ */
13
+ constructor(source?: KeyPairOptions);
14
+ /**
15
+ * Build a keypair from a protocol private key or extended private key.
16
+ *
17
+ * @param {string} prv A raw private key
18
+ */
19
+ recordKeysFromPrivateKey(prv: string): void;
20
+ /**
21
+ * Build an ECPair from a protocol public key or extended public key.
22
+ *
23
+ * @param {string} pub A raw public key
24
+ */
25
+ recordKeysFromPublicKey(pub: string): void;
26
+ /**
27
+ * Default keys format is a pair of Uint8Array keys
28
+ *
29
+ * @returns { DefaultKeys } The keys in the defined format
30
+ */
31
+ getKeys(): DefaultKeys;
32
+ /**
33
+ * Get an Avalanche P-Chain public mainnet address
34
+ *
35
+ * @param {string} format - avalanche hrp - select Mainnet(avax) or Testnet(fuji) for the address
36
+ * @returns {string} The mainnet address derived from the public key
37
+ */
38
+ getAddress(format?: string): string;
39
+ /**
40
+ * Get a public address of public key.
41
+ *
42
+ * @param {string} hrp - select Mainnet(avax) or Testnet(fuji) for the address
43
+ * @returns {string} The address derived from the public key and hrp
44
+ */
45
+ getAvaxPAddress(hrp: string): string;
46
+ /**
47
+ * Get an Avalanche P-Chain public mainnet address
48
+ *
49
+ * @returns {Buffer} The address buffer derived from the public key
50
+ */
51
+ getAddressBuffer(): Buffer;
52
+ /**
53
+ * Use the safe Buffer instead of the regular buffer to derive the address buffer. Used in the OVC.
54
+ *
55
+ * @returns {Buffer}
56
+ */
57
+ getAddressSafeBuffer(): Buffer;
58
+ }
59
+ //# sourceMappingURL=keyPair.d.ts.map
@@ -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"}