@bitgo/account-lib 2.17.2-rc.1 → 2.17.2-rc.2

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 (78) hide show
  1. package/dist/browser/bitgo-account-lib.min.js +1 -1
  2. package/dist/package.json +7 -3
  3. package/dist/src/coin/baseCoin/baseTransactionBuilder.d.ts.map +1 -1
  4. package/dist/src/coin/baseCoin/baseTransactionBuilder.js +1 -1
  5. package/dist/src/coin/cspr/utils.js +2 -2
  6. package/dist/src/coin/dot/errors.d.ts +3 -0
  7. package/dist/src/coin/dot/errors.d.ts.map +1 -1
  8. package/dist/src/coin/dot/errors.js +12 -2
  9. package/dist/src/coin/dot/iface.d.ts +1 -1
  10. package/dist/src/coin/dot/iface.d.ts.map +1 -1
  11. package/dist/src/coin/dot/iface.js +1 -1
  12. package/dist/src/coin/dot/index.d.ts +5 -0
  13. package/dist/src/coin/dot/index.d.ts.map +1 -1
  14. package/dist/src/coin/dot/index.js +12 -2
  15. package/dist/src/coin/dot/keyPair.d.ts +15 -2
  16. package/dist/src/coin/dot/keyPair.d.ts.map +1 -1
  17. package/dist/src/coin/dot/keyPair.js +41 -6
  18. package/dist/src/coin/dot/transaction.d.ts +31 -3
  19. package/dist/src/coin/dot/transaction.d.ts.map +1 -1
  20. package/dist/src/coin/dot/transaction.js +269 -7
  21. package/dist/src/coin/dot/transactionBuilder.d.ts +102 -9
  22. package/dist/src/coin/dot/transactionBuilder.d.ts.map +1 -1
  23. package/dist/src/coin/dot/transactionBuilder.js +309 -15
  24. package/dist/src/coin/dot/transactionBuilderFactory.d.ts +13 -16
  25. package/dist/src/coin/dot/transactionBuilderFactory.d.ts.map +1 -1
  26. package/dist/src/coin/dot/transactionBuilderFactory.js +60 -25
  27. package/dist/src/coin/dot/transferBuilder.d.ts +62 -4
  28. package/dist/src/coin/dot/transferBuilder.d.ts.map +1 -1
  29. package/dist/src/coin/dot/transferBuilder.js +161 -44
  30. package/dist/src/coin/dot/utils.d.ts +69 -0
  31. package/dist/src/coin/dot/utils.d.ts.map +1 -1
  32. package/dist/src/coin/dot/utils.js +144 -4
  33. package/dist/src/coin/dot/walletInitializationBuilder.d.ts +51 -5
  34. package/dist/src/coin/dot/walletInitializationBuilder.d.ts.map +1 -1
  35. package/dist/src/coin/dot/walletInitializationBuilder.js +112 -44
  36. package/dist/src/coin/sol/constants.d.ts +24 -0
  37. package/dist/src/coin/sol/constants.d.ts.map +1 -0
  38. package/dist/src/coin/sol/constants.js +35 -0
  39. package/dist/src/coin/sol/iface.d.ts +46 -0
  40. package/dist/src/coin/sol/iface.d.ts.map +1 -1
  41. package/dist/src/coin/sol/iface.js +3 -1
  42. package/dist/src/coin/sol/instructionParamsFactory.d.ts +12 -0
  43. package/dist/src/coin/sol/instructionParamsFactory.d.ts.map +1 -0
  44. package/dist/src/coin/sol/instructionParamsFactory.js +99 -0
  45. package/dist/src/coin/sol/keyPair.d.ts +32 -6
  46. package/dist/src/coin/sol/keyPair.d.ts.map +1 -1
  47. package/dist/src/coin/sol/keyPair.js +107 -29
  48. package/dist/src/coin/sol/solInstructionFactory.d.ts +10 -0
  49. package/dist/src/coin/sol/solInstructionFactory.d.ts.map +1 -0
  50. package/dist/src/coin/sol/solInstructionFactory.js +102 -0
  51. package/dist/src/coin/sol/transaction.d.ts +29 -17
  52. package/dist/src/coin/sol/transaction.d.ts.map +1 -1
  53. package/dist/src/coin/sol/transaction.js +202 -20
  54. package/dist/src/coin/sol/transactionBuilder.d.ts +61 -3
  55. package/dist/src/coin/sol/transactionBuilder.d.ts.map +1 -1
  56. package/dist/src/coin/sol/transactionBuilder.js +210 -10
  57. package/dist/src/coin/sol/transactionBuilderFactory.d.ts +13 -3
  58. package/dist/src/coin/sol/transactionBuilderFactory.d.ts.map +1 -1
  59. package/dist/src/coin/sol/transactionBuilderFactory.js +36 -6
  60. package/dist/src/coin/sol/transferBuilder.d.ts +15 -8
  61. package/dist/src/coin/sol/transferBuilder.d.ts.map +1 -1
  62. package/dist/src/coin/sol/transferBuilder.js +62 -15
  63. package/dist/src/coin/sol/utils.d.ts +84 -2
  64. package/dist/src/coin/sol/utils.d.ts.map +1 -1
  65. package/dist/src/coin/sol/utils.js +162 -6
  66. package/dist/src/coin/sol/walletInitializationBuilder.d.ts +15 -8
  67. package/dist/src/coin/sol/walletInitializationBuilder.d.ts.map +1 -1
  68. package/dist/src/coin/sol/walletInitializationBuilder.js +61 -13
  69. package/dist/src/index.d.ts +2 -0
  70. package/dist/src/index.d.ts.map +1 -1
  71. package/dist/src/index.js +6 -2
  72. package/dist/src/utils/crypto.d.ts +8 -0
  73. package/dist/src/utils/crypto.d.ts.map +1 -1
  74. package/dist/src/utils/crypto.js +13 -2
  75. package/package.json +7 -3
  76. package/resources/dot/index.ts +2 -0
  77. package/resources/dot/mainnet.ts +2 -0
  78. package/resources/dot/westend.ts +2 -0
@@ -1,3 +1,6 @@
1
+ import { SignaturePubkeyPair, Transaction as SolTransaction, TransactionInstruction } from '@solana/web3.js';
2
+ import { TransactionType } from '../baseCoin';
3
+ import { ValidInstructionTypes } from './iface';
1
4
  /** @inheritdoc */
2
5
  export declare function isValidAddress(address: string): boolean;
3
6
  /** @inheritdoc */
@@ -17,6 +20,85 @@ export declare function isValidTransactionId(txId: string): boolean;
17
20
  * @returns {boolean} - the validation result
18
21
  */
19
22
  export declare function isValidAmount(amount: string): boolean;
20
- export declare function base58ToUint8Array(key: string): Uint8Array;
21
- export declare function Uint8ArrayTobase58(key: Uint8Array): string;
23
+ /**
24
+ * Check if this is a valid memo or not.
25
+ *
26
+ * @param memo - the memo string
27
+ * @returns {boolean} - the validation result
28
+ */
29
+ export declare function isValidMemo(memo: string): boolean;
30
+ /**
31
+ * Checks if raw transaction can be deserialized
32
+ *
33
+ * @param {string} rawTransaction - transaction in base64 string format
34
+ * @returns {boolean} - the validation result
35
+ */
36
+ export declare function isValidRawTransaction(rawTransaction: string): boolean;
37
+ /**
38
+ * Verifies if signature for message is valid.
39
+ *
40
+ * @param {Buffer} serializedTx - tx as a base64 string
41
+ * @param {string} signature - signature as a string
42
+ * @param {string} publicKey - public key as base 58
43
+ * @returns {Boolean} true if signature is valid.
44
+ */
45
+ export declare function verifySignature(serializedTx: string, signature: string, publicKey: string): boolean;
46
+ /**
47
+ * Converts a base58 string into a Uint8Array.
48
+ *
49
+ * @param {string} input - a string in base58
50
+ * @returns {Uint8Array} - an Uint8Array
51
+ */
52
+ export declare function base58ToUint8Array(input: string): Uint8Array;
53
+ /**
54
+ * Converts a Uint8Array to a base58 string.
55
+ *
56
+ * @param {Uint8Array} input - an Uint8Array
57
+ * @returns {string} - a string in base58
58
+ */
59
+ export declare function Uint8ArrayTobase58(input: Uint8Array): string;
60
+ /**
61
+ * Count the amount of signatures are not null.
62
+ *
63
+ * @param {SignaturePubkeyPair[]} signatures - an array of SignaturePubkeyPair
64
+ * @returns {number} - the amount of valid signatures
65
+ */
66
+ export declare function countNotNullSignatures(signatures: SignaturePubkeyPair[]): number;
67
+ /**
68
+ * Check if all signatures are completed.
69
+ *
70
+ * @param {SignaturePubkeyPair[]} signatures - signatures
71
+ * @returns {boolean}
72
+ */
73
+ export declare function requiresAllSignatures(signatures: SignaturePubkeyPair[]): boolean;
74
+ /**
75
+ * Returns the transaction Type based on the transaction instructions.
76
+ * Only Wallet initialization and Transfer transactions are supported.
77
+ *
78
+ * @param {SolTransaction} transaction - the solana transaction
79
+ * @returns {TransactionType} - the type of transaction
80
+ */
81
+ export declare function getTransactionType(transaction: SolTransaction): TransactionType;
82
+ /**
83
+ * Returns the a instruction Type based on the solana instructions.
84
+ * Throws if the solana instruction program is not supported
85
+ *
86
+ * @param {TransactionInstruction} instruction - a solana instruction
87
+ * @returns {ValidInstructionTypes} - a solana instruction type
88
+ */
89
+ export declare function getInstructionType(instruction: TransactionInstruction): ValidInstructionTypes;
90
+ /**
91
+ * Validate solana instructions types to see if they are supported by the builder.
92
+ * Throws if the instruction type is invalid.
93
+ *
94
+ * @param {TransactionInstruction} instruction - a solana instruction
95
+ * @returns {void}
96
+ */
97
+ export declare function validateIntructionTypes(instructions: TransactionInstruction[]): void;
98
+ /**
99
+ * Check the raw transaction has a valid format in the blockchain context, throw otherwise.
100
+ *
101
+ * @param {string} rawTransaction - Transaction in base64 string format
102
+ */
103
+ export declare function validateRawTransaction(rawTransaction: string): void;
22
104
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/coin/sol/utils.ts"],"names":[],"mappings":"AASA,kBAAkB;AAClB,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,kBAAkB;AAClB,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQpD;AAED,kBAAkB;AAClB,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAOtE;AAED,kBAAkB;AAClB,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAWxD;AAED,kBAAkB;AAClB,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAM3D;AAED,kBAAkB;AAElB,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAGrD;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAE1D;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAE1D"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/coin/sol/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,mBAAmB,EAGnB,WAAW,IAAI,cAAc,EAC7B,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AAUzB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAQhD,kBAAkB;AAClB,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,kBAAkB;AAClB,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQpD;AAED,kBAAkB;AAClB,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAOtE;AAED,kBAAkB;AAClB,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAWxD;AAED,kBAAkB;AAClB,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAM3D;AAED,kBAAkB;AAElB,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAGrD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAQrE;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAcnG;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAE5D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAE5D;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAEhF;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAEhF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,cAAc,GAAG,eAAe,CAa/E;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,sBAAsB,GAAG,qBAAqB,CAW7F;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,sBAAsB,EAAE,GAAG,IAAI,CAMpF;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAOnE"}
@@ -3,10 +3,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Uint8ArrayTobase58 = exports.base58ToUint8Array = exports.isValidAmount = exports.isValidTransactionId = exports.isValidSignature = exports.isValidPublicKey = exports.isValidPrivateKey = exports.isValidBlockId = exports.isValidAddress = void 0;
6
+ exports.validateRawTransaction = exports.validateIntructionTypes = exports.getInstructionType = exports.getTransactionType = exports.requiresAllSignatures = exports.countNotNullSignatures = exports.Uint8ArrayTobase58 = exports.base58ToUint8Array = exports.verifySignature = exports.isValidRawTransaction = exports.isValidMemo = exports.isValidAmount = exports.isValidTransactionId = exports.isValidSignature = exports.isValidPublicKey = exports.isValidPrivateKey = exports.isValidBlockId = exports.isValidAddress = void 0;
7
7
  var web3_js_1 = require("@solana/web3.js");
8
8
  var bs58_1 = __importDefault(require("bs58"));
9
9
  var bignumber_js_1 = __importDefault(require("bignumber.js"));
10
+ var constants_1 = require("./constants");
11
+ var baseCoin_1 = require("../baseCoin");
12
+ var errors_1 = require("../baseCoin/errors");
13
+ var tweetnacl_1 = __importDefault(require("tweetnacl"));
10
14
  var DECODED_BLOCK_HASH_LENGTH = 32; // https://docs.solana.com/developing/programming-model/transactions#blockhash-format
11
15
  var DECODED_ADDRESS_LENGTH = 32; // https://docs.solana.com/developing/programming-model/transactions#account-address-format
