@bitgo/account-lib 2.17.2-rc.0.1 → 2.17.2-rc.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/dist/browser/bitgo-account-lib.min.js +1 -1
  2. package/dist/browser/bitgo-account-lib.min.js.LICENSE.txt +136 -0
  3. package/dist/package.json +10 -3
  4. package/dist/resources/dot/index.ts +2 -0
  5. package/dist/resources/dot/mainnet.ts +2 -0
  6. package/dist/resources/dot/westend.ts +2 -0
  7. package/dist/resources/trx/protobuf/tron.js~account-lib_master +31380 -0
  8. package/dist/src/coin/algo/keyExclusionBuilder.d.ts +9 -0
  9. package/dist/src/coin/algo/keyExclusionBuilder.d.ts.map +1 -0
  10. package/dist/src/coin/algo/keyExclusionBuilder.js +83 -0
  11. package/dist/src/coin/algo/utils.d.ts +39 -22
  12. package/dist/src/coin/algo/utils.d.ts.map +1 -1
  13. package/dist/src/coin/algo/utils.js +88 -73
  14. package/dist/src/coin/baseCoin/baseTransaction.d.ts +8 -1
  15. package/dist/src/coin/baseCoin/baseTransaction.d.ts.map +1 -1
  16. package/dist/src/coin/baseCoin/baseTransaction.js +10 -1
  17. package/dist/src/coin/baseCoin/baseTransactionBuilder.d.ts.map +1 -1
  18. package/dist/src/coin/baseCoin/baseTransactionBuilder.js +1 -1
  19. package/dist/src/coin/baseCoin/iface.d.ts +28 -0
  20. package/dist/src/coin/baseCoin/iface.d.ts.map +1 -1
  21. package/dist/src/coin/baseCoin/iface.js +1 -1
  22. package/dist/src/coin/cspr/utils.js +2 -2
  23. package/dist/src/coin/dot/errors.d.ts +8 -0
  24. package/dist/src/coin/dot/errors.d.ts.map +1 -0
  25. package/dist/src/coin/dot/errors.js +40 -0
  26. package/dist/src/coin/dot/iface.d.ts +153 -0
  27. package/dist/src/coin/dot/iface.d.ts.map +1 -0
  28. package/dist/src/coin/dot/iface.js +15 -0
  29. package/dist/src/coin/dot/index.d.ts +6 -0
  30. package/dist/src/coin/dot/index.d.ts.map +1 -1
  31. package/dist/src/coin/dot/index.js +14 -2
  32. package/dist/src/coin/dot/keyPair.d.ts +15 -2
  33. package/dist/src/coin/dot/keyPair.d.ts.map +1 -1
  34. package/dist/src/coin/dot/keyPair.js +41 -6
  35. package/dist/src/coin/dot/stakingBuilder.d.ts +59 -0
  36. package/dist/src/coin/dot/stakingBuilder.d.ts.map +1 -0
  37. package/dist/src/coin/dot/stakingBuilder.js +157 -0
  38. package/dist/src/coin/dot/transaction.d.ts +31 -3
  39. package/dist/src/coin/dot/transaction.d.ts.map +1 -1
  40. package/dist/src/coin/dot/transaction.js +268 -7
  41. package/dist/src/coin/dot/transactionBuilder.d.ts +105 -9
  42. package/dist/src/coin/dot/transactionBuilder.d.ts.map +1 -1
  43. package/dist/src/coin/dot/transactionBuilder.js +311 -15
  44. package/dist/src/coin/dot/transactionBuilderFactory.d.ts +12 -16
  45. package/dist/src/coin/dot/transactionBuilderFactory.d.ts.map +1 -1
  46. package/dist/src/coin/dot/transactionBuilderFactory.js +60 -25
  47. package/dist/src/coin/dot/transferBuilder.d.ts +62 -4
  48. package/dist/src/coin/dot/transferBuilder.d.ts.map +1 -1
  49. package/dist/src/coin/dot/transferBuilder.js +158 -44
  50. package/dist/src/coin/dot/txnSchema.d.ts +10 -0
  51. package/dist/src/coin/dot/txnSchema.d.ts.map +1 -0
  52. package/dist/src/coin/dot/txnSchema.js +83 -0
  53. package/dist/src/coin/dot/unstakeBuilder.d.ts +38 -0
  54. package/dist/src/coin/dot/unstakeBuilder.d.ts.map +1 -0
  55. package/dist/src/coin/dot/unstakeBuilder.js +111 -0
  56. package/dist/src/coin/dot/utils.d.ts +69 -0
  57. package/dist/src/coin/dot/utils.d.ts.map +1 -1
  58. package/dist/src/coin/dot/utils.js +144 -4
  59. package/dist/src/coin/dot/walletInitializationBuilder.d.ts +51 -5
  60. package/dist/src/coin/dot/walletInitializationBuilder.d.ts.map +1 -1
  61. package/dist/src/coin/dot/walletInitializationBuilder.js +108 -45
  62. package/dist/src/coin/sol/constants.d.ts +24 -0
  63. package/dist/src/coin/sol/constants.d.ts.map +1 -0
  64. package/dist/src/coin/sol/constants.js +35 -0
  65. package/dist/src/coin/sol/iface.d.ts +55 -0
  66. package/dist/src/coin/sol/iface.d.ts.map +1 -0
  67. package/dist/src/coin/sol/iface.js +3 -0
  68. package/dist/src/coin/sol/index.d.ts +5 -0
  69. package/dist/src/coin/sol/index.d.ts.map +1 -0
  70. package/dist/src/coin/sol/index.js +29 -0
  71. package/dist/src/coin/sol/instructionParamsFactory.d.ts +12 -0
  72. package/dist/src/coin/sol/instructionParamsFactory.d.ts.map +1 -0
  73. package/dist/src/coin/sol/instructionParamsFactory.js +99 -0
  74. package/dist/src/coin/sol/keyPair.d.ts +45 -0
  75. package/dist/src/coin/sol/keyPair.d.ts.map +1 -0
  76. package/dist/src/coin/sol/keyPair.js +128 -0
  77. package/dist/src/coin/sol/solInstructionFactory.d.ts +10 -0
  78. package/dist/src/coin/sol/solInstructionFactory.d.ts.map +1 -0
  79. package/dist/src/coin/sol/solInstructionFactory.js +102 -0
  80. package/dist/src/coin/sol/transaction.d.ts +52 -0
  81. package/dist/src/coin/sol/transaction.d.ts.map +1 -0
  82. package/dist/src/coin/sol/transaction.js +345 -0
  83. package/dist/src/coin/sol/transactionBuilder.d.ts +96 -0
  84. package/dist/src/coin/sol/transactionBuilder.d.ts.map +1 -0
  85. package/dist/src/coin/sol/transactionBuilder.js +316 -0
  86. package/dist/src/coin/sol/transactionBuilderFactory.d.ts +34 -0
  87. package/dist/src/coin/sol/transactionBuilderFactory.d.ts.map +1 -0
  88. package/dist/src/coin/sol/transactionBuilderFactory.js +86 -0
  89. package/dist/src/coin/sol/transferBuilder.d.ts +26 -0
  90. package/dist/src/coin/sol/transferBuilder.d.ts.map +1 -0
  91. package/dist/src/coin/sol/transferBuilder.js +140 -0
  92. package/dist/src/coin/sol/utils.d.ts +104 -0
  93. package/dist/src/coin/sol/utils.d.ts.map +1 -0
  94. package/dist/src/coin/sol/utils.js +244 -0
  95. package/dist/src/coin/sol/walletInitializationBuilder.d.ts +26 -0
  96. package/dist/src/coin/sol/walletInitializationBuilder.d.ts.map +1 -0
  97. package/dist/src/coin/sol/walletInitializationBuilder.js +141 -0
  98. package/dist/src/index.d.ts +4 -0
  99. package/dist/src/index.d.ts.map +1 -1
  100. package/dist/src/index.js +10 -2
  101. package/dist/src/utils/crypto.d.ts +8 -0
  102. package/dist/src/utils/crypto.d.ts.map +1 -1
  103. package/dist/src/utils/crypto.js +13 -2
  104. package/package.json +10 -3
  105. package/resources/dot/index.ts +2 -0
  106. package/resources/dot/mainnet.ts +2 -0
  107. package/resources/dot/westend.ts +2 -0
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.KeyPair = void 0;
7
+ var web3_js_1 = require("@solana/web3.js");
8
+ var tweetnacl_1 = __importDefault(require("tweetnacl"));
9
+ var errors_1 = require("../baseCoin/errors");
10
+ var iface_1 = require("../baseCoin/iface");
11
+ var constants_1 = require("./constants");
12
+ var utils_1 = require("./utils");
13
+ // The Solana Key Pair is an ED25519 but the current ED25519 implementation doesnt return base58 strings
14
+ // TODO(): Refactor to ED25519 Keypair instead of BaseKeyPair
15
+ var KeyPair = /** @class */ (function () {
16
+ /**
17
+ * Public constructor. By default, creates a key pair with a random master seed.
18
+ *
19
+ * @param { KeyPairOptions } source Either a master seed, a private key, or a public key
20
+ */
21
+ function KeyPair(source) {
22
+ var kp;
23
+ if (!source) {
24
+ kp = web3_js_1.Keypair.generate();
25
+ this.setKP(kp);
26
+ }
27
+ else if (iface_1.isSeed(source)) {
28
+ kp = web3_js_1.Keypair.fromSeed(source.seed.slice(0, constants_1.SEED_LENGTH));
29
+ this.setKP(kp);
30
+ }
31
+ else if (iface_1.isPrivateKey(source)) {
32
+ this.recordKeysFromPrivateKey(source.prv);
33
+ }
34
+ else if (iface_1.isPublicKey(source)) {
35
+ this.recordKeysFromPublicKey(source.pub);
36
+ }
37
+ else {
38
+ throw new Error('Invalid key pair options');
39
+ }
40
+ }
41
+ KeyPair.prototype.setKP = function (keyPair) {
42
+ this.keyPair = {
43
+ prv: utils_1.Uint8ArrayTobase58(keyPair.secretKey),
44
+ pub: keyPair.publicKey.toString(),
45
+ };
46
+ };
47
+ /** @inheritdoc */
48
+ KeyPair.prototype.recordKeysFromPrivateKey = function (prv) {
49
+ if (utils_1.isValidPrivateKey(prv)) {
50
+ var prvKey = utils_1.base58ToUint8Array(prv);
51
+ var keyPair = web3_js_1.Keypair.fromSecretKey(prvKey);
52
+ this.setKP(keyPair);
53
+ }
54
+ else {
55
+ throw new errors_1.InvalidKey('Invalid private key');
56
+ }
57
+ };
58
+ /** @inheritdoc */
59
+ KeyPair.prototype.recordKeysFromPublicKey = function (pub) {
60
+ if (utils_1.isValidPublicKey(pub)) {
61
+ this.keyPair = { pub: pub };
62
+ }
63
+ else {
64
+ throw new errors_1.InvalidKey('Invalid public key: ' + pub);
65
+ }
66
+ };
67
+ /**
68
+ * Solana default keys format public key as a base58 string and secret key as Uint8Array
69
+ *
70
+ * @param {boolean} raw defines if the prv key is returned in Uint8Array, default is base58
71
+ * @returns {SolanaKeys} The keys in the defined format
72
+ */
73
+ KeyPair.prototype.getKeys = function (raw) {
74
+ if (raw === void 0) { raw = false; }
75
+ var result = { pub: this.keyPair.pub };
76
+ if (!!this.keyPair.prv) {
77
+ if (raw) {
78
+ result.prv = utils_1.base58ToUint8Array(this.keyPair.prv);
79
+ }
80
+ else {
81
+ result.prv = this.keyPair.prv;
82
+ }
83
+ }
84
+ return result;
85
+ };
86
+ /** @inheritdoc */
87
+ KeyPair.prototype.getAddress = function () {
88
+ var keys = this.getKeys();
89
+ return keys.pub;
90
+ };
91
+ /**
92
+ * Generates a signature for an arbitrary string with the current private key using the ed25519 public-key signature
93
+ * system.
94
+ *
95
+ * @param {string} message to produce a signature for
96
+ * @returns {Uint8Array} The signature produced for the message
97
+ * @throws if there is no private key
98
+ */
99
+ KeyPair.prototype.signMessage = function (message) {
100
+ var messageToSign = new Uint8Array(Buffer.from(message));
101
+ var prv = this.keyPair.prv;
102
+ if (!prv) {
103
+ throw new Error('Missing private key');
104
+ }
105
+ return tweetnacl_1.default.sign.detached(messageToSign, utils_1.base58ToUint8Array(prv));
106
+ };
107
+ /**
108
+ * Verifies a message signature using the current public key.
109
+ *
110
+ * @param {string} message signed
111
+ * @param {Uint8Array} signature to verify
112
+ * @returns {boolean} True if the message was signed with the current key pair
113
+ */
114
+ KeyPair.prototype.verifySignature = function (message, signature) {
115
+ var messageToVerify;
116
+ if (typeof message === 'string') {
117
+ messageToVerify = new Uint8Array(Buffer.from(message));
118
+ }
119
+ else {
120
+ messageToVerify = message;
121
+ }
122
+ var pub = new web3_js_1.PublicKey(this.keyPair.pub);
123
+ return tweetnacl_1.default.sign.detached.verify(messageToVerify, signature, pub.toBuffer());
124
+ };
125
+ return KeyPair;
126
+ }());
127
+ exports.KeyPair = KeyPair;
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2luL3NvbC9rZXlQYWlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDJDQUFtRTtBQUNuRSx3REFBNkI7QUFFN0IsNkNBQWdEO0FBQ2hELDJDQUFtRztBQUNuRyx5Q0FBMEM7QUFFMUMsaUNBQXNHO0FBRXRHLHdHQUF3RztBQUN4Ryw2REFBNkQ7QUFDN0Q7SUFHRTs7OztPQUlHO0lBQ0gsaUJBQVksTUFBdUI7UUFDakMsSUFBSSxFQUFjLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLEVBQUUsR0FBRyxpQkFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDaEI7YUFBTSxJQUFJLGNBQU0sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN6QixFQUFFLEdBQUcsaUJBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLHVCQUFXLENBQUMsQ0FBQyxDQUFDO1lBQzVELElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDaEI7YUFBTSxJQUFJLG9CQUFZLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDL0IsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMzQzthQUFNLElBQUksbUJBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzFDO2FBQU07WUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7U0FDN0M7SUFDSCxDQUFDO0lBRU8sdUJBQUssR0FBYixVQUFjLE9BQW1CO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixHQUFHLEVB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QUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFDSCxjQUFDO0FBQUQsQ0FBQyxBQTlHRCxJQThHQztBQTlHWSwwQkFBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtleXBhaXIgYXMgU29sS2V5cGFpciwgUHVibGljS2V5IH0gZnJvbSAnQHNvbGFuYS93ZWIzLmpzJztcbmltcG9ydCBuYWNsIGZyb20gJ3R3ZWV0bmFjbCc7XG5pbXBvcnQgeyBCYXNlS2V5UGFpciB9IGZyb20gJy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IEludmFsaWRLZXkgfSBmcm9tICcuLi9iYXNlQ29pbi9lcnJvcnMnO1xuaW1wb3J0IHsgRGVmYXVsdEtleXMsIGlzUHJpdmF0ZUtleSwgaXNQdWJsaWNLZXksIGlzU2VlZCwgS2V5UGFpck9wdGlvbnMgfSBmcm9tICcuLi9iYXNlQ29pbi9pZmFjZSc7XG5pbXBvcnQgeyBTRUVEX0xFTkdUSCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IFNvbGFuYUtleXMgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IGJhc2U1OFRvVWludDhBcnJheSwgaXNWYWxpZFByaXZhdGVLZXksIGlzVmFsaWRQdWJsaWNLZXksIFVpbnQ4QXJyYXlUb2Jhc2U1OCB9IGZyb20gJy4vdXRpbHMnO1xuXG4vLyBUaGUgU29sYW5hIEtleSBQYWlyIGlzIGFuIEVEMjU1MTkgYnV0IHRoZSBjdXJyZW50IEVEMjU1MTkgaW1wbGVtZW50YXRpb24gZG9lc250IHJldHVybiBiYXNlNTggc3RyaW5nc1xuLy8gVE9ETygpOiBSZWZhY3RvciB0byBFRDI1NTE5IEtleXBhaXIgaW5zdGVhZCBvZiBCYXNlS2V5UGFpclxuZXhwb3J0IGNsYXNzIEtleVBhaXIgaW1wbGVtZW50cyBCYXNlS2V5UGFpciB7XG4gIHByb3RlY3RlZCBrZXlQYWlyOiBEZWZhdWx0S2V5cztcbiAgcHJvdGVjdGVkIHNvdXJjZT86IEtleVBhaXJPcHRpb25zO1xuICAvKipcbiAgICogUHVibGljIGNvbnN0cnVjdG9yLiBCeSBkZWZhdWx0LCBjcmVhdGVzIGEga2V5IHBhaXIgd2l0aCBhIHJhbmRvbSBtYXN0ZXIgc2VlZC5cbiAgICpcbiAgICogQHBhcmFtIHsgS2V5UGFpck9wdGlvbnMgfSBzb3VyY2UgRWl0aGVyIGEgbWFzdGVyIHNlZWQsIGEgcHJpdmF0ZSBrZXksIG9yIGEgcHVibGljIGtleVxuICAgKi9cbiAgY29uc3RydWN0b3Ioc291cmNlPzogS2V5UGFpck9wdGlvbnMpIHtcbiAgICBsZXQga3A6IFNvbEtleXBhaXI7XG4gICAgaWYgKCFzb3VyY2UpIHtcbiAgICAgIGtwID0gU29sS2V5cGFpci5nZW5lcmF0ZSgpO1xuICAgICAgdGhpcy5zZXRLUChrcCk7XG4gICAgfSBlbHNlIGlmIChpc1NlZWQoc291cmNlKSkge1xuICAgICAga3AgPSBTb2xLZXlwYWlyLmZyb21TZWVkKHNvdXJjZS5zZWVkLnNsaWNlKDAsIFNFRURfTEVOR1RIKSk7XG4gICAgICB0aGlzLnNldEtQKGtwKTtcbiAgICB9IGVsc2UgaWYgKGlzUHJpdmF0ZUtleShzb3VyY2UpKSB7XG4gICAgICB0aGlzLnJlY29yZEtleXNGcm9tUHJpdmF0ZUtleShzb3VyY2UucHJ2KTtcbiAgICB9IGVsc2UgaWYgKGlzUHVibGljS2V5KHNvdXJjZSkpIHtcbiAgICAgIHRoaXMucmVjb3JkS2V5c0Zyb21QdWJsaWNLZXkoc291cmNlLnB1Yik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBrZXkgcGFpciBvcHRpb25zJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRLUChrZXlQYWlyOiBTb2xLZXlwYWlyKTogdm9pZCB7XG4gICAgdGhpcy5rZXlQYWlyID0ge1xuICAgICAgcHJ2OiBVaW50OEFycmF5VG9iYXNlNTgoa2V5UGFpci5zZWNyZXRLZXkpLFxuICAgICAgcHViOiBrZXlQYWlyLnB1YmxpY0tleS50b1N0cmluZygpLFxuICAgIH07XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcmVjb3JkS2V5c0Zyb21Qcml2YXRlS2V5KHBydjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKGlzVmFsaWRQcml2YXRlS2V5KHBydikpIHtcbiAgICAgIGNvbnN0IHBydktleSA9IGJhc2U1OFRvVWludDhBcnJheShwcnYpO1xuICAgICAgY29uc3Qga2V5UGFpciA9IFNvbEtleXBhaXIuZnJvbVNlY3JldEtleShwcnZLZXkpO1xuICAgICAgdGhpcy5zZXRLUChrZXlQYWlyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRLZXkoJ0ludmFsaWQgcHJpdmF0ZSBrZXknKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcmVjb3JkS2V5c0Zyb21QdWJsaWNLZXkocHViOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoaXNWYWxpZFB1YmxpY0tleShwdWIpKSB7XG4gICAgICB0aGlzLmtleVBhaXIgPSB7IHB1YiB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEtleSgnSW52YWxpZCBwdWJsaWMga2V5OiAnICsgcHViKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU29sYW5hIGRlZmF1bHQga2V5cyBmb3JtYXQgcHVibGljIGtleSBhcyBhIGJhc2U1OCBzdHJpbmcgYW5kIHNlY3JldCBrZXkgYXMgVWludDhBcnJheVxuICAgKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHJhdyBkZWZpbmVzIGlmIHRoZSBwcnYga2V5IGlzIHJldHVybmVkIGluIFVpbnQ4QXJyYXksIGRlZmF1bHQgaXMgYmFzZTU4XG4gICAqIEByZXR1cm5zIHtTb2xhbmFLZXlzfSBUaGUga2V5cyBpbiB0aGUgZGVmaW5lZCBmb3JtYXRcbiAgICovXG4gIGdldEtleXMocmF3ID0gZmFsc2UpOiBTb2xhbmFLZXlzIHtcbiAgICBjb25zdCByZXN1bHQ6IFNvbGFuYUtleXMgPSB7IHB1YjogdGhpcy5rZXlQYWlyLnB1YiB9O1xuICAgIGlmICghIXRoaXMua2V5UGFpci5wcnYpIHtcbiAgICAgIGlmIChyYXcpIHtcbiAgICAgICAgcmVzdWx0LnBydiA9IGJhc2U1OFRvVWludDhBcnJheSh0aGlzLmtleVBhaXIucHJ2KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdC5wcnYgPSB0aGlzLmtleVBhaXIucHJ2O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldEFkZHJlc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBrZXlzID0gdGhpcy5nZXRLZXlzKCk7XG4gICAgcmV0dXJuIGtleXMucHViO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBhIHNpZ25hdHVyZSBmb3IgYW4gYXJiaXRyYXJ5IHN0cmluZyB3aXRoIHRoZSBjdXJyZW50IHByaXZhdGUga2V5IHVzaW5nIHRoZSBlZDI1NTE5IHB1YmxpYy1rZXkgc2lnbmF0dXJlXG4gICAqIHN5c3RlbS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2UgdG8gcHJvZHVjZSBhIHNpZ25hdHVyZSBmb3JcbiAgICogQHJldHVybnMge1VpbnQ4QXJyYXl9IFRoZSBzaWduYXR1cmUgcHJvZHVjZWQgZm9yIHRoZSBtZXNzYWdlXG4gICAqIEB0aHJvd3MgaWYgdGhlcmUgaXMgbm8gcHJpdmF0ZSBrZXlcbiAgICovXG4gIHNpZ25NZXNzYWdlKG1lc3NhZ2U6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xuICAgIGNvbnN0IG1lc3NhZ2VUb1NpZ24gPSBuZXcgVWludDhBcnJheShCdWZmZXIuZnJvbShtZXNzYWdlKSk7XG4gICAgY29uc3QgeyBwcnYgfSA9IHRoaXMua2V5UGFpcjtcbiAgICBpZiAoIXBydikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHByaXZhdGUga2V5Jyk7XG4gICAgfVxuICAgIHJldHVybiBuYWNsLnNpZ24uZGV0YWNoZWQobWVzc2FnZVRvU2lnbiwgYmFzZTU4VG9VaW50OEFycmF5KHBydikpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWVzIGEgbWVzc2FnZSBzaWduYXR1cmUgdXNpbmcgdGhlIGN1cnJlbnQgcHVibGljIGtleS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2Ugc2lnbmVkXG4gICAqIEBwYXJhbSB7VWludDhBcnJheX0gc2lnbmF0dXJlIHRvIHZlcmlmeVxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgbWVzc2FnZSB3YXMgc2lnbmVkIHdpdGggdGhlIGN1cnJlbnQga2V5IHBhaXJcbiAgICovXG4gIHZlcmlmeVNpZ25hdHVyZShtZXNzYWdlOiBVaW50OEFycmF5IHwgc3RyaW5nLCBzaWduYXR1cmU6IFVpbnQ4QXJyYXkpOiBib29sZWFuIHtcbiAgICBsZXQgbWVzc2FnZVRvVmVyaWZ5O1xuICAgIGlmICh0eXBlb2YgbWVzc2FnZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIG1lc3NhZ2VUb1ZlcmlmeSA9IG5ldyBVaW50OEFycmF5KEJ1ZmZlci5mcm9tKG1lc3NhZ2UpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbWVzc2FnZVRvVmVyaWZ5ID0gbWVzc2FnZTtcbiAgICB9XG4gICAgY29uc3QgcHViID0gbmV3IFB1YmxpY0tleSh0aGlzLmtleVBhaXIucHViKTtcbiAgICByZXR1cm4gbmFjbC5zaWduLmRldGFjaGVkLnZlcmlmeShtZXNzYWdlVG9WZXJpZnksIHNpZ25hdHVyZSwgcHViLnRvQnVmZmVyKCkpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,10 @@
1
+ import { TransactionInstruction } from '@solana/web3.js';
2
+ import { InstructionParams } from './iface';
3
+ /**
4
+ * Construct Solana instructions from instructions params
5
+ *
6
+ * @param {InstructionParams} instructionToBuild - the data containing the instruction params
7
+ * @returns {TransactionInstruction[]} An array containing supported Solana instructions
8
+ */
9
+ export declare function solInstructionFactory(instructionToBuild: InstructionParams): TransactionInstruction[];
10
+ //# sourceMappingURL=solInstructionFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solInstructionFactory.d.ts","sourceRoot":"","sources":["../../../../src/coin/sol/solInstructionFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAInF,OAAO,EAAE,iBAAiB,EAAqC,MAAM,SAAS,CAAC;AAE/E;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,kBAAkB,EAAE,iBAAiB,GAAG,sBAAsB,EAAE,CAarG"}
@@ -0,0 +1,102 @@
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.solInstructionFactory = void 0;
7
+ var web3_js_1 = require("@solana/web3.js");
8
+ var assert_1 = __importDefault(require("assert"));
9
+ var bignumber_js_1 = __importDefault(require("bignumber.js"));
10
+ var constants_1 = require("./constants");
11
+ /**
12
+ * Construct Solana instructions from instructions params
13
+ *
14
+ * @param {InstructionParams} instructionToBuild - the data containing the instruction params
15
+ * @returns {TransactionInstruction[]} An array containing supported Solana instructions
16
+ */
17
+ function solInstructionFactory(instructionToBuild) {
18
+ switch (instructionToBuild.type) {
19
+ case constants_1.InstructionBuilderTypes.NonceAdvance:
20
+ return advanceNonceInstruction(instructionToBuild);
21
+ case constants_1.InstructionBuilderTypes.Memo:
22
+ return memoInstruction(instructionToBuild);
23
+ case constants_1.InstructionBuilderTypes.Transfer:
24
+ return transferInstruction(instructionToBuild);
25
+ case constants_1.InstructionBuilderTypes.CreateNonceAccount:
26
+ return createNonceAccountInstruction(instructionToBuild);
27
+ default:
28
+ throw new Error("Invalid instruction type or not supported");
29
+ }
30
+ }
31
+ exports.solInstructionFactory = solInstructionFactory;
32
+ /**
33
+ * Construct Advance Nonce Solana instructions
34
+ *
35
+ * @param {Nonce} data - the data to build the instruction
36
+ * @returns {TransactionInstruction[]} An array containing Advance Nonce Solana instruction
37
+ */
38
+ function advanceNonceInstruction(data) {
39
+ var _a = data.params, authWalletAddress = _a.authWalletAddress, walletNonceAddress = _a.walletNonceAddress;
40
+ assert_1.default(authWalletAddress, 'Missing authWalletAddress param');
41
+ assert_1.default(walletNonceAddress, 'Missing walletNonceAddress param');
42
+ var nonceInstruction = web3_js_1.SystemProgram.nonceAdvance({
43
+ noncePubkey: new web3_js_1.PublicKey(walletNonceAddress),
44
+ authorizedPubkey: new web3_js_1.PublicKey(authWalletAddress),
45
+ });
46
+ return [nonceInstruction];
47
+ }
48
+ /**
49
+ * Construct Memo Solana instructions
50
+ *
51
+ * @param {Memo} data - the data to build the instruction
52
+ * @returns {TransactionInstruction[]} An array containing Memo Solana instruction
53
+ */
54
+ function memoInstruction(data) {
55
+ var memo = data.params.memo;
56
+ assert_1.default(memo, 'Missing memo param');
57
+ var memoInstruction = new web3_js_1.TransactionInstruction({
58
+ keys: [],
59
+ programId: new web3_js_1.PublicKey(constants_1.MEMO_PROGRAM_PK),
60
+ data: Buffer.from(memo),
61
+ });
62
+ return [memoInstruction];
63
+ }
64
+ /**
65
+ * Construct Transfer Solana instructions
66
+ *
67
+ * @param {Transfer} data - the data to build the instruction
68
+ * @returns {TransactionInstruction[]} An array containing Transfer Solana instruction
69
+ */
70
+ function transferInstruction(data) {
71
+ var _a = data.params, fromAddress = _a.fromAddress, toAddress = _a.toAddress, amount = _a.amount;
72
+ assert_1.default(fromAddress, 'Missing fromAddress param');
73
+ assert_1.default(toAddress, 'Missing toAddress param');
74
+ assert_1.default(amount, 'Missing toAddress param');
75
+ var transferInstruction = web3_js_1.SystemProgram.transfer({
76
+ fromPubkey: new web3_js_1.PublicKey(fromAddress),
77
+ toPubkey: new web3_js_1.PublicKey(toAddress),
78
+ lamports: new bignumber_js_1.default(amount).toNumber(),
79
+ });
80
+ return [transferInstruction];
81
+ }
82
+ /**
83
+ * Construct Create and Initialize Nonce Solana instructions
84
+ *
85
+ * @param {WalletInit} data - the data to build the instruction
86
+ * @returns {TransactionInstruction[]} An array containing Create and Initialize Nonce Solana instruction
87
+ */
88
+ function createNonceAccountInstruction(data) {
89
+ var _a = data.params, fromAddress = _a.fromAddress, nonceAddress = _a.nonceAddress, authAddress = _a.authAddress, amount = _a.amount;
90
+ assert_1.default(fromAddress, 'Missing fromAddress param');
91
+ assert_1.default(nonceAddress, 'Missing nonceAddress param');
92
+ assert_1.default(authAddress, 'Missing authAddress param');
93
+ assert_1.default(amount, 'Missing amount param');
94
+ var nonceAccountInstruction = web3_js_1.SystemProgram.createNonceAccount({
95
+ fromPubkey: new web3_js_1.PublicKey(fromAddress),
96
+ noncePubkey: new web3_js_1.PublicKey(nonceAddress),
97
+ authorizedPubkey: new web3_js_1.PublicKey(authAddress),
98
+ lamports: new bignumber_js_1.default(amount).toNumber(),
99
+ });
100
+ return nonceAccountInstruction.instructions;
101
+ }
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29sSW5zdHJ1Y3Rpb25GYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vc29sL3NvbEluc3RydWN0aW9uRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyQ0FBbUY7QUFDbkYsa0RBQTRCO0FBQzVCLDhEQUFxQztBQUNyQyx5Q0FBdUU7QUFHdkU7Ozs7O0dBS0c7QUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxrQkFBcUM7SUFDekUsUUFBUSxrQkFBa0IsQ0FBQyxJQUFJLEVBQUU7UUFDL0IsS0FBSyxtQ0FBdUIsQ0FBQyxZQUFZO1lBQ3ZDLE9BQU8sdUJBQXVCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNyRCxLQUFLLG1DQUF1QixDQUFDLElBQUk7WUFDL0IsT0FBTyxlQUFlLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM3QyxLQUFLLG1DQUF1QixDQUFDLFFBQVE7WUFDbkMsT0FBTyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2pELEtBQUssbUNBQXVCLENBQUMsa0JBQWtCO1lBQzdDLE9BQU8sNkJBQTZCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMzRDtZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQztLQUNoRTtBQUNILENBQUM7QUFiRCxzREFhQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBUyx1QkFBdUIsQ0FBQyxJQUFXO0lBRXhDLElBQUEsS0FDRSxJQUFJLE9BRDJDLEVBQXZDLGlCQUFpQix1QkFBQSxFQUFFLGtCQUFrQix3QkFBRSxDQUMxQztJQUNULGdCQUFNLENBQUMsaUJBQWlCLEVBQUUsaUNBQWlDLENBQUMsQ0FBQztJQUM3RCxnQkFBTSxDQUFDLGtCQUFrQixFQUFFLGtDQUFrQyxDQUFDLENBQUM7SUFDL0QsSUFBTSxnQkFBZ0IsR0FBRyx1QkFBYSxDQUFDLFlBQVksQ0FBQztRQUNsRCxXQUFXLEVBQUUsSUFBSSxtQkFBUyxDQUFDLGtCQUFrQixDQUFDO1FBQzlDLGdCQUFnQixFQUFFLElBQUksbUJBQVMsQ0FBQyxpQkFBaUIsQ0FBQztLQUNuRCxDQUFDLENBQUM7SUFDSCxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUM1QixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFTLGVBQWUsQ0FBQyxJQUFVO0lBRXJCLElBQUEsSUFBSSxHQUNaLElBQUksWUFEUSxDQUNQO0lBQ1QsZ0JBQU0sQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztJQUNuQyxJQUFNLGVBQWUsR0FBRyxJQUFJLGdDQUFzQixDQUFDO1FBQ2pELElBQUksRUFBRSxFQUFFO1FBQ1IsU0FBUyxFQUFFLElBQUksbUJBQVMsQ0FBQywyQkFBZSxDQUFDO1FBQ3pDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztLQUN4QixDQUFDLENBQUM7SUFDSCxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDM0IsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FBQyxJQUFjO0lBRXZDLElBQUEsS0FDRSxJQUFJLE9BRG9DLEVBQWhDLFdBQVcsaUJBQUEsRUFBRSxTQUFTLGVBQUEsRUFBRSxNQUFNLFlBQUUsQ0FDbkM7SUFDVCxnQkFBTSxDQUFDLFdBQVcsRUFBRSwyQkFBMkIsQ0FBQyxDQUFDO0lBQ2pELGdCQUFNLENBQUMsU0FBUyxFQUFFLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsZ0JBQU0sQ0FBQyxNQUFNLEVBQUUseUJBQXlCLENBQUMsQ0FBQztJQUMxQyxJQUFNLG1CQUFtQixHQUFHLHVCQUFhLENBQUMsUUFBUSxDQUFDO1FBQ2pELFVBQVUsRUFBRSxJQUFJLG1CQUFTLENBQUMsV0FBVyxDQUFDO1FBQ3RDLFFBQVEsRUFBRSxJQUFJLG1CQUFTLENBQUMsU0FBUyxDQUFDO1FBQ2xDLFFBQVEsRUFBRSxJQUFJLHNCQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFO0tBQzNDLENBQUMsQ0FBQztJQUNILE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsNkJBQTZCLENBQUMsSUFBZ0I7SUFFbkQsSUFBQSxLQUNFLElBQUksT0FEb0QsRUFBaEQsV0FBVyxpQkFBQSxFQUFFLFlBQVksa0JBQUEsRUFBRSxXQUFXLGlCQUFBLEVBQUUsTUFBTSxZQUFFLENBQ25EO0lBQ1QsZ0JBQU0sQ0FBQyxXQUFXLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztJQUNqRCxnQkFBTSxDQUFDLFlBQVksRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO0lBQ25ELGdCQUFNLENBQUMsV0FBVyxFQUFFLDJCQUEyQixDQUFDLENBQUM7SUFDakQsZ0JBQU0sQ0FBQyxNQUFNLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztJQUN2QyxJQUFNLHVCQUF1QixHQUFHLHVCQUFhLENBQUMsa0JBQWtCLENBQUM7UUFDL0QsVUFBVSxFQUFFLElBQUksbUJBQVMsQ0FBQyxXQUFXLENBQUM7UUFDdEMsV0FBVyxFQUFFLElBQUksbUJBQVMsQ0FBQyxZQUFZLENBQUM7UUFDeEMsZ0JBQWdCLEVBQUUsSUFBSSxtQkFBUyxDQUFDLFdBQVcsQ0FBQztRQUM1QyxRQUFRLEVBQUUsSUFBSSxzQkFBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRTtLQUMzQyxDQUFDLENBQUM7SUFDSCxPQUFPLHVCQUF1QixDQUFDLFlBQVksQ0FBQztBQUM5QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHVibGljS2V5LCBTeXN0ZW1Qcm9ncmFtLCBUcmFuc2FjdGlvbkluc3RydWN0aW9uIH0gZnJvbSAnQHNvbGFuYS93ZWIzLmpzJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLCBNRU1PX1BST0dSQU1fUEsgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBJbnN0cnVjdGlvblBhcmFtcywgTWVtbywgTm9uY2UsIFRyYW5zZmVyLCBXYWxsZXRJbml0IH0gZnJvbSAnLi9pZmFjZSc7XG5cbi8qKlxuICogQ29uc3RydWN0IFNvbGFuYSBpbnN0cnVjdGlvbnMgZnJvbSBpbnN0cnVjdGlvbnMgcGFyYW1zXG4gKlxuICogQHBhcmFtIHtJbnN0cnVjdGlvblBhcmFtc30gaW5zdHJ1Y3Rpb25Ub0J1aWxkIC0gdGhlIGRhdGEgY29udGFpbmluZyB0aGUgaW5zdHJ1Y3Rpb24gcGFyYW1zXG4gKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25JbnN0cnVjdGlvbltdfSBBbiBhcnJheSBjb250YWluaW5nIHN1cHBvcnRlZCBTb2xhbmEgaW5zdHJ1Y3Rpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzb2xJbnN0cnVjdGlvbkZhY3RvcnkoaW5zdHJ1Y3Rpb25Ub0J1aWxkOiBJbnN0cnVjdGlvblBhcmFtcyk6IFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb25bXSB7XG4gIHN3aXRjaCAoaW5zdHJ1Y3Rpb25Ub0J1aWxkLnR5cGUpIHtcbiAgICBjYXNlIEluc3RydWN0aW9uQnVpbGRlclR5cGVzLk5vbmNlQWR2YW5jZTpcbiAgICAgIHJldHVybiBhZHZhbmNlTm9uY2VJbnN0cnVjdGlvbihpbnN0cnVjdGlvblRvQnVpbGQpO1xuICAgIGNhc2UgSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuTWVtbzpcbiAgICAgIHJldHVybiBtZW1vSW5zdHJ1Y3Rpb24oaW5zdHJ1Y3Rpb25Ub0J1aWxkKTtcbiAgICBjYXNlIEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlRyYW5zZmVyOlxuICAgICAgcmV0dXJuIHRyYW5zZmVySW5zdHJ1Y3Rpb24oaW5zdHJ1Y3Rpb25Ub0J1aWxkKTtcbiAgICBjYXNlIEluc3RydWN0aW9uQnVpbGRlclR5cGVzLkNyZWF0ZU5vbmNlQWNjb3VudDpcbiAgICAgIHJldHVybiBjcmVhdGVOb25jZUFjY291bnRJbnN0cnVjdGlvbihpbnN0cnVjdGlvblRvQnVpbGQpO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgaW5zdHJ1Y3Rpb24gdHlwZSBvciBub3Qgc3VwcG9ydGVkYCk7XG4gIH1cbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3QgQWR2YW5jZSBOb25jZSBTb2xhbmEgaW5zdHJ1Y3Rpb25zXG4gKlxuICogQHBhcmFtIHtOb25jZX0gZGF0YSAtIHRoZSBkYXRhIHRvIGJ1aWxkIHRoZSBpbnN0cnVjdGlvblxuICogQHJldHVybnMge1RyYW5zYWN0aW9uSW5zdHJ1Y3Rpb25bXX0gQW4gYXJyYXkgY29udGFpbmluZyBBZHZhbmNlIE5vbmNlIFNvbGFuYSBpbnN0cnVjdGlvblxuICovXG5mdW5jdGlvbiBhZHZhbmNlTm9uY2VJbnN0cnVjdGlvbihkYXRhOiBOb25jZSk6IFRyYW5zYWN0aW9uSW5zdHJ1Y3Rpb25bXSB7XG4gIGNvbnN0IHtcbiAgICBwYXJhbXM6IHsgYXV0aFdhbGxldEFkZHJlc3MsIHdhbGxldE5vbmNlQWRkcmVzcyB9LFxuICB9ID0gZGF0YTtcbiAgYXNzZXJ0KGF1dGhXYWxsZXRBZGRyZXNzLCAnTWlzc2luZyBhdXRoV2FsbGV0QWRkcmVzcyBwYXJhbScpO1xuICBhc3NlcnQod2FsbGV0Tm9uY2VBZGRyZXNzLCAnTWlzc2luZyB3YWxsZXROb25jZUFkZHJlc3MgcGFyYW0nKTtcbiAgY29uc3Qgbm9uY2VJbnN0cnVjdGlvbiA9IFN5c3RlbVByb2dyYW0ubm9uY2VBZHZhbmNlKHtcbiAgICBub25jZVB1YmtleTogbmV3IFB1YmxpY0tleSh3YWxsZXROb25jZUFkZHJlc3MpLFxuICAgIGF1dGhvcml6ZWRQdWJrZXk6IG5ldyBQdWJsaWNLZXkoYXV0aFdhbGxldEFkZHJlc3MpLFxuICB9KTtcbiAgcmV0dXJuIFtub25jZUluc3RydWN0aW9uXTtcbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3QgTWVtbyBTb2xhbmEgaW5zdHJ1Y3Rpb25zXG4gKlxuICogQHBhcmFtIHtNZW1vfSBkYXRhIC0gdGhlIGRhdGEgdG8gYnVpbGQgdGhlIGluc3RydWN0aW9uXG4gKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25JbnN0cnVjdGlvbltdfSBBbiBhcnJheSBjb250YWluaW5nIE1lbW8gU29sYW5hIGluc3RydWN0aW9uXG4gKi9cbmZ1bmN0aW9uIG1lbW9JbnN0cnVjdGlvbihkYXRhOiBNZW1vKTogVHJhbnNhY3Rpb25JbnN0cnVjdGlvbltdIHtcbiAgY29uc3Qge1xuICAgIHBhcmFtczogeyBtZW1vIH0sXG4gIH0gPSBkYXRhO1xuICBhc3NlcnQobWVtbywgJ01pc3NpbmcgbWVtbyBwYXJhbScpO1xuICBjb25zdCBtZW1vSW5zdHJ1Y3Rpb24gPSBuZXcgVHJhbnNhY3Rpb25JbnN0cnVjdGlvbih7XG4gICAga2V5czogW10sXG4gICAgcHJvZ3JhbUlkOiBuZXcgUHVibGljS2V5KE1FTU9fUFJPR1JBTV9QSyksXG4gICAgZGF0YTogQnVmZmVyLmZyb20obWVtbyksXG4gIH0pO1xuICByZXR1cm4gW21lbW9JbnN0cnVjdGlvbl07XG59XG5cbi8qKlxuICogQ29uc3RydWN0IFRyYW5zZmVyIFNvbGFuYSBpbnN0cnVjdGlvbnNcbiAqXG4gKiBAcGFyYW0ge1RyYW5zZmVyfSBkYXRhIC0gdGhlIGRhdGEgdG8gYnVpbGQgdGhlIGluc3RydWN0aW9uXG4gKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25JbnN0cnVjdGlvbltdfSBBbiBhcnJheSBjb250YWluaW5nIFRyYW5zZmVyIFNvbGFuYSBpbnN0cnVjdGlvblxuICovXG5mdW5jdGlvbiB0cmFuc2Zlckluc3RydWN0aW9uKGRhdGE6IFRyYW5zZmVyKTogVHJhbnNhY3Rpb25JbnN0cnVjdGlvbltdIHtcbiAgY29uc3Qge1xuICAgIHBhcmFtczogeyBmcm9tQWRkcmVzcywgdG9BZGRyZXNzLCBhbW91bnQgfSxcbiAgfSA9IGRhdGE7XG4gIGFzc2VydChmcm9tQWRkcmVzcywgJ01pc3NpbmcgZnJvbUFkZHJlc3MgcGFyYW0nKTtcbiAgYXNzZXJ0KHRvQWRkcmVzcywgJ01pc3NpbmcgdG9BZGRyZXNzIHBhcmFtJyk7XG4gIGFzc2VydChhbW91bnQsICdNaXNzaW5nIHRvQWRkcmVzcyBwYXJhbScpO1xuICBjb25zdCB0cmFuc2Zlckluc3RydWN0aW9uID0gU3lzdGVtUHJvZ3JhbS50cmFuc2Zlcih7XG4gICAgZnJvbVB1YmtleTogbmV3IFB1YmxpY0tleShmcm9tQWRkcmVzcyksXG4gICAgdG9QdWJrZXk6IG5ldyBQdWJsaWNLZXkodG9BZGRyZXNzKSxcbiAgICBsYW1wb3J0czogbmV3IEJpZ051bWJlcihhbW91bnQpLnRvTnVtYmVyKCksXG4gIH0pO1xuICByZXR1cm4gW3RyYW5zZmVySW5zdHJ1Y3Rpb25dO1xufVxuXG4vKipcbiAqIENvbnN0cnVjdCBDcmVhdGUgYW5kIEluaXRpYWxpemUgTm9uY2UgU29sYW5hIGluc3RydWN0aW9uc1xuICpcbiAqIEBwYXJhbSB7V2FsbGV0SW5pdH0gZGF0YSAtIHRoZSBkYXRhIHRvIGJ1aWxkIHRoZSBpbnN0cnVjdGlvblxuICogQHJldHVybnMge1RyYW5zYWN0aW9uSW5zdHJ1Y3Rpb25bXX0gQW4gYXJyYXkgY29udGFpbmluZyBDcmVhdGUgYW5kIEluaXRpYWxpemUgTm9uY2UgU29sYW5hIGluc3RydWN0aW9uXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZU5vbmNlQWNjb3VudEluc3RydWN0aW9uKGRhdGE6IFdhbGxldEluaXQpOiBUcmFuc2FjdGlvbkluc3RydWN0aW9uW10ge1xuICBjb25zdCB7XG4gICAgcGFyYW1zOiB7IGZyb21BZGRyZXNzLCBub25jZUFkZHJlc3MsIGF1dGhBZGRyZXNzLCBhbW91bnQgfSxcbiAgfSA9IGRhdGE7XG4gIGFzc2VydChmcm9tQWRkcmVzcywgJ01pc3NpbmcgZnJvbUFkZHJlc3MgcGFyYW0nKTtcbiAgYXNzZXJ0KG5vbmNlQWRkcmVzcywgJ01pc3Npbmcgbm9uY2VBZGRyZXNzIHBhcmFtJyk7XG4gIGFzc2VydChhdXRoQWRkcmVzcywgJ01pc3NpbmcgYXV0aEFkZHJlc3MgcGFyYW0nKTtcbiAgYXNzZXJ0KGFtb3VudCwgJ01pc3NpbmcgYW1vdW50IHBhcmFtJyk7XG4gIGNvbnN0IG5vbmNlQWNjb3VudEluc3RydWN0aW9uID0gU3lzdGVtUHJvZ3JhbS5jcmVhdGVOb25jZUFjY291bnQoe1xuICAgIGZyb21QdWJrZXk6IG5ldyBQdWJsaWNLZXkoZnJvbUFkZHJlc3MpLFxuICAgIG5vbmNlUHVia2V5OiBuZXcgUHVibGljS2V5KG5vbmNlQWRkcmVzcyksXG4gICAgYXV0aG9yaXplZFB1YmtleTogbmV3IFB1YmxpY0tleShhdXRoQWRkcmVzcyksXG4gICAgbGFtcG9ydHM6IG5ldyBCaWdOdW1iZXIoYW1vdW50KS50b051bWJlcigpLFxuICB9KTtcbiAgcmV0dXJuIG5vbmNlQWNjb3VudEluc3RydWN0aW9uLmluc3RydWN0aW9ucztcbn1cbiJdfQ==
@@ -0,0 +1,52 @@
1
+ import { BaseTransaction, TransactionType } from '../baseCoin';
2
+ import { BaseCoin as CoinConfig } from '@bitgo/statics';
3
+ import { Transaction as SolTransaction } from '@solana/web3.js';
4
+ import { TransactionExplanation, TxData } from './iface';
5
+ import { KeyPair } from '.';
6
+ export declare class Transaction extends BaseTransaction {
7
+ private _solTransaction;
8
+ protected _type: TransactionType;
9
+ constructor(_coinConfig: Readonly<CoinConfig>);
10
+ get solTransaction(): SolTransaction;
11
+ set solTransaction(tx: SolTransaction);
12
+ set id(id: string);
13
+ get id(): string;
14
+ /** @inheritDoc */
15
+ get signature(): string[];
16
+ /**
17
+ * Set the transaction type.
18
+ *
19
+ * @param {TransactionType} transactionType The transaction type to be set.
20
+ */
21
+ setTransactionType(transactionType: TransactionType): void;
22
+ /** @inheritdoc */
23
+ canSign(): boolean;
24
+ /**
25
+ * Signs transaction.
26
+ *
27
+ * @param {KeyPair} keyPair Signer keys.
28
+ */
29
+ sign(keyPair: KeyPair[] | KeyPair): Promise<void>;
30
+ /** @inheritdoc */
31
+ toBroadcastFormat(): string;
32
+ /**
33
+ * Sets this transaction payload
34
+ *
35
+ * @param rawTransaction
36
+ */
37
+ fromRawTransaction(rawTransaction: string): void;
38
+ /** @inheritdoc */
39
+ toJson(): TxData;
40
+ /**
41
+ * Get the nonce from the Solana Transaction
42
+ * Throws if not set
43
+ */
44
+ private getNonce;
45
+ /**
46
+ * Load the input and output data on this transaction.
47
+ */
48
+ loadInputsAndOutputs(): void;
49
+ /** @inheritDoc */
50
+ explainTransaction(): TransactionExplanation;
51
+ }
52
+ //# sourceMappingURL=transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../src/coin/sol/transaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAgC,WAAW,IAAI,cAAc,EAAqB,MAAM,iBAAiB,CAAC;AACjH,OAAO,EAAkB,sBAAsB,EAAE,MAAM,EAAyC,MAAM,SAAS,CAAC;AAGhH,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC;AAK5B,qBAAa,WAAY,SAAQ,eAAe;IAC9C,OAAO,CAAC,eAAe,CAAiB;IACxC,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC;gBAErB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,IAAI,cAAc,IAAI,cAAc,CAEnC;IAED,IAAI,cAAc,CAAC,EAAE,EAAE,cAAc,EAEpC;IAED,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAEhB;IAED,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,kBAAkB;IAClB,IAAI,SAAS,IAAI,MAAM,EAAE,CAUxB;IAED;;;;OAIG;IACH,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAI1D,kBAAkB;IAClB,OAAO,IAAI,OAAO;IAIlB;;;;OAIG;IACG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBvD,kBAAkB;IAClB,iBAAiB,IAAI,MAAM;IAiB3B;;;;OAIG;IACH,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAuBhD,kBAAkB;IAClB,MAAM,IAAI,MAAM;IAyBhB;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAUhB;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAmC5B,kBAAkB;IAClB,kBAAkB,IAAI,sBAAsB;CAqE7C"}