12
16
  var DECODED_SIGNATURE_LENGTH = 64; // https://docs.solana.com/terminology#signature
@@ -77,12 +81,164 @@ function isValidAmount(amount) {
77
81
  return bigNumberAmount.isInteger() && bigNumberAmount.isGreaterThanOrEqualTo(0);
78
82
  }
79
83
  exports.isValidAmount = isValidAmount;
80
- function base58ToUint8Array(key) {
81
- return new Uint8Array(bs58_1.default.decode(key));
84
+ /**
85
+ * Check if this is a valid memo or not.
86
+ *
87
+ * @param memo - the memo string
88
+ * @returns {boolean} - the validation result
89
+ */
90
+ function isValidMemo(memo) {
91
+ return Buffer.from(memo).length <= constants_1.MAX_MEMO_LENGTH;
92
+ }
93
+ exports.isValidMemo = isValidMemo;
94
+ /**
95
+ * Checks if raw transaction can be deserialized
96
+ *
97
+ * @param {string} rawTransaction - transaction in base64 string format
98
+ * @returns {boolean} - the validation result
99
+ */
100
+ function isValidRawTransaction(rawTransaction) {
101
+ try {
102
+ var tx = web3_js_1.Transaction.from(Buffer.from(rawTransaction, 'base64'));
103
+ tx.serialize({ requireAllSignatures: false });
104
+ return true;
105
+ }
106
+ catch (e) {
107
+ return false;
108
+ }
109
+ }
110
+ exports.isValidRawTransaction = isValidRawTransaction;
111
+ /**
112
+ * Verifies if signature for message is valid.
113
+ *
114
+ * @param {Buffer} serializedTx - tx as a base64 string
115
+ * @param {string} signature - signature as a string
116
+ * @param {string} publicKey - public key as base 58
117
+ * @returns {Boolean} true if signature is valid.
118
+ */
119
+ function verifySignature(serializedTx, signature, publicKey) {
120
+ if (!isValidRawTransaction(serializedTx)) {
121
+ throw new errors_1.UtilsError('Invalid serializedTx');
122
+ }
123
+ if (!isValidPublicKey(publicKey)) {
124
+ throw new errors_1.UtilsError('Invalid publicKey');
125
+ }
126
+ if (!isValidSignature(signature)) {
127
+ throw new errors_1.UtilsError('Invalid signature');
128
+ }
129
+ var msg = web3_js_1.Transaction.from(Buffer.from(serializedTx, 'base64')).serializeMessage();
130
+ var sig = base58ToUint8Array(signature);
131
+ var pub = new web3_js_1.PublicKey(publicKey);
132
+ return tweetnacl_1.default.sign.detached.verify(msg, sig, pub.toBuffer());
133
+ }
134
+ exports.verifySignature = verifySignature;
135
+ /**
136
+ * Converts a base58 string into a Uint8Array.
137
+ *
138
+ * @param {string} input - a string in base58
139
+ * @returns {Uint8Array} - an Uint8Array
140
+ */
141
+ function base58ToUint8Array(input) {
142
+ return new Uint8Array(bs58_1.default.decode(input));
82
143
  }
83
144
  exports.base58ToUint8Array = base58ToUint8Array;
84
- function Uint8ArrayTobase58(key) {
85
- return bs58_1.default.encode(key);
145
+ /**
146
+ * Converts a Uint8Array to a base58 string.
147
+ *
148
+ * @param {Uint8Array} input - an Uint8Array
149
+ * @returns {string} - a string in base58
150
+ */
151
+ function Uint8ArrayTobase58(input) {
152
+ return bs58_1.default.encode(input);
86
153
  }
87
154
  exports.Uint8ArrayTobase58 = Uint8ArrayTobase58;
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9zb2wvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMkNBQXFEO0FBQ3JELDhDQUF3QjtBQUN4Qiw4REFBcUM7QUFFckMsSUFBTSx5QkFBeUIsR0FBRyxFQUFFLENBQUMsQ0FBQyxxRkFBcUY7QUFDM0gsSUFBTSxzQkFBc0IsR0FBRyxFQUFFLENBQUMsQ0FBQywyRkFBMkY7QUFDOUgsSUFBTSx3QkFBd0IsR0FBRyxFQUFFLENBQUMsQ0FBQyxnREFBZ0Q7QUFDckYsSUFBTSx1QkFBdUIsR0FBRyxzQkFBc0IsQ0FBQztBQUV2RCxrQkFBa0I7QUFDbEIsU0FBZ0IsY0FBYyxDQUFDLE9BQWU7SUFDNUMsT0FBTyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNuQyxDQUFDO0FBRkQsd0NBRUM7QUFFRCxrQkFBa0I7QUFDbEIsU0FBZ0IsY0FBYyxDQUFDLElBQVk7SUFDekMsSUFBSTtRQUNGLE9BQU8sQ0FDTCxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLGNBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLHlCQUF5QixDQUNuSCxDQUFDO0tBQ0g7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7QUFDSCxDQUFDO0FBUkQsd0NBUUM7QUFFRCxrQkFBa0I7QUFDbEIsU0FBZ0IsaUJBQWlCLENBQUMsTUFBMkI7SUFDM0QsSUFBSTtRQUNGLElBQU0sR0FBRyxHQUFlLE9BQU8sTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDOUYsT0FBTyxDQUFDLENBQUMsaUJBQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDckM7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7QUFDSCxDQUFDO0FBUEQsOENBT0M7QUFFRCxrQkFBa0I7QUFDbEIsU0FBZ0IsZ0JBQWdCLENBQUMsTUFBYztJQUM3QyxJQUFJO1FBQ0YsT0FBTyxDQUNMLENBQUMsQ0FBQyxNQUFNO1lBQ1IsSUFBSSxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ2hELGNBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxLQUFLLHNCQUFzQjtZQUNyRCxtQkFBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLG1CQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FDdEQsQ0FBQztLQUNIO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLEtBQUssQ0FBQztLQUNkO0FBQ0gsQ0FBQztBQVhELDRDQVdDO0FBRUQsa0JBQWtCO0FBQ2xCLFNBQWdCLGdCQUFnQixDQUFDLFNBQWlCO0lBQ2hELElBQUk7UUFDRixPQUFPLENBQUMsQ0FBQyxTQUFTLElBQUksY0FBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEtBQUssd0JBQXdCLENBQUM7S0FDbEY7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7QUFDSCxDQUFDO0FBTkQsNENBTUM7QUFFRCxrQkFBa0I7QUFDbEIseURBQXlEO0FBQ3pELFNBQWdCLG9CQUFvQixDQUFDLElBQVk7SUFDL0MsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDckMsQ0FBQztBQUZELG9EQUVDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixhQUFhLENBQUMsTUFBYztJQUMxQyxJQUFNLGVBQWUsR0FBRyxJQUFJLHNCQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUMsT0FBTyxlQUFlLENBQUMsU0FBUyxFQUFFLElBQUksZUFBZSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xGLENBQUM7QUFIRCxzQ0FHQztBQUVELFNBQWdCLGtCQUFrQixDQUFDLEdBQVc7SUFDNUMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxjQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDMUMsQ0FBQztBQUZELGdEQUVDO0FBRUQsU0FBZ0Isa0JBQWtCLENBQUMsR0FBZTtJQUNoRCxPQUFPLGNBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDMUIsQ0FBQztBQUZELGdEQUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS2V5cGFpciwgUHVibGljS2V5IH0gZnJvbSAnQHNvbGFuYS93ZWIzLmpzJztcbmltcG9ydCBiczU4IGZyb20gJ2JzNTgnO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuXG5jb25zdCBERUNPREVEX0JMT0NLX0hBU0hfTEVOR1RIID0gMzI7IC8vIGh0dHBzOi8vZG9jcy5zb2xhbmEuY29tL2RldmVsb3BpbmcvcHJvZ3JhbW1pbmctbW9kZWwvdHJhbnNhY3Rpb25zI2Jsb2NraGFzaC1mb3JtYXRcbmNvbnN0IERFQ09ERURfQUREUkVTU19MRU5HVEggPSAzMjsgLy8gaHR0cHM6Ly9kb2NzLnNvbGFuYS5jb20vZGV2ZWxvcGluZy9wcm9ncmFtbWluZy1tb2RlbC90cmFuc2FjdGlvbnMjYWNjb3VudC1hZGRyZXNzLWZvcm1hdFxuY29uc3QgREVDT0RFRF9TSUdOQVRVUkVfTEVOR1RIID0gNjQ7IC8vIGh0dHBzOi8vZG9jcy5zb2xhbmEuY29tL3Rlcm1pbm9sb2d5I3NpZ25hdHVyZVxuY29uc3QgQkFTRV81OF9FTkNPTkRJTkdfUkVHRVggPSAnWzEtOUEtSEotTlAtWmEta20tel0nO1xuXG4vKiogQGluaGVyaXRkb2MgKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGlzVmFsaWRQdWJsaWNLZXkoYWRkcmVzcyk7XG59XG5cbi8qKiBAaW5oZXJpdGRvYyAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRCbG9ja0lkKGhhc2g6IHN0cmluZyk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIHJldHVybiAoXG4gICAgICAhIWhhc2ggJiYgbmV3IFJlZ0V4cChCQVNFXzU4X0VOQ09ORElOR19SRUdFWCkudGVzdChoYXNoKSAmJiBiczU4LmRlY29kZShoYXNoKS5sZW5ndGggPT09IERFQ09ERURfQkxPQ0tfSEFTSF9MRU5HVEhcbiAgICApO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKiBAaW5oZXJpdGRvYyAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRQcml2YXRlS2V5KHBydktleTogc3RyaW5nIHwgVWludDhBcnJheSk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGNvbnN0IGtleTogVWludDhBcnJheSA9IHR5cGVvZiBwcnZLZXkgPT09ICdzdHJpbmcnID8gdGhpcy5iYXNlNThUb1VpbnQ4QXJyYXkocHJ2S2V5KSA6IHBydktleTtcbiAgICByZXR1cm4gISFLZXlwYWlyLmZyb21TZWNyZXRLZXkoa2V5KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKiogQGluaGVyaXRkb2MgKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkUHVibGljS2V5KHB1YktleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIChcbiAgICAgICEhcHViS2V5ICYmXG4gICAgICBuZXcgUmVnRXhwKEJBU0VfNThfRU5DT05ESU5HX1JFR0VYKS50ZXN0KHB1YktleSkgJiZcbiAgICAgIGJzNTguZGVjb2RlKHB1YktleSkubGVuZ3RoID09PSBERUNPREVEX0FERFJFU1NfTEVOR1RIICYmXG4gICAgICBQdWJsaWNLZXkuaXNPbkN1cnZlKG5ldyBQdWJsaWNLZXkocHViS2V5KS50b0J1ZmZlcigpKVxuICAgICk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqIEBpbmhlcml0ZG9jICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFNpZ25hdHVyZShzaWduYXR1cmU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIHJldHVybiAhIXNpZ25hdHVyZSAmJiBiczU4LmRlY29kZShzaWduYXR1cmUpLmxlbmd0aCA9PT0gREVDT0RFRF9TSUdOQVRVUkVfTEVOR1RIO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKiBAaW5oZXJpdGRvYyAqL1xuLy8gVHJhbnNhY3Rpb25JZCBhcmUgdGhlIGZpcnN0IHNpZ25hdHVyZSBvbiBhIFRyYW5zYWN0aW9uXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFRyYW5zYWN0aW9uSWQodHhJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiB0aGlzLmlzVmFsaWRTaWduYXR1cmUodHhJZCk7XG59XG5cbi8qKlxuICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgYW1vdW50IG9mIGxhbXBvcnRzIG51bWJlclxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBhbW91bnQgLSB0aGUgc3RyaW5nIHRvIHZhbGlkYXRlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRBbW91bnQoYW1vdW50OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgYmlnTnVtYmVyQW1vdW50ID0gbmV3IEJpZ051bWJlcihhbW91bnQpO1xuICByZXR1cm4gYmlnTnVtYmVyQW1vdW50LmlzSW50ZWdlcigpICYmIGJpZ051bWJlckFtb3VudC5pc0dyZWF0ZXJUaGFuT3JFcXVhbFRvKDApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmFzZTU4VG9VaW50OEFycmF5KGtleTogc3RyaW5nKTogVWludDhBcnJheSB7XG4gIHJldHVybiBuZXcgVWludDhBcnJheShiczU4LmRlY29kZShrZXkpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFVpbnQ4QXJyYXlUb2Jhc2U1OChrZXk6IFVpbnQ4QXJyYXkpOiBzdHJpbmcge1xuICByZXR1cm4gYnM1OC5lbmNvZGUoa2V5KTtcbn1cbiJdfQ==
155
+ /**
156
+ * Count the amount of signatures are not null.
157
+ *
158
+ * @param {SignaturePubkeyPair[]} signatures - an array of SignaturePubkeyPair
159
+ * @returns {number} - the amount of valid signatures
160
+ */
161
+ function countNotNullSignatures(signatures) {
162
+ return signatures.filter(function (sig) { return !!sig.signature; }).length;
163
+ }
164
+ exports.countNotNullSignatures = countNotNullSignatures;
165
+ /**
166
+ * Check if all signatures are completed.
167
+ *
168
+ * @param {SignaturePubkeyPair[]} signatures - signatures
169
+ * @returns {boolean}
170
+ */
171
+ function requiresAllSignatures(signatures) {
172
+ return signatures.length > 0 && countNotNullSignatures(signatures) === signatures.length;
173
+ }
174
+ exports.requiresAllSignatures = requiresAllSignatures;
175
+ /**
176
+ * Returns the transaction Type based on the transaction instructions.
177
+ * Only Wallet initialization and Transfer transactions are supported.
178
+ *
179
+ * @param {SolTransaction} transaction - the solana transaction
180
+ * @returns {TransactionType} - the type of transaction
181
+ */
182
+ function getTransactionType(transaction) {
183
+ var instructions = transaction.instructions;
184
+ validateIntructionTypes(instructions);
185
+ if (instructions.length <= 3 &&
186
+ getInstructionType(instructions[constants_1.walletInitInstructionIndexes.Create]) === constants_1.ValidInstructionTypesEnum.Create &&
187
+ getInstructionType(instructions[constants_1.walletInitInstructionIndexes.InitializeNonce]) ===
188
+ constants_1.ValidInstructionTypesEnum.InitializeNonceAccount) {
189
+ return baseCoin_1.TransactionType.WalletInitialization;
190
+ }
191
+ else {
192
+ return baseCoin_1.TransactionType.Send;
193
+ }
194
+ }
195
+ exports.getTransactionType = getTransactionType;
196
+ /**
197
+ * Returns the a instruction Type based on the solana instructions.
198
+ * Throws if the solana instruction program is not supported
199
+ *
200
+ * @param {TransactionInstruction} instruction - a solana instruction
201
+ * @returns {ValidInstructionTypes} - a solana instruction type
202
+ */
203
+ function getInstructionType(instruction) {
204
+ switch (instruction.programId.toString()) {
205
+ case new web3_js_1.PublicKey(constants_1.MEMO_PROGRAM_PK).toString():
206
+ return 'Memo';
207
+ case web3_js_1.SystemProgram.programId.toString():
208
+ return web3_js_1.SystemInstruction.decodeInstructionType(instruction);
209
+ default:
210
+ throw new errors_1.NotSupported('Invalid transaction, instruction program id not supported: ' + instruction.programId.toString());
211
+ }
212
+ }
213
+ exports.getInstructionType = getInstructionType;
214
+ /**
215
+ * Validate solana instructions types to see if they are supported by the builder.
216
+ * Throws if the instruction type is invalid.
217
+ *
218
+ * @param {TransactionInstruction} instruction - a solana instruction
219
+ * @returns {void}
220
+ */
221
+ function validateIntructionTypes(instructions) {
222
+ for (var _i = 0, instructions_1 = instructions; _i < instructions_1.length; _i++) {
223
+ var instruction = instructions_1[_i];
224
+ if (!constants_1.VALID_SYSTEM_INSTRUCTION_TYPES.includes(getInstructionType(instruction))) {
225
+ throw new errors_1.NotSupported('Invalid transaction, instruction type not supported: ' + getInstructionType(instruction));
226
+ }
227
+ }
228
+ }
229
+ exports.validateIntructionTypes = validateIntructionTypes;
230
+ /**
231
+ * Check the raw transaction has a valid format in the blockchain context, throw otherwise.
232
+ *
233
+ * @param {string} rawTransaction - Transaction in base64 string format
234
+ */
235
+ function validateRawTransaction(rawTransaction) {
236
+ if (!rawTransaction) {
237
+ throw new errors_1.ParseTransactionError('Invalid raw transaction: Undefined');
238
+ }
239
+ if (!isValidRawTransaction(rawTransaction)) {
240
+ throw new errors_1.ParseTransactionError('Invalid raw transaction');
241
+ }
242
+ }
243
+ exports.validateRawTransaction = validateRawTransaction;
244
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9zb2wvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMkNBUXlCO0FBQ3pCLDhDQUF3QjtBQUN4Qiw4REFBcUM7QUFDckMseUNBTXFCO0FBQ3JCLHdDQUE4QztBQUM5Qyw2Q0FBcUY7QUFFckYsd0RBQTZCO0FBRTdCLElBQU0seUJBQXlCLEdBQUcsRUFBRSxDQUFDLENBQUMscUZBQXFGO0FBQzNILElBQU0sc0JBQXNCLEdBQUcsRUFBRSxDQUFDLENBQUMsMkZBQTJGO0FBQzlILElBQU0sd0JBQXdCLEdBQUcsRUFBRSxDQUFDLENBQUMsZ0RBQWdEO0FBQ3JGLElBQU0sdUJBQXVCLEdBQUcsc0JBQXNCLENBQUM7QUFFdkQsa0JBQWtCO0FBQ2xCLFNBQWdCLGNBQWMsQ0FBQyxPQUFlO0lBQzVDLE9BQU8sZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUZELHdDQUVDO0FBRUQsa0JBQWtCO0FBQ2xCLFNBQWdCLGNBQWMsQ0FBQyxJQUFZO0lBQ3pDLElBQUk7UUFDRixPQUFPLENBQ0wsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxjQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyx5QkFBeUIsQ0FDbkgsQ0FBQztLQUNIO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLEtBQUssQ0FBQztLQUNkO0FBQ0gsQ0FBQztBQVJELHdDQVFDO0FBRUQsa0JBQWtCO0FBQ2xCLFNBQWdCLGlCQUFpQixDQUFDLE1BQTJCO0lBQzNELElBQUk7UUFDRixJQUFNLEdBQUcsR0FBZSxPQUFPLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMs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O1FBQ3BCLElBQUksQ0FBQywwQ0FBOEIsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRTtZQUM3RSxNQUFNLElBQUkscUJBQVksQ0FBQyx1REFBdUQsR0FBRyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1NBQ25IO0tBQ0Y7QUFDSCxDQUFDO0FBTkQsMERBTUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQUMsY0FBc0I7SUFDM0QsSUFBSSxDQUFDLGNBQWMsRUFBRTtRQUNuQixNQUFNLElBQUksOEJBQXFCLENBQUMsb0NBQW9DLENBQUMsQ0FBQztLQUN2RTtJQUNELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsRUFBRTtRQUMxQyxNQUFNLElBQUksOEJBQXFCLENBQUMseUJBQXlCLENBQUMsQ0FBQztLQUM1RDtBQUNILENBQUM7QUFQRCx3REFPQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEtleXBhaXIsXG4gIFB1YmxpY0tleSxcbiAgU2lnbmF0dXJlUHVia2V5UGFpcixcbiAgU3lzdGVtSW5zdHJ1Y3Rpb24sXG4gIFN5c3RlbVByb2dyYW0sXG4gIFRyYW5zYWN0aW9uIGFzIFNvbFRyYW5zYWN0aW9uLFxuICBUcmFuc2FjdGlvbkluc3RydWN0aW9uLFxufSBmcm9tICdAc29sYW5hL3dlYjMuanMnO1xuaW1wb3J0IGJzNTggZnJvbSAnYnM1OCc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQge1xuICBNQVhfTUVNT19MRU5HVEgsXG4gIE1FTU9fUFJPR1JBTV9QSyxcbiAgVmFsaWRJbnN0cnVjdGlvblR5cGVzRW51bSxcbiAgVkFMSURfU1lTVEVNX0lOU1RSVUNUSU9OX1RZUEVTLFxuICB3YWxsZXRJbml0SW5zdHJ1Y3Rpb25JbmRleGVzLFxufSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICcuLi9iYXNlQ29pbic7XG5pbXBvcnQgeyBOb3RTdXBwb3J0ZWQsIFBhcnNlVHJhbnNhY3Rpb25FcnJvciwgVXRpbHNFcnJvciB9IGZyb20gJy4uL2Jhc2VDb2luL2Vycm9ycyc7XG5pbXBvcnQgeyBWYWxpZEluc3RydWN0aW9uVHlwZXMgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCBuYWNsIGZyb20gJ3R3ZWV0bmFjbCc7XG5cbmNvbnN0IERFQ09ERURfQkxPQ0tfSEFTSF9MRU5HVEggPSAzMjsgLy8gaHR0cHM6Ly9kb2NzLnNvbGFuYS5jb20vZGV2ZWxvcGluZy9wcm9ncmFtbWluZy1tb2RlbC90cmFuc2FjdGlvbnMjYmxvY2toYXNoLWZvcm1hdFxuY29uc3QgREVDT0RFRF9BRERSRVNTX0xFTkdUSCA9IDMyOyAvLyBodHRwczovL2RvY3Muc29sYW5hLmNvbS9kZXZlbG9waW5nL3Byb2dyYW1taW5nLW1vZGVsL3RyYW5zYWN0aW9ucyNhY2NvdW50LWFkZHJlc3MtZm9ybWF0XG5jb25zdCBERUNPREVEX1NJR05BVFVSRV9MRU5HVEggPSA2NDsgLy8gaHR0cHM6Ly9kb2NzLnNvbGFuYS5jb20vdGVybWlub2xvZ3kjc2lnbmF0dXJlXG5jb25zdCBCQVNFXzU4X0VOQ09ORElOR19SRUdFWCA9ICdbMS05QS1ISi1OUC1aYS1rbS16XSc7XG5cbi8qKiBAaW5oZXJpdGRvYyAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gaXNWYWxpZFB1YmxpY0tleShhZGRyZXNzKTtcbn1cblxuLyoqIEBpbmhlcml0ZG9jICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEJsb2NrSWQoaGFzaDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIChcbiAgICAgICEhaGFzaCAmJiBuZXcgUmVnRXhwKEJBU0VfNThfRU5DT05ESU5HX1JFR0VYKS50ZXN0KGhhc2gpICYmIGJzNTguZGVjb2RlKGhhc2gpLmxlbmd0aCA9PT0gREVDT0RFRF9CTE9DS19IQVNIX0xFTkdUSFxuICAgICk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqIEBpbmhlcml0ZG9jICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFByaXZhdGVLZXkocHJ2S2V5OiBzdHJpbmcgfCBVaW50OEFycmF5KTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgY29uc3Qga2V5OiBVaW50OEFycmF5ID0gdHlwZW9mIHBydktleSA9PT0gJ3N0cmluZycgPyB0aGlzLmJhc2U1OFRvVWludDhBcnJheShwcnZLZXkpIDogcHJ2S2V5O1xuICAgIHJldHVybiAhIUtleXBhaXIuZnJvbVNlY3JldEtleShrZXkpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKiBAaW5oZXJpdGRvYyAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRQdWJsaWNLZXkocHViS2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gKFxuICAgICAgISFwdWJLZXkgJiZcbiAgICAgIG5ldyBSZWdFeHAoQkFTRV81OF9FTkNPTkRJTkdfUkVHRVgpLnRlc3QocHViS2V5KSAmJlxuICAgICAgYnM1OC5kZWNvZGUocHViS2V5KS5sZW5ndGggPT09IERFQ09ERURfQUREUkVTU19MRU5HVEggJiZcbiAgICAgIFB1YmxpY0tleS5pc09uQ3VydmUobmV3IFB1YmxpY0tleShwdWJLZXkpLnRvQnVmZmVyKCkpXG4gICAgKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKiogQGluaGVyaXRkb2MgKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkU2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuICEhc2lnbmF0dXJlICYmIGJzNTguZGVjb2RlKHNpZ25hdHVyZSkubGVuZ3RoID09PSBERUNPREVEX1NJR05BVFVSRV9MRU5HVEg7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqIEBpbmhlcml0ZG9jICovXG4vLyBUcmFuc2FjdGlvbklkIGFyZSB0aGUgZmlyc3Qgc2lnbmF0dXJlIG9uIGEgVHJhbnNhY3Rpb25cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkVHJhbnNhY3Rpb25JZCh0eElkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHRoaXMuaXNWYWxpZFNpZ25hdHVyZSh0eElkKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBhbW91bnQgb2YgbGFtcG9ydHMgbnVtYmVyXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGFtb3VudCAtIHRoZSBzdHJpbmcgdG8gdmFsaWRhdGVcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIHRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEFtb3VudChhbW91bnQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBiaWdOdW1iZXJBbW91bnQgPSBuZXcgQmlnTnVtYmVyKGFtb3VudCk7XG4gIHJldHVybiBiaWdOdW1iZXJBbW91bnQuaXNJbnRlZ2VyKCkgJiYgYmlnTnVtYmVyQW1vdW50LmlzR3JlYXRlclRoYW5PckVxdWFsVG8oMCk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhpcyBpcyBhIHZhbGlkIG1lbW8gb3Igbm90LlxuICpcbiAqIEBwYXJhbSBtZW1vIC0gdGhlIG1lbW8gc3RyaW5nXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0aGUgdmFsaWRhdGlvbiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRNZW1vKG1lbW86IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gQnVmZmVyLmZyb20obWVtbykubGVuZ3RoIDw9IE1BWF9NRU1PX0xFTkdUSDtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgcmF3IHRyYW5zYWN0aW9uIGNhbiBiZSBkZXNlcmlhbGl6ZWRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcmF3VHJhbnNhY3Rpb24gLSB0cmFuc2FjdGlvbiBpbiBiYXNlNjQgc3RyaW5nIGZvcm1hdFxuICogQHJldHVybnMge2Jvb2xlYW59IC0gdGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGNvbnN0IHR4ID0gU29sVHJhbnNhY3Rpb24uZnJvbShCdWZmZXIuZnJvbShyYXdUcmFuc2FjdGlvbiwgJ2Jhc2U2NCcpKTtcbiAgICB0eC5zZXJpYWxpemUoeyByZXF1aXJlQWxsU2lnbmF0dXJlczogZmFsc2UgfSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBWZXJpZmllcyBpZiBzaWduYXR1cmUgZm9yIG1lc3NhZ2UgaXMgdmFsaWQuXG4gKlxuICogQHBhcmFtIHtCdWZmZXJ9IHNlcmlhbGl6ZWRUeCAtIHR4IGFzIGEgYmFzZTY0IHN0cmluZ1xuICogQHBhcmFtIHtzdHJpbmd9IHNpZ25hdHVyZSAtIHNpZ25hdHVyZSBhcyBhIHN0cmluZ1xuICogQHBhcmFtIHtzdHJpbmd9IHB1YmxpY0tleSAtIHB1YmxpYyBrZXkgYXMgYmFzZSA1OFxuICogQHJldHVybnMge0Jvb2xlYW59IHRydWUgaWYgc2lnbmF0dXJlIGlzIHZhbGlkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5U2lnbmF0dXJlKHNlcmlhbGl6ZWRUeDogc3RyaW5nLCBzaWduYXR1cmU6IHN0cmluZywgcHVibGljS2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKCFpc1ZhbGlkUmF3VHJhbnNhY3Rpb24oc2VyaWFsaXplZFR4KSkge1xuICAgIHRocm93IG5ldyBVdGlsc0Vycm9yKCdJbnZhbGlkIHNlcmlhbGl6ZWRUeCcpO1xuICB9XG4gIGlmICghaXNWYWxpZFB1YmxpY0tleShwdWJsaWNLZXkpKSB7XG4gICAgdGhyb3cgbmV3IFV0aWxzRXJyb3IoJ0ludmFsaWQgcHVibGljS2V5Jyk7XG4gIH1cbiAgaWYgKCFpc1ZhbGlkU2lnbmF0dXJlKHNpZ25hdHVyZSkpIHtcbiAgICB0aHJvdyBuZXcgVXRpbHNFcnJvcignSW52YWxpZCBzaWduYXR1cmUnKTtcbiAgfVxuICBjb25zdCBtc2cgPSBTb2xUcmFuc2FjdGlvbi5mcm9tKEJ1ZmZlci5mcm9tKHNlcmlhbGl6ZWRUeCwgJ2Jhc2U2NCcpKS5zZXJpYWxpemVNZXNzYWdlKCk7XG4gIGNvbnN0IHNpZyA9IGJhc2U1OFRvVWludDhBcnJheShzaWduYXR1cmUpO1xuICBjb25zdCBwdWIgPSBuZXcgUHVibGljS2V5KHB1YmxpY0tleSk7XG4gIHJldHVybiBuYWNsLnNpZ24uZGV0YWNoZWQudmVyaWZ5KG1zZywgc2lnLCBwdWIudG9CdWZmZXIoKSk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBiYXNlNTggc3RyaW5nIGludG8gYSBVaW50OEFycmF5LlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBpbnB1dCAtIGEgc3RyaW5nIGluIGJhc2U1OFxuICogQHJldHVybnMge1VpbnQ4QXJyYXl9IC0gYW4gVWludDhBcnJheVxuICovXG5leHBvcnQgZnVuY3Rpb24gYmFzZTU4VG9VaW50OEFycmF5KGlucHV0OiBzdHJpbmcpOiBVaW50OEFycmF5IHtcbiAgcmV0dXJuIG5ldyBVaW50OEFycmF5KGJzNTguZGVjb2RlKGlucHV0KSk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBVaW50OEFycmF5IHRvIGEgYmFzZTU4IHN0cmluZy5cbiAqXG4gKiBAcGFyYW0ge1VpbnQ4QXJyYXl9IGlucHV0IC0gYW4gVWludDhBcnJheVxuICogQHJldHVybnMge3N0cmluZ30gLSBhIHN0cmluZyBpbiBiYXNlNThcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFVpbnQ4QXJyYXlUb2Jhc2U1OChpbnB1dDogVWludDhBcnJheSk6IHN0cmluZyB7XG4gIHJldHVybiBiczU4LmVuY29kZShpbnB1dCk7XG59XG5cbi8qKlxuICogQ291bnQgdGhlIGFtb3VudCBvZiBzaWduYXR1cmVzIGFyZSBub3QgbnVsbC5cbiAqXG4gKiBAcGFyYW0ge1NpZ25hdHVyZVB1YmtleVBhaXJbXX0gc2lnbmF0dXJlcyAtIGFuIGFycmF5IG9mIFNpZ25hdHVyZVB1YmtleVBhaXJcbiAqIEByZXR1cm5zIHtudW1iZXJ9IC0gdGhlIGFtb3VudCBvZiB2YWxpZCBzaWduYXR1cmVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb3VudE5vdE51bGxTaWduYXR1cmVzKHNpZ25hdHVyZXM6IFNpZ25hdHVyZVB1YmtleVBhaXJbXSk6IG51bWJlciB7XG4gIHJldHVybiBzaWduYXR1cmVzLmZpbHRlcigoc2lnKSA9PiAhIXNpZy5zaWduYXR1cmUpLmxlbmd0aDtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhbGwgc2lnbmF0dXJlcyBhcmUgY29tcGxldGVkLlxuICpcbiAqIEBwYXJhbSB7U2lnbmF0dXJlUHVia2V5UGFpcltdfSBzaWduYXR1cmVzIC0gc2lnbmF0dXJlc1xuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXF1aXJlc0FsbFNpZ25hdHVyZXMoc2lnbmF0dXJlczogU2lnbmF0dXJlUHVia2V5UGFpcltdKTogYm9vbGVhbiB7XG4gIHJldHVybiBzaWduYXR1cmVzLmxlbmd0aCA+IDAgJiYgY291bnROb3ROdWxsU2lnbmF0dXJlcyhzaWduYXR1cmVzKSA9PT0gc2lnbmF0dXJlcy5sZW5ndGg7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgdHJhbnNhY3Rpb24gVHlwZSBiYXNlZCBvbiB0aGUgIHRyYW5zYWN0aW9uIGluc3RydWN0aW9ucy5cbiAqIE9ubHkgV2FsbGV0IGluaXRpYWxpemF0aW9uIGFuZCBUcmFuc2ZlciB0cmFuc2FjdGlvbnMgYXJlIHN1cHBvcnRlZC5cbiAqXG4gKiBAcGFyYW0ge1NvbFRyYW5zYWN0aW9ufSB0cmFuc2FjdGlvbiAtIHRoZSBzb2xhbmEgdHJhbnNhY3Rpb25cbiAqIEByZXR1cm5zIHtUcmFuc2FjdGlvblR5cGV9IC0gdGhlIHR5cGUgb2YgdHJhbnNhY3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uVHlwZSh0cmFuc2FjdGlvbjogU29sVHJhbnNhY3Rpb24pOiBUcmFuc2FjdGlvblR5cGUge1xuICBjb25zdCB7IGluc3RydWN0aW9ucyB9ID0gdHJhbnNhY3Rpb247XG4gIHZhbGlkYXRlSW50cnVjdGlvblR5cGVzKGluc3RydWN0aW9ucyk7XG4gIGlmIChcbiAgICBpbnN0cnVjdGlvbnMubGVuZ3RoIDw9IDMgJiZcbiAgICBnZXRJbnN0cnVjdGlvblR5cGUoaW5zdHJ1Y3Rpb25zW3dhbGxldEluaXRJbnN0cnVjdGlvbkluZGV4ZXMuQ3JlYXRlXSkgPT09IFZhbGlkSW5zdHJ1Y3Rpb25UeXBlc0VudW0uQ3JlYXRlICYmXG4gICAgZ2V0SW5zdHJ1Y3Rpb25UeXBlKGluc3RydWN0aW9uc1t3YWxsZXRJbml0SW5zdHJ1Y3Rpb25JbmRleGVzLkluaXRpYWxpemVOb25jZV0pID09PVxuICAgICAgVmFsaWRJbnN0cnVjdGlvblR5cGVzRW51bS5Jbml0aWFsaXplTm9uY2VBY2NvdW50XG4gICkge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb247XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TZW5kO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgYSBpbnN0cnVjdGlvbiBUeXBlIGJhc2VkIG9uIHRoZSBzb2xhbmEgaW5zdHJ1Y3Rpb25zLlxuICogVGhyb3dzIGlmIHRoZSBzb2xhbmEgaW5zdHJ1Y3Rpb24gcHJvZ3JhbSBpcyBub3Qgc3VwcG9ydGVkXG4gKlxuICogQHBhcmFtIHtUcmFuc2FjdGlvbkluc3RydWN0aW9ufSBpbnN0cnVjdGlvbiAtIGEgc29sYW5hIGluc3RydWN0aW9uXG4gKiBAcmV0dXJucyB7VmFsaWRJbnN0cnVjdGlvblR5cGVzfSAtIGEgIHNvbGFuYSBpbnN0cnVjdGlvbiB0eXBlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnN0cnVjdGlvblR5cGUoaW5zdHJ1Y3Rpb246IFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb24pOiBWYWxpZEluc3RydWN0aW9uVHlwZXMge1xuICBzd2l0Y2ggKGluc3RydWN0aW9uLnByb2dyYW1JZC50b1N0cmluZygpKSB7XG4gICAgY2FzZSBuZXcgUHVibGljS2V5KE1FTU9fUFJPR1JBTV9QSykudG9TdHJpbmcoKTpcbiAgICAgIHJldHVybiAnTWVtbyc7XG4gICAgY2FzZSBTeXN0ZW1Qcm9ncmFtLnByb2dyYW1JZC50b1N0cmluZygpOlxuICAgICAgcmV0dXJuIFN5c3RlbUluc3RydWN0aW9uLmRlY29kZUluc3RydWN0aW9uVHlwZShpbnN0cnVjdGlvbik7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBOb3RTdXBwb3J0ZWQoXG4gICAgICAgICdJbnZhbGlkIHRyYW5zYWN0aW9uLCBpbnN0cnVjdGlvbiBwcm9ncmFtIGlkIG5vdCBzdXBwb3J0ZWQ6ICcgKyBpbnN0cnVjdGlvbi5wcm9ncmFtSWQudG9TdHJpbmcoKSxcbiAgICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSBzb2xhbmEgaW5zdHJ1Y3Rpb25zIHR5cGVzIHRvIHNlZSBpZiB0aGV5IGFyZSBzdXBwb3J0ZWQgYnkgdGhlIGJ1aWxkZXIuXG4gKiBUaHJvd3MgaWYgdGhlIGluc3RydWN0aW9uIHR5cGUgaXMgaW52YWxpZC5cbiAqXG4gKiBAcGFyYW0ge1RyYW5zYWN0aW9uSW5zdHJ1Y3Rpb259IGluc3RydWN0aW9uIC0gYSBzb2xhbmEgaW5zdHJ1Y3Rpb25cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVJbnRydWN0aW9uVHlwZXMoaW5zdHJ1Y3Rpb25zOiBUcmFuc2FjdGlvbkluc3RydWN0aW9uW10pOiB2b2lkIHtcbiAgZm9yIChjb25zdCBpbnN0cnVjdGlvbiBvZiBpbnN0cnVjdGlvbnMpIHtcbiAgICBpZiAoIVZBTElEX1NZU1RFTV9JTlNUUlVDVElPTl9UWVBFUy5pbmNsdWRlcyhnZXRJbnN0cnVjdGlvblR5cGUoaW5zdHJ1Y3Rpb24pKSkge1xuICAgICAgdGhyb3cgbmV3IE5vdFN1cHBvcnRlZCgnSW52YWxpZCB0cmFuc2FjdGlvbiwgaW5zdHJ1Y3Rpb24gdHlwZSBub3Qgc3VwcG9ydGVkOiAnICsgZ2V0SW5zdHJ1Y3Rpb25UeXBlKGluc3RydWN0aW9uKSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQ2hlY2sgdGhlIHJhdyB0cmFuc2FjdGlvbiBoYXMgYSB2YWxpZCBmb3JtYXQgaW4gdGhlIGJsb2NrY2hhaW4gY29udGV4dCwgdGhyb3cgb3RoZXJ3aXNlLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSByYXdUcmFuc2FjdGlvbiAtIFRyYW5zYWN0aW9uIGluIGJhc2U2NCBzdHJpbmcgIGZvcm1hdFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gIGlmICghcmF3VHJhbnNhY3Rpb24pIHtcbiAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHJhdyB0cmFuc2FjdGlvbjogVW5kZWZpbmVkJyk7XG4gIH1cbiAgaWYgKCFpc1ZhbGlkUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pKSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCByYXcgdHJhbnNhY3Rpb24nKTtcbiAgfVxufVxuIl19
@@ -1,19 +1,26 @@
1
1
  import { BaseCoin as CoinConfig } from '@bitgo/statics';
2
- import { BaseKey } from '../baseCoin/iface';
3
2
  import { Transaction } from './transaction';
4
3
  import { TransactionBuilder } from './transactionBuilder';
5
- import { Transaction as SolTransaction } from '@solana/web3.js';
6
4
  import { TransactionType } from '../baseCoin';
7
5
  export declare class WalletInitializationBuilder extends TransactionBuilder {
6
+ private _nonceAddress;
7
+ private _amount;
8
8
  constructor(_coinConfig: Readonly<CoinConfig>);
9
9
  protected get transactionType(): TransactionType;
10
- /** @inheritdoc */
11
- protected buildSolTransaction(): SolTransaction;
10
+ /** @inheritDoc */
11
+ initBuilder(tx: Transaction): void;
12
+ /**
13
+ * Sets the amount to fund the nonce account
14
+ *
15
+ * @param amount amount in lamports to fund the nonce account
16
+ */
17
+ amount(amount: string): this;
18
+ /**
19
+ * Sets the address for the nonce account
20
+ * @param nonceAddress address of the new nonce account
21
+ */
22
+ address(nonceAddress: string): this;
12
23
  /** @inheritdoc */
13
24
  protected buildImplementation(): Promise<Transaction>;
14
- /** @inheritdoc */
15
- protected fromImplementation(rawTransaction: any): Transaction;
16
- /** @inheritdoc */
17
- protected signImplementation(key: BaseKey): Transaction;
18
25
  }
19
26
  //# sourceMappingURL=walletInitializationBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"walletInitializationBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/sol/walletInitializationBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,qBAAa,2BAA4B,SAAQ,kBAAkB;gBACrD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,SAAS,CAAC,mBAAmB,IAAI,cAAc;IAI/C,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAI3D,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,GAAG,GAAG,WAAW;IAI9D,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;CAGxD"}
1
+ {"version":3,"file":"walletInitializationBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/sol/walletInitializationBuilder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAI9C,qBAAa,2BAA4B,SAAQ,kBAAkB;IACjE,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAS;gBAEZ,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAG7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAclC;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAS5B;;;OAGG;IACH,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAUnC,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;CAkB5D"}
@@ -50,11 +50,17 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
50
50
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
51
  }
52
52
  };
53
+ var __importDefault = (this && this.__importDefault) || function (mod) {
54
+ return (mod && mod.__esModule) ? mod : { "default": mod };
55
+ };
53
56
  Object.defineProperty(exports, "__esModule", { value: true });
54
57
  exports.WalletInitializationBuilder = void 0;
58
+ var assert_1 = __importDefault(require("assert"));
55
59
  var errors_1 = require("../baseCoin/errors");
56
60
  var transactionBuilder_1 = require("./transactionBuilder");
61
+ var utils_1 = require("./utils");
57
62
  var baseCoin_1 = require("../baseCoin");
63
+ var constants_1 = require("./constants");
58
64
  var WalletInitializationBuilder = /** @class */ (function (_super) {
59
65
  __extends(WalletInitializationBuilder, _super);
60
66
  function WalletInitializationBuilder(_coinConfig) {
@@ -67,27 +73,69 @@ var WalletInitializationBuilder = /** @class */ (function (_super) {
67
73
  enumerable: false,
68
74
  configurable: true
69
75
  });
70
- /** @inheritdoc */
71
- WalletInitializationBuilder.prototype.buildSolTransaction = function () {
72
- throw new errors_1.NotImplementedError('buildImplementation not implemented');
76
+ /** @inheritDoc */
77
+ WalletInitializationBuilder.prototype.initBuilder = function (tx) {
78
+ _super.prototype.initBuilder.call(this, tx);
79
+ for (var _i = 0, _a = this._instructionsData; _i < _a.length; _i++) {
80
+ var instruction = _a[_i];
81
+ if (instruction.type === constants_1.InstructionBuilderTypes.CreateNonceAccount) {
82
+ var walletInitInstruction = instruction;
83
+ this.address(walletInitInstruction.params.nonceAddress);
84
+ this.amount(walletInitInstruction.params.amount);
85
+ this.sender(walletInitInstruction.params.authAddress);
86
+ }
87
+ }
88
+ };
89
+ /**
90
+ * Sets the amount to fund the nonce account
91
+ *
92
+ * @param amount amount in lamports to fund the nonce account
93
+ */
94
+ WalletInitializationBuilder.prototype.amount = function (amount) {
95
+ if (!amount || !utils_1.isValidAmount(amount)) {
96
+ throw new errors_1.BuildTransactionError('Invalid or missing amount, got: ' + amount);
97
+ }
98
+ this._amount = amount;
99
+ return this;
100
+ };
101
+ /**
102
+ * Sets the address for the nonce account
103
+ * @param nonceAddress address of the new nonce account
104
+ */
105
+ WalletInitializationBuilder.prototype.address = function (nonceAddress) {
106
+ if (!nonceAddress || !utils_1.isValidPublicKey(nonceAddress)) {
107
+ throw new errors_1.BuildTransactionError('Invalid or missing nonceAddress, got: ' + nonceAddress);
108
+ }
109
+ this._nonceAddress = nonceAddress;
110
+ return this;
73
111
  };
74
112
  /** @inheritdoc */
75
113
  WalletInitializationBuilder.prototype.buildImplementation = function () {
76
114
  return __awaiter(this, void 0, void 0, function () {
115
+ var walletInitData;
77
116
  return __generator(this, function (_a) {
78
- throw new errors_1.NotImplementedError('buildImplementation not implemented');
117
+ switch (_a.label) {
118
+ case 0:
119
+ assert_1.default(this._sender, 'Sender must be set before building the transaction');
120
+ assert_1.default(this._amount, 'Amount must be set before building the transaction');
121
+ assert_1.default(this._nonceAddress, 'Nonce Address must be set before building the transaction');
122
+ walletInitData = {
123
+ type: constants_1.InstructionBuilderTypes.CreateNonceAccount,
124
+ params: {
125
+ fromAddress: this._sender,
126
+ nonceAddress: this._nonceAddress,
127
+ authAddress: this._sender,
128
+ amount: this._amount,
129
+ },
130
+ };
131
+ this._instructionsData = [walletInitData];
132
+ return [4 /*yield*/, _super.prototype.buildImplementation.call(this)];
133
+ case 1: return [2 /*return*/, _a.sent()];
134
+ }
79
135
  });
80
136
  });
81
137
  };
82
- /** @inheritdoc */
83
- WalletInitializationBuilder.prototype.fromImplementation = function (rawTransaction) {
84
- throw new errors_1.NotImplementedError('fromImplementation not implemented');
85
- };
86
- /** @inheritdoc */
87
- WalletInitializationBuilder.prototype.signImplementation = function (key) {
88
- throw new errors_1.NotImplementedError('signImplementation not implemented');
89
- };
90
138
  return WalletInitializationBuilder;
91
139
  }(transactionBuilder_1.TransactionBuilder));
92
140
  exports.WalletInitializationBuilder = WalletInitializationBuilder;
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vc29sL3dhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSw2Q0FBeUQ7QUFFekQsMkRBQTBEO0FBRTFELHdDQUE4QztBQUU5QztJQUFpRCwrQ0FBa0I7SUFDakUscUNBQVksV0FBaUM7ZUFDM0Msa0JBQU0sV0FBVyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxzQkFBYyx3REFBZTthQUE3QjtZQUNFLE9BQU8sMEJBQWUsQ0FBQyxvQkFBb0IsQ0FBQztRQUM5QyxDQUFDOzs7T0FBQTtJQUVELGtCQUFrQjtJQUNSLHlEQUFtQixHQUE3QjtRQUNFLE1BQU0sSUFBSSw0QkFBbUIsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxrQkFBa0I7SUFDRix5REFBbUIsR0FBbkM7OztnQkFDRSxNQUFNLElBQUksNEJBQW1CLENBQUMscUNBQXFDLENBQUMsQ0FBQzs7O0tBQ3RFO0lBRUQsa0JBQWtCO0lBQ1Isd0RBQWtCLEdBQTVCLFVBQTZCLGNBQW1CO1FBQzlDLE1BQU0sSUFBSSw0QkFBbUIsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxrQkFBa0I7SUFDUix3REFBa0IsR0FBNUIsVUFBNkIsR0FBWTtRQUN2QyxNQUFNLElBQUksNEJBQW1CLENBQUMsb0NBQW9DLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBQ0gsa0NBQUM7QUFBRCxDQUFDLEFBNUJELENBQWlELHVDQUFrQixHQTRCbEU7QUE1Qlksa0VBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IEJhc2VLZXkgfSBmcm9tICcuLi9iYXNlQ29pbi9pZmFjZSc7XG5pbXBvcnQgeyBOb3RJbXBsZW1lbnRlZEVycm9yIH0gZnJvbSAnLi4vYmFzZUNvaW4vZXJyb3JzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiBhcyBTb2xUcmFuc2FjdGlvbiB9IGZyb20gJ0Bzb2xhbmEvd2ViMy5qcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICcuLi9iYXNlQ29pbic7XG5cbmV4cG9ydCBjbGFzcyBXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGJ1aWxkU29sVHJhbnNhY3Rpb24oKTogU29sVHJhbnNhY3Rpb24ge1xuICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCdidWlsZEltcGxlbWVudGF0aW9uIG5vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcignYnVpbGRJbXBsZW1lbnRhdGlvbiBub3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBhbnkpOiBUcmFuc2FjdGlvbiB7XG4gICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoJ2Zyb21JbXBsZW1lbnRhdGlvbiBub3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2lnbkltcGxlbWVudGF0aW9uKGtleTogQmFzZUtleSk6IFRyYW5zYWN0aW9uIHtcbiAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcignc2lnbkltcGxlbWVudGF0aW9uIG5vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG59XG4iXX0=
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vc29sL3dhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBNEI7QUFHNUIsNkNBQTJEO0FBRTNELDJEQUEwRDtBQUMxRCxpQ0FBMEQ7QUFDMUQsd0NBQThDO0FBRTlDLHlDQUFzRDtBQUV0RDtJQUFpRCwrQ0FBa0I7SUFJakUscUNBQVksV0FBaUM7ZUFDM0Msa0JBQU0sV0FBVyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxzQkFBYyx3REFBZTthQUE3QjtZQUNFLE9BQU8sMEJBQWUsQ0FBQyxvQkFBb0IsQ0FBQztRQUM5QyxDQUFDOzs7T0FBQTtJQUVELGtCQUFrQjtJQUNsQixpREFBVyxHQUFYLFVBQVksRUFBZTtRQUN6QixpQkFBTSxXQUFXLFlBQUMsRUFBRSxDQUFDLENBQUM7UUFFdEIsS0FBMEIsVUFBc0IsRUFBdEIsS0FBQSxJQUFJLENBQUMsaUJBQWlCLEVBQXRCLGNBQXNCLEVBQXRCLElBQXNCLEVBQUU7WUFBN0MsSUFBTSxXQUFXLFNBQUE7WUFDcEIsSUFBSSxXQUFXLENBQUMsSUFBSSxLQUFLLG1DQUF1QixDQUFDLGtCQUFrQixFQUFFO2dCQUNuRSxJQUFNLHFCQUFxQixHQUFlLFdBQVcsQ0FBQztnQkFFdEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ3hELElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNqRCxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUN2RDtTQUNGO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCw0Q0FBTSxHQUFOLFVBQU8sTUFBYztRQUNuQixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMscUJBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNyQyxNQUFNLElBQUksOEJBQXFCLENBQUMsa0NBQWtDLEdBQUcsTUFBTSxDQUFDLENBQUM7U0FDOUU7UUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCw2Q0FBTyxHQUFQLFVBQVEsWUFBb0I7UUFDMUIsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLHdCQUFnQixDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3BELE1BQU0sSUFBSSw4QkFBcUIsQ0FBQyx3Q0FBd0MsR0FBRyxZQUFZLENBQUMsQ0FBQztTQUMxRjtRQUVELElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1FBRWxDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtCQUFrQjtJQUNGLHlEQUFtQixHQUFuQzs7Ozs7O3dCQUNFLGdCQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxvREFBb0QsQ0FBQyxDQUFDO3dCQUMzRSxnQkFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsb0RBQW9ELENBQUMsQ0FBQzt3QkFDM0UsZ0JBQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLDJEQUEyRCxDQUFDLENBQUM7d0JBRWxGLGNBQWMsR0FBZTs0QkFDakMsSUFBSSxFQUFFLG1DQUF1QixDQUFDLGtCQUFrQjs0QkFDaEQsTUFBTSxFQUFFO2dDQUNOLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTztnQ0FDekIsWUFBWSxFQUFFLElBQUksQ0FBQyxhQUFhO2dDQUNoQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0NBQ3pCLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTzs2QkFDckI7eUJBQ0YsQ0FBQzt3QkFDRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQzt3QkFFbkMscUJBQU0saUJBQU0sbUJBQW1CLFdBQUUsRUFBQTs0QkFBeEMsc0JBQU8sU0FBaUMsRUFBQzs7OztLQUMxQztJQUNILGtDQUFDO0FBQUQsQ0FBQyxBQXpFRCxDQUFpRCx1Q0FBa0IsR0F5RWxFO0FBekVZLGtFQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciB9IGZyb20gJy4uL2Jhc2VDb2luL2Vycm9ycyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgaXNWYWxpZEFtb3VudCwgaXNWYWxpZFB1YmxpY0tleSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgV2FsbGV0SW5pdCB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBXYWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcml2YXRlIF9ub25jZUFkZHJlc3M6IHN0cmluZztcbiAgcHJpdmF0ZSBfYW1vdW50OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5XYWxsZXRJbml0aWFsaXphdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci5pbml0QnVpbGRlcih0eCk7XG5cbiAgICBmb3IgKGNvbnN0IGluc3RydWN0aW9uIG9mIHRoaXMuX2luc3RydWN0aW9uc0RhdGEpIHtcbiAgICAgIGlmIChpbnN0cnVjdGlvbi50eXBlID09PSBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5DcmVhdGVOb25jZUFjY291bnQpIHtcbiAgICAgICAgY29uc3Qgd2FsbGV0SW5pdEluc3RydWN0aW9uOiBXYWxsZXRJbml0ID0gaW5zdHJ1Y3Rpb247XG5cbiAgICAgICAgdGhpcy5hZGRyZXNzKHdhbGxldEluaXRJbnN0cnVjdGlvbi5wYXJhbXMubm9uY2VBZGRyZXNzKTtcbiAgICAgICAgdGhpcy5hbW91bnQod2FsbGV0SW5pdEluc3RydWN0aW9uLnBhcmFtcy5hbW91bnQpO1xuICAgICAgICB0aGlzLnNlbmRlcih3YWxsZXRJbml0SW5zdHJ1Y3Rpb24ucGFyYW1zLmF1dGhBZGRyZXNzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgYW1vdW50IHRvIGZ1bmQgdGhlIG5vbmNlIGFjY291bnRcbiAgICpcbiAgICogQHBhcmFtIGFtb3VudCBhbW91bnQgaW4gbGFtcG9ydHMgdG8gZnVuZCB0aGUgbm9uY2UgYWNjb3VudFxuICAgKi9cbiAgYW1vdW50KGFtb3VudDogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKCFhbW91bnQgfHwgIWlzVmFsaWRBbW91bnQoYW1vdW50KSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBvciBtaXNzaW5nIGFtb3VudCwgZ290OiAnICsgYW1vdW50KTtcbiAgICB9XG5cbiAgICB0aGlzLl9hbW91bnQgPSBhbW91bnQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgYWRkcmVzcyBmb3IgdGhlIG5vbmNlIGFjY291bnRcbiAgICogQHBhcmFtIG5vbmNlQWRkcmVzcyBhZGRyZXNzIG9mIHRoZSBuZXcgbm9uY2UgYWNjb3VudFxuICAgKi9cbiAgYWRkcmVzcyhub25jZUFkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICghbm9uY2VBZGRyZXNzIHx8ICFpc1ZhbGlkUHVibGljS2V5KG5vbmNlQWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgb3IgbWlzc2luZyBub25jZUFkZHJlc3MsIGdvdDogJyArIG5vbmNlQWRkcmVzcyk7XG4gICAgfVxuXG4gICAgdGhpcy5fbm9uY2VBZGRyZXNzID0gbm9uY2VBZGRyZXNzO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIGFzc2VydCh0aGlzLl9zZW5kZXIsICdTZW5kZXIgbXVzdCBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvbicpO1xuICAgIGFzc2VydCh0aGlzLl9hbW91bnQsICdBbW91bnQgbXVzdCBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvbicpO1xuICAgIGFzc2VydCh0aGlzLl9ub25jZUFkZHJlc3MsICdOb25jZSBBZGRyZXNzIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nKTtcblxuICAgIGNvbnN0IHdhbGxldEluaXREYXRhOiBXYWxsZXRJbml0ID0ge1xuICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuQ3JlYXRlTm9uY2VBY2NvdW50LFxuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIGZyb21BZGRyZXNzOiB0aGlzLl9zZW5kZXIsXG4gICAgICAgIG5vbmNlQWRkcmVzczogdGhpcy5fbm9uY2VBZGRyZXNzLFxuICAgICAgICBhdXRoQWRkcmVzczogdGhpcy5fc2VuZGVyLFxuICAgICAgICBhbW91bnQ6IHRoaXMuX2Ftb3VudCxcbiAgICAgIH0sXG4gICAgfTtcbiAgICB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhID0gW3dhbGxldEluaXREYXRhXTtcblxuICAgIHJldHVybiBhd2FpdCBzdXBlci5idWlsZEltcGxlbWVudGF0aW9uKCk7XG4gIH1cbn1cbiJdfQ==
@@ -31,6 +31,8 @@ import * as Algo from './coin/algo';
31
31
  export { Algo };
32
32
  import * as Sol from './coin/sol';
33
33
  export { Sol };
34
+ import * as Dot from './coin/dot';
35
+ export { Dot };
34
36
  /**
35
37
  * Get the list of coin tickers supported by this library.
36
38
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG/D,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,CAAC;AAGlB,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEpB,OAAO,KAAK,GAAG,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,CAAC;AAEf,OAAO,KAAK,GAAG,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,CAAC;AAEf,OAAO,KAAK,GAAG,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,CAAC;AAEf,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,OAAO,KAAK,GAAG,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,CAAC;AAEf,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,OAAO,KAAK,GAAG,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,CAAC;AAEf,OAAO,KAAK,GAAG,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,CAAC;AAEf,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,OAAO,KAAK,GAAG,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,CAAC;AAgCf;;GAEG;AACH,eAAO,MAAM,cAAc,UAA8B,CAAC;AAE1D;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,WAAW,CAO3E;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,QAAQ,CAAC,6BAA6B,EACvE,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE;IAAE,KAAK,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;CAAE,GAC7D,CAAC,CAMH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG/D,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,CAAC;AAGlB,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEpB,OAAO,KAAK,GAAG,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,CAAC;AAEf,OAAO,KAAK,GAAG,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,CAAC;AAEf,OAAO,KAAK,GAAG,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,CAAC;AAEf,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,OAAO,KAAK,GAAG,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,CAAC;AAEf,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,OAAO,KAAK,GAAG,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,CAAC;AAEf,OAAO,KAAK,GAAG,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,CAAC;AAEf,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,OAAO,KAAK,GAAG,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,CAAC;AACf,OAAO,KAAK,GAAG,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,GAAG,EAAE,CAAC;AAkCf;;GAEG;AACH,eAAO,MAAM,cAAc,UAA8B,CAAC;AAE1D;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,WAAW,CAO3E;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,QAAQ,CAAC,6BAA6B,EACvE,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE;IAAE,KAAK,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;CAAE,GAC7D,CAAC,CAMH"}
package/dist/src/index.js CHANGED
@@ -19,7 +19,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
19
19
  return result;
20
20
  };
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.register = exports.getBuilder = exports.supportedCoins = exports.Sol = exports.Algo = exports.Stx = exports.Xrp = exports.Cspr = exports.Hbar = exports.Celo = exports.Rbtc = exports.AvaxC = exports.Etc = exports.Eth2 = exports.Eth = exports.Xtz = exports.Trx = exports.BaseCoin = exports.crypto = void 0;
22
+ exports.register = exports.getBuilder = exports.supportedCoins = exports.Dot = exports.Sol = exports.Algo = exports.Stx = exports.Xrp = exports.Cspr = exports.Hbar = exports.Celo = exports.Rbtc = exports.AvaxC = exports.Etc = exports.Eth2 = exports.Eth = exports.Xtz = exports.Trx = exports.BaseCoin = exports.crypto = void 0;
23
23
  var statics_1 = require("@bitgo/statics");
24
24
  var errors_1 = require("./coin/baseCoin/errors");
25
25
  var crypto = __importStar(require("./utils/crypto"));
@@ -55,6 +55,8 @@ var Algo = __importStar(require("./coin/algo"));
55
55
  exports.Algo = Algo;
56
56
  var Sol = __importStar(require("./coin/sol"));
57
57
  exports.Sol = Sol;
58
+ var Dot = __importStar(require("./coin/dot"));
59
+ exports.Dot = Dot;
58
60
  var coinBuilderMap = {
59
61
  trx: Trx.WrappedBuilder,
60
62
  ttrx: Trx.WrappedBuilder,
@@ -83,6 +85,8 @@ var coinBuilderMap = {
83
85
  talgo: Algo.TransactionBuilderFactory,
84
86
  sol: Sol.TransactionBuilderFactory,
85
87
  tsol: Sol.TransactionBuilderFactory,
88
+ dot: Dot.TransactionBuilderFactory,
89
+ tdot: Dot.TransactionBuilderFactory,
86
90
  };
87
91
  /**
88
92
  * Get the list of coin tickers supported by this library.
@@ -117,4 +121,4 @@ function register(coinName, builderFactory) {
117
121
  return factory;
118
122
  }
119
123
  exports.register = register;
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBDQUErRDtBQUMvRCxpREFBK0Q7QUFFL0QscURBQXlDO0FBQ2hDLHdCQUFNO0FBRWYsUUFBUTtBQUNSLHdEQUE0QztBQUNuQyw0QkFBUTtBQUVqQiw4Q0FBa0M7QUFDekIsa0JBQUc7QUFFWiw4Q0FBa0M7QUFDekIsa0JBQUc7QUFFWiw4Q0FBa0M7QUFDekIsa0JBQUc7QUFFWixnREFBb0M7QUFDM0Isb0JBQUk7QUFFYiw4Q0FBa0M7QUFDekIsa0JBQUc7QUFFWixrREFBc0M7QUFDN0Isc0JBQUs7QUFFZCxnREFBb0M7QUFDM0Isb0JBQUk7QUFFYixnREFBb0M7QUFDM0Isb0JBQUk7QUFFYixnREFBb0M7QUFDM0Isb0JBQUk7QUFFYixnREFBb0M7QUFDM0Isb0JBQUk7QUFFYiw4Q0FBa0M7QUFDekIsa0JBQUc7QUFFWiw4Q0FBa0M7QUFDekIsa0JBQUc7QUFFWixnREFBb0M7QUFDM0Isb0JBQUk7QUFFYiw4Q0FBa0M7QUFDekIsa0JBQUc7QUFFWixJQUFNLGNBQWMsR0FBRztJQUNyQixHQUFHLEVBQUUsR0FBRyxDQUFDLGNBQWM7SUFDdkIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxjQUFjO0lBQ3hCLEdBQUcsRUFBRSxHQUFHLENBQUMsa0JBQWtCO0lBQzNCLElBQUksRUFBRSxHQUFHLENBQUMsa0JBQWtCO0lBQzVCLEdBQUcsRUFBRSxHQUFHLENBQUMsa0JBQWtCO0lBQzNCLElBQUksRUFBRSxHQUFHLENBQUMsa0JBQWtCO0lBQzVCLEdBQUcsRUFBRSxHQUFHLENBQUMsa0JBQWtCO0lBQzNCLElBQUksRUFBRSxHQUFHLENBQUMsa0JBQWtCO0lBQzVCLEtBQUssRUFBRSxHQUFHLENBQUMsa0JBQWtCO0lBQzdCLElBQUksRUFBRSxJQUFJLENBQUMsa0JBQWtCO0lBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCO0lBQzlCLElBQUksRUFBRSxJQUFJLENBQUMsa0JBQWtCO0lBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCO0lBQzlCLEtBQUssRUFBRSxLQUFLLENBQUMsa0JBQWtCO0lBQy9CLE1BQU0sRUFBRSxLQUFLLENBQUMsa0JBQWtCO0lBQ2hDLElBQUksRUFBRSxJQUFJLENBQUMseUJBQXlCO0lBQ3BDLEtBQUssRUFBRSxJQUFJLENBQUMseUJBQXlCO0lBQ3JDLElBQUksRUFBRSxJQUFJLENBQUMseUJBQXlCO0lBQ3BDLEtBQUssRUFBRSxJQUFJLENBQUMseUJBQXlCO0lBQ3JDLEdBQUcsRUFBRSxHQUFHLENBQUMseUJBQXlCO0lBQ2xDLElBQUksRUFBRSxHQUFHLENBQUMseUJBQXlCO0lBQ25DLEdBQUcsRUFBRSxHQUFHLENBQUMseUJBQXlCO0lBQ2xDLElBQUksRUFBRSxHQUFHLENBQUMseUJBQXlCO0lBQ25DLElBQUksRUFBRSxJQUFJLENBQUMseUJBQXlCO0lBQ3BDLEtBQUssRUFBRSxJQUFJLENBQUMseUJBQXlCO0lBQ3JDLEdBQUcsRUFBRSxHQUFHLENBQUMseUJBQXlCO0lBQ2xDLElBQUksRUFBRSxHQUFHLENBQUMseUJBQXlCO0NBQ3BDLENBQUM7QUFFRjs7R0FFRztBQUNVLFFBQUEsY0FBYyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7QUFFMUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixVQUFVLENBQUMsUUFBZ0I7SUFDekMsSUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlDLElBQUksQ0FBQyxZQUFZLEVBQUU7UUFDakIsTUFBTSxJQUFJLDhCQUFxQixDQUFDLFVBQVEsUUFBUSxtQkFBZ0IsQ0FBQyxDQUFDO0tBQ25FO0lBRUQsT0FBTyxJQUFJLFlBQVksQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQVBELGdDQU9DO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsUUFBUSxDQUN0QixRQUFnQixFQUNoQixjQUE4RDtJQUU5RCxJQUFNLFVBQVUsR0FBRyxlQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLElBQU0sT0FBTyxHQUFHLElBQUksY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQy9DLHNDQUFzQztJQUN0QyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsY0FBYyxDQUFDLENBQUMsZ0ZBQWdGO0lBQzNILE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFURCw0QkFTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvaW5zLCBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgQnVpbGRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnLi9jb2luL2Jhc2VDb2luL2Vycm9ycyc7XG5cbmltcG9ydCAqIGFzIGNyeXB0byBmcm9tICcuL3V0aWxzL2NyeXB0byc7XG5leHBvcnQgeyBjcnlwdG8gfTtcblxuLy8gY29pbnNcbmltcG9ydCAqIGFzIEJhc2VDb2luIGZyb20gJy4vY29pbi9iYXNlQ29pbic7XG5leHBvcnQgeyBCYXNlQ29pbiB9O1xuXG5pbXBvcnQgKiBhcyBUcnggZnJvbSAnLi9jb2luL3RyeCc7XG5leHBvcnQgeyBUcnggfTtcblxuaW1wb3J0ICogYXMgWHR6IGZyb20gJy4vY29pbi94dHonO1xuZXhwb3J0IHsgWHR6IH07XG5cbmltcG9ydCAqIGFzIEV0aCBmcm9tICcuL2NvaW4vZXRoJztcbmV4cG9ydCB7IEV0aCB9O1xuXG5pbXBvcnQgKiBhcyBFdGgyIGZyb20gJy4vY29pbi9ldGgyJztcbmV4cG9ydCB7IEV0aDIgfTtcblxuaW1wb3J0ICogYXMgRXRjIGZyb20gJy4vY29pbi9ldGMnO1xuZXhwb3J0IHsgRXRjIH07XG5cbmltcG9ydCAqIGFzIEF2YXhDIGZyb20gJy4vY29pbi9hdmF4Yyc7XG5leHBvcnQgeyBBdmF4QyB9O1xuXG5pbXBvcnQgKiBhcyBSYnRjIGZyb20gJy4vY29pbi9yYnRjJztcbmV4cG9ydCB7IFJidGMgfTtcblxuaW1wb3J0ICogYXMgQ2VsbyBmcm9tICcuL2NvaW4vY2Vsbyc7XG5leHBvcnQgeyBDZWxvIH07XG5cbmltcG9ydCAqIGFzIEhiYXIgZnJvbSAnLi9jb2luL2hiYXInO1xuZXhwb3J0IHsgSGJhciB9O1xuXG5pbXBvcnQgKiBhcyBDc3ByIGZyb20gJy4vY29pbi9jc3ByJztcbmV4cG9ydCB7IENzcHIgfTtcblxuaW1wb3J0ICogYXMgWHJwIGZyb20gJy4vY29pbi94cnAnO1xuZXhwb3J0IHsgWHJwIH07XG5cbmltcG9ydCAqIGFzIFN0eCBmcm9tICcuL2NvaW4vc3R4JztcbmV4cG9ydCB7IFN0eCB9O1xuXG5pbXBvcnQgKiBhcyBBbGdvIGZyb20gJy4vY29pbi9hbGdvJztcbmV4cG9ydCB7IEFsZ28gfTtcblxuaW1wb3J0ICogYXMgU29sIGZyb20gJy4vY29pbi9zb2wnO1xuZXhwb3J0IHsgU29sIH07XG5cbmNvbnN0IGNvaW5CdWlsZGVyTWFwID0ge1xuICB0cng6IFRyeC5XcmFwcGVkQnVpbGRlcixcbiAgdHRyeDogVHJ4LldyYXBwZWRCdWlsZGVyLFxuICB4dHo6IFh0ei5UcmFuc2FjdGlvbkJ1aWxkZXIsXG4gIHR4dHo6IFh0ei5UcmFuc2FjdGlvbkJ1aWxkZXIsXG4gIGV0YzogRXRjLlRyYW5zYWN0aW9uQnVpbGRlcixcbiAgdGV0YzogRXRjLlRyYW5zYWN0aW9uQnVpbGRlcixcbiAgZXRoOiBFdGguVHJhbnNhY3Rpb25CdWlsZGVyLFxuICB0ZXRoOiBFdGguVHJhbnNhY3Rpb25CdWlsZGVyLFxuICBndGV0aDogRXRoLlRyYW5zYWN0aW9uQnVpbGRlcixcbiAgcmJ0YzogUmJ0Yy5UcmFuc2FjdGlvbkJ1aWxkZXIsXG4gIHRyYnRjOiBSYnRjLlRyYW5zYWN0aW9uQnVpbGRlcixcbiAgY2VsbzogQ2Vsby5UcmFuc2FjdGlvbkJ1aWxkZXIsXG4gIHRjZWxvOiBDZWxvLlRyYW5zYWN0aW9uQnVpbGRlcixcbiAgYXZheGM6IEF2YXhDLlRyYW5zYWN0aW9uQnVpbGRlcixcbiAgdGF2YXhjOiBBdmF4Qy5UcmFuc2FjdGlvbkJ1aWxkZXIsXG4gIGhiYXI6IEhiYXIuVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSxcbiAgdGhiYXI6IEhiYXIuVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSxcbiAgY3NwcjogQ3Nwci5UcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LFxuICB0Y3NwcjogQ3Nwci5UcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LFxuICB4cnA6IFhycC5UcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LFxuICB0eHJwOiBYcnAuVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSxcbiAgc3R4OiBTdHguVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSxcbiAgdHN0eDogU3R4LlRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnksXG4gIGFsZ286IEFsZ28uVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSxcbiAgdGFsZ286IEFsZ28uVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSxcbiAgc29sOiBTb2wuVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSxcbiAgdHNvbDogU29sLlRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnksXG59O1xuXG4vKipcbiAqIEdldCB0aGUgbGlzdCBvZiBjb2luIHRpY2tlcnMgc3VwcG9ydGVkIGJ5IHRoaXMgbGlicmFyeS5cbiAqL1xuZXhwb3J0IGNvbnN0IHN1cHBvcnRlZENvaW5zID0gT2JqZWN0LmtleXMoY29pbkJ1aWxkZXJNYXApO1xuXG4vKipcbiAqIEdldCBhIHRyYW5zYWN0aW9uIGJ1aWxkZXIgZm9yIHRoZSBnaXZlbiBjb2luLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBjb2luTmFtZSBPbmUgb2YgdGhlIHtAY29kZSBzdXBwb3J0ZWRDb2luc31cbiAqIEByZXR1cm5zIHthbnl9IEFuIGluc3RhbmNlIG9mIGEge0Bjb2RlIFRyYW5zYWN0aW9uQnVpbGRlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJ1aWxkZXIoY29pbk5hbWU6IHN0cmluZyk6IEJhc2VDb2luLkludGVyZmFjZS5CYXNlQnVpbGRlciB7XG4gIGNvbnN0IGJ1aWxkZXJDbGFzcyA9IGNvaW5CdWlsZGVyTWFwW2NvaW5OYW1lXTtcbiAgaWYgKCFidWlsZGVyQ2xhc3MpIHtcbiAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBDb2luICR7Y29pbk5hbWV9IG5vdCBzdXBwb3J0ZWRgKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgYnVpbGRlckNsYXNzKGNvaW5zLmdldChjb2luTmFtZSkpO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVyIGEgbmV3IGNvaW4gaW5zdGFuY2Ugd2l0aCBpdHMgYnVpbGRlciBmYWN0b3J5XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGNvaW5OYW1lIGNvaW4gbmFtZSBhcyBpdCB3YXMgcmVnaXN0ZXJlZCBpbiBAYml0Z28vc3RhdGljc1xuICogQHBhcmFtIHthbnl9IGJ1aWxkZXJGYWN0b3J5IHRoZSBidWlsZGVyIGZhY3RvcnkgY2xhc3MgZm9yIHRoYXQgY29pblxuICogQHJldHVybnMge2FueX0gdGhlIGZhY3RvcnkgaW5zdGFuY2UgZm9yIHRoZSByZWdpc3RlcmVkIGNvaW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyPFQgZXh0ZW5kcyBCYXNlQ29pbi5CYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeT4oXG4gIGNvaW5OYW1lOiBzdHJpbmcsXG4gIGJ1aWxkZXJGYWN0b3J5OiB7IG5ldyAoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KTogVCB9LFxuKTogVCB7XG4gIGNvbnN0IGNvaW5Db25maWcgPSBjb2lucy5nZXQoY29pbk5hbWUpO1xuICBjb25zdCBmYWN0b3J5ID0gbmV3IGJ1aWxkZXJGYWN0b3J5KGNvaW5Db25maWcpO1xuICAvLyBjb2luQnVpbGRlck1hcFtjb2luTmFtZV0gPSBmYWN0b3J5O1xuICBjb2luQnVpbGRlck1hcFtjb2luTmFtZV0gPSBidWlsZGVyRmFjdG9yeTsgLy8gRm9yIG5vdyByZWdpc3RlciB0aGUgY29uc3RydWN0b3IgZnVuY3Rpb24gdW50aWwgcmVpbXBsZW1lbnQgZ2V0QnVpbGRlciBtZXRob2RcbiAgcmV0dXJuIGZhY3Rvcnk7XG59XG4iXX0=
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBDQUErRDtBQUMvRCxpREFBK0Q7QUFFL0QscURBQXlDO0FBQ2hDLHdCQUFNO0FBRWYsUUFBUTtBQUNSLHdEQUE0QztBQUNuQyw0QkFBUTtBQUVqQiw4Q0FBa0M7QUFDekIsa0JBQUc7QUFFWiw4Q0FBa0M7QUFDekIsa0JBQUc7QUFFWiw4Q0FBa0M7QUFDekIsa0JBQUc7QUFFWixnREFBb0M7QUFDM0Isb0JBQUk7QUFFYiw4Q0FBa0M7QUFDekIsa0JBQUc7QUFFWixrREFBc0M7QUFDN0Isc0JBQUs7QUFFZCxnREFBb0M7QUFDM0Isb0JBQUk7QUFFYixnREFBb0M7QUFDM0Isb0JBQUk7QUFFYixnREFBb0M7QUFDM0Isb0JBQUk7QUFFYixnREFBb0M7QUFDM0Isb0JBQUk7QUFFYiw4Q0FBa0M7QUFDekIsa0JBQUc7QUFFWiw4Q0FBa0M7QUFDekIsa0JBQUc7QUFFWixnREFBb0M7QUFDM0Isb0JBQUk7QUFFYiw4Q0FBa0M7QUFDekIsa0JBQUc7QUFDWiw4Q0FBa0M7QUFDekIsa0JBQUc7QUFFWixJQUFNLGNBQWMsR0FBRztJQUNyQixHQUFHLEVBQUUsR0FBRyxDQUFDLGNBQWM7SUFDdkIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxjQUFjO0lBQ3hCLEdBQUcsRUFBRSxHQUFHLENBQUMsa0JBQWtCO0lBQzNCLElBQUksRUFBRSxHQUFHLENBQUMsa0JBQWtCO0lBQzVCLEdBQUcsRUFBRSxHQUFHLENBQUMsa0JBQWtCO0lBQzNCLElBQUksRUFBRSxHQUFHLENBQUMsa0JBQWtCO0lBQzVCLEdBQUcsRUFBRSxHQUFHLENBQUMsa0JBQWtCO0lBQzNCLElBQUksRUFBRSxHQUFHLENBQUMsa0JBQWtCO0lBQzVCLEtBQUssRUFBRSxHQUFHLENBQUMsa0JBQWtCO0lBQzdCLElBQUksRUFBRSxJQUFJLENBQUMsa0JBQWtCO0lBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCO0lBQzlCLElBQUksRUFBRSxJQUFJLENBQUMsa0JBQWtCO0lBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCO0lBQzlCLEtBQUssRUFBRSxLQUFLLENBQUMsa0JBQWtCO0lBQy9CLE1BQU0sRUFBRSxLQUFLLENBQUMsa0JBQWtCO0lBQ2hDLElBQUksRUFBRSxJQUFJLENBQUMseUJBQXlCO0lBQ3BDLEtBQUssRUFBRSxJQUFJLENBQUMseUJBQXlCO0lBQ3JDLElBQUksRUFBRSxJQUFJLENBQUMseUJBQXlCO0lBQ3BDLEtBQUssRUFBRSxJQUFJLENBQUMseUJBQXlCO0lBQ3JDLEdBQUcsRUFBRSxHQUFHLENBQUMseUJBQXlCO0lBQ2xDLElBQUksRUFBRSxHQUFHLENBQUMseUJBQXlCO0lBQ25DLEdBQUcsRUFBRSxHQUFHLENBQUMseUJBQXlCO0lBQ2xDLElBQUksRUFBRSxHQUFHLENBQUMseUJBQXlCO0lBQ25DLElBQUksRUFBRSxJQUFJLENBQUMseUJBQXlCO0lBQ3BDLEtBQUssRUFBRSxJQUFJLENBQUMseUJBQXlCO0lBQ3JDLEdBQUcsRUFBRSxHQUFHLENBQUMseUJBQXlCO0lBQ2xDLElBQUksRUFBRSxHQUFHLENBQUMseUJBQXlCO0lBQ25DLEdBQUcsRUFBRSxHQUFHLENBQUMseUJBQXlCO0lBQ2xDLElBQUksRUFBRSxHQUFHLENBQUMseUJBQXlCO0NBQ3BDLENBQUM7QUFFRjs7R0FFRztBQUNVLFFBQUEsY0FBYyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7QUFFMUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixVQUFVLENBQUMsUUFBZ0I7SUFDekMsSUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlDLElBQUksQ0FBQyxZQUFZLEVBQUU7UUFDakIsTUFBTSxJQUFJLDhCQUFxQixDQUFDLFVBQVEsUUFBUSxtQkFBZ0IsQ0FBQyxDQUFDO0tBQ25FO0lBRUQsT0FBTyxJQUFJLFlBQVksQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQVBELGdDQU9DO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsUUFBUSxDQUN0QixRQUFnQixFQUNoQixjQUE4RDtJQUU5RCxJQUFNLFVBQVUsR0FBRyxlQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLElBQU0sT0FBTyxHQUFHLElBQUksY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQy9DLHNDQUFzQztJQUN0QyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsY0FBYyxDQUFDLENBQUMsZ0ZBQWdGO0lBQzNILE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFURCw0QkFTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvaW5zLCBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgQnVpbGRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnLi9jb2luL2Jhc2VDb2luL2Vycm9ycyc7XG5cbmltcG9ydCAqIGFzIGNyeXB0byBmcm9tICcuL3V0aWxzL2NyeXB0byc7XG5leHBvcnQgeyBjcnlwdG8gfTtcblxuLy8gY29pbnNcbmltcG9ydCAqIGFzIEJhc2VDb2luIGZyb20gJy4vY29pbi9iYXNlQ29pbic7XG5leHBvcnQgeyBCYXNlQ29pbiB9O1xuXG5pbXBvcnQgKiBhcyBUcnggZnJvbSAnLi9jb2luL3RyeCc7XG5leHBvcnQgeyBUcnggfTtcblxuaW1wb3J0ICogYXMgWHR6IGZyb20gJy4vY29pbi94dHonO1xuZXhwb3J0IHsgWHR6IH07XG5cbmltcG9ydCAqIGFzIEV0aCBmcm9tICcuL2NvaW4vZXRoJztcbmV4cG9ydCB7IEV0aCB9O1xuXG5pbXBvcnQgKiBhcyBFdGgyIGZyb20gJy4vY29pbi9ldGgyJztcbmV4cG9ydCB7IEV0aDIgfTtcblxuaW1wb3J0ICogYXMgRXRjIGZyb20gJy4vY29pbi9ldGMnO1xuZXhwb3J0IHsgRXRjIH07XG5cbmltcG9ydCAqIGFzIEF2YXhDIGZyb20gJy4vY29pbi9hdmF4Yyc7XG5leHBvcnQgeyBBdmF4QyB9O1xuXG5pbXBvcnQgKiBhcyBSYnRjIGZyb20gJy4vY29pbi9yYnRjJztcbmV4cG9ydCB7IFJidGMgfTtcblxuaW1wb3J0ICogYXMgQ2VsbyBmcm9tICcuL2NvaW4vY2Vsbyc7XG5leHBvcnQgeyBDZWxvIH07XG5cbmltcG9ydCAqIGFzIEhiYXIgZnJvbSAnLi9jb2luL2hiYXInO1xuZXhwb3J0IHsgSGJhciB9O1xuXG5pbXBvcnQgKiBhcyBDc3ByIGZyb20gJy4vY29pbi9jc3ByJztcbmV4cG9ydCB7IENzcHIgfTtcblxuaW1wb3J0ICogYXMgWHJwIGZyb20gJy4vY29pbi94cnAnO1xuZXhwb3J0IHsgWHJwIH07XG5cbmltcG9ydCAqIGFzIFN0eCBmcm9tICcuL2NvaW4vc3R4JztcbmV4cG9ydCB7IFN0eCB9O1xuXG5pbXBvcnQgKiBhcyBBbGdvIGZyb20gJy4vY29pbi9hbGdvJztcbmV4cG9ydCB7IEFsZ28gfTtcblxuaW1wb3J0ICogYXMgU29sIGZyb20gJy4vY29pbi9zb2wnO1xuZXhwb3J0IHsgU29sIH07XG5pbXBvcnQgKiBhcyBEb3QgZnJvbSAnLi9jb2luL2RvdCc7XG5leHBvcnQgeyBEb3QgfTtcblxuY29uc3QgY29pbkJ1aWxkZXJNYXAgPSB7XG4gIHRyeDogVHJ4LldyYXBwZWRCdWlsZGVyLFxuICB0dHJ4OiBUcnguV3JhcHBlZEJ1aWxkZXIsXG4gIHh0ejogWHR6LlRyYW5zYWN0aW9uQnVpbGRlcixcbiAgdHh0ejogWHR6LlRyYW5zYWN0aW9uQnVpbGRlcixcbiAgZXRjOiBFdGMuVHJhbnNhY3Rpb25CdWlsZGVyLFxuICB0ZXRjOiBFdGMuVHJhbnNhY3Rpb25CdWlsZGVyLFxuICBldGg6IEV0aC5UcmFuc2FjdGlvbkJ1aWxkZXIsXG4gIHRldGg6IEV0aC5UcmFuc2FjdGlvbkJ1aWxkZXIsXG4gIGd0ZXRoOiBFdGguVHJhbnNhY3Rpb25CdWlsZGVyLFxuICByYnRjOiBSYnRjLlRyYW5zYWN0aW9uQnVpbGRlcixcbiAgdHJidGM6IFJidGMuVHJhbnNhY3Rpb25CdWlsZGVyLFxuICBjZWxvOiBDZWxvLlRyYW5zYWN0aW9uQnVpbGRlcixcbiAgdGNlbG86IENlbG8uVHJhbnNhY3Rpb25CdWlsZGVyLFxuICBhdmF4YzogQXZheEMuVHJhbnNhY3Rpb25CdWlsZGVyLFxuICB0YXZheGM6IEF2YXhDLlRyYW5zYWN0aW9uQnVpbGRlcixcbiAgaGJhcjogSGJhci5UcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LFxuICB0aGJhcjogSGJhci5UcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LFxuICBjc3ByOiBDc3ByLlRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnksXG4gIHRjc3ByOiBDc3ByLlRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnksXG4gIHhycDogWHJwLlRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnksXG4gIHR4cnA6IFhycC5UcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LFxuICBzdHg6IFN0eC5UcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LFxuICB0c3R4OiBTdHguVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSxcbiAgYWxnbzogQWxnby5UcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LFxuICB0YWxnbzogQWxnby5UcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LFxuICBzb2w6IFNvbC5UcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LFxuICB0c29sOiBTb2wuVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSxcbiAgZG90OiBEb3QuVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSxcbiAgdGRvdDogRG90LlRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnksXG59O1xuXG4vKipcbiAqIEdldCB0aGUgbGlzdCBvZiBjb2luIHRpY2tlcnMgc3VwcG9ydGVkIGJ5IHRoaXMgbGlicmFyeS5cbiAqL1xuZXhwb3J0IGNvbnN0IHN1cHBvcnRlZENvaW5zID0gT2JqZWN0LmtleXMoY29pbkJ1aWxkZXJNYXApO1xuXG4vKipcbiAqIEdldCBhIHRyYW5zYWN0aW9uIGJ1aWxkZXIgZm9yIHRoZSBnaXZlbiBjb2luLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBjb2luTmFtZSBPbmUgb2YgdGhlIHtAY29kZSBzdXBwb3J0ZWRDb2luc31cbiAqIEByZXR1cm5zIHthbnl9IEFuIGluc3RhbmNlIG9mIGEge0Bjb2RlIFRyYW5zYWN0aW9uQnVpbGRlcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJ1aWxkZXIoY29pbk5hbWU6IHN0cmluZyk6IEJhc2VDb2luLkludGVyZmFjZS5CYXNlQnVpbGRlciB7XG4gIGNvbnN0IGJ1aWxkZXJDbGFzcyA9IGNvaW5CdWlsZGVyTWFwW2NvaW5OYW1lXTtcbiAgaWYgKCFidWlsZGVyQ2xhc3MpIHtcbiAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBDb2luICR7Y29pbk5hbWV9IG5vdCBzdXBwb3J0ZWRgKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgYnVpbGRlckNsYXNzKGNvaW5zLmdldChjb2luTmFtZSkpO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVyIGEgbmV3IGNvaW4gaW5zdGFuY2Ugd2l0aCBpdHMgYnVpbGRlciBmYWN0b3J5XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGNvaW5OYW1lIGNvaW4gbmFtZSBhcyBpdCB3YXMgcmVnaXN0ZXJlZCBpbiBAYml0Z28vc3RhdGljc1xuICogQHBhcmFtIHthbnl9IGJ1aWxkZXJGYWN0b3J5IHRoZSBidWlsZGVyIGZhY3RvcnkgY2xhc3MgZm9yIHRoYXQgY29pblxuICogQHJldHVybnMge2FueX0gdGhlIGZhY3RvcnkgaW5zdGFuY2UgZm9yIHRoZSByZWdpc3RlcmVkIGNvaW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyPFQgZXh0ZW5kcyBCYXNlQ29pbi5CYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeT4oXG4gIGNvaW5OYW1lOiBzdHJpbmcsXG4gIGJ1aWxkZXJGYWN0b3J5OiB7IG5ldyAoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KTogVCB9LFxuKTogVCB7XG4gIGNvbnN0IGNvaW5Db25maWcgPSBjb2lucy5nZXQoY29pbk5hbWUpO1xuICBjb25zdCBmYWN0b3J5ID0gbmV3IGJ1aWxkZXJGYWN0b3J5KGNvaW5Db25maWcpO1xuICAvLyBjb2luQnVpbGRlck1hcFtjb2luTmFtZV0gPSBmYWN0b3J5O1xuICBjb2luQnVpbGRlck1hcFtjb2luTmFtZV0gPSBidWlsZGVyRmFjdG9yeTsgLy8gRm9yIG5vdyByZWdpc3RlciB0aGUgY29uc3RydWN0b3IgZnVuY3Rpb24gdW50aWwgcmVpbXBsZW1lbnQgZ2V0QnVpbGRlciBtZXRob2RcbiAgcmV0dXJuIGZhY3Rvcnk7XG59XG4iXX0=
@@ -1,3 +1,4 @@
1
+ /// <reference types="node" />
1
2
  import { ExtendedKeys } from '../coin/baseCoin/iface';
2
3
  /**
3
4
  * @param {string} xpub - a base-58 encoded extended public key (BIP32)
@@ -59,4 +60,11 @@ export declare function isValidEd25519SecretKey(prv: string): boolean;
59
60
  * @returns {boolean} Whether the input is a valid public key or not
60
61
  */
61
62
  export declare function isValidEd25519PublicKey(pub: string): boolean;
63
+ /**
64
+ * Returns an hex string of the given buffer
65
+ *
66
+ * @param {Buffer | Uint8Array} buffer - the buffer to be converted to hex
67
+ * @returns {string} - the hex value
68
+ */
69
+ export declare function toHex(buffer: Buffer | Uint8Array): string;
62
70
  //# sourceMappingURL=crypto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../../src/utils/crypto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO1D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUjD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAM9D;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAYjD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAYjD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO/C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO/C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOvD;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO5D;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO5D"}
1
+ {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../../src/utils/crypto.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO1D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUjD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAM9D;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAYjD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAYjD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO/C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO/C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOvD;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO5D;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO5D;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAEzD"}