@ledgerhq/live-common 21.23.0 → 21.25.1

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 (117) hide show
  1. package/lib/data/icons/react/index.d.ts +1 -0
  2. package/lib/data/icons/react/index.d.ts.map +1 -1
  3. package/lib/data/icons/react/index.js +4 -2
  4. package/lib/data/icons/react/index.js.map +1 -1
  5. package/lib/data/icons/react/ssv.d.ts +8 -0
  6. package/lib/data/icons/react/ssv.d.ts.map +1 -0
  7. package/lib/data/icons/react/ssv.js +31 -0
  8. package/lib/data/icons/react/ssv.js.map +1 -0
  9. package/lib/data/icons/reactNative/index.d.ts +1 -0
  10. package/lib/data/icons/reactNative/index.d.ts.map +1 -1
  11. package/lib/data/icons/reactNative/index.js +4 -2
  12. package/lib/data/icons/reactNative/index.js.map +1 -1
  13. package/lib/data/icons/reactNative/ssv.d.ts +8 -0
  14. package/lib/data/icons/reactNative/ssv.d.ts.map +1 -0
  15. package/lib/data/icons/reactNative/ssv.js +32 -0
  16. package/lib/data/icons/reactNative/ssv.js.map +1 -0
  17. package/lib/env.d.ts +10 -5
  18. package/lib/env.d.ts.map +1 -1
  19. package/lib/env.js +5 -0
  20. package/lib/env.js.map +1 -1
  21. package/lib/env.react.d.ts +1 -1
  22. package/lib/env.react.d.ts.map +1 -1
  23. package/lib/families/bitcoin/js-synchronisation.d.ts.map +1 -1
  24. package/lib/families/bitcoin/js-synchronisation.js +10 -12
  25. package/lib/families/bitcoin/js-synchronisation.js.map +1 -1
  26. package/lib/families/bitcoin/wallet-btc/crypto/base.d.ts.map +1 -1
  27. package/lib/families/bitcoin/wallet-btc/crypto/base.js +30 -22
  28. package/lib/families/bitcoin/wallet-btc/crypto/base.js.map +1 -1
  29. package/lib/families/bitcoin/wallet-btc/crypto/bip32.d.ts +11 -0
  30. package/lib/families/bitcoin/wallet-btc/crypto/bip32.d.ts.map +1 -0
  31. package/lib/families/bitcoin/wallet-btc/crypto/bip32.js +32 -0
  32. package/lib/families/bitcoin/wallet-btc/crypto/bip32.js.map +1 -0
  33. package/lib/families/bitcoin/wallet-btc/crypto/decred.d.ts.map +1 -1
  34. package/lib/families/bitcoin/wallet-btc/crypto/decred.js +3 -114
  35. package/lib/families/bitcoin/wallet-btc/crypto/decred.js.map +1 -1
  36. package/lib/families/bitcoin/wallet-btc/storage/index.d.ts +24 -8
  37. package/lib/families/bitcoin/wallet-btc/storage/index.d.ts.map +1 -1
  38. package/lib/families/bitcoin/wallet-btc/storage/index.js +114 -128
  39. package/lib/families/bitcoin/wallet-btc/storage/index.js.map +1 -1
  40. package/lib/families/bitcoin/wallet-btc/storage/types.d.ts +8 -7
  41. package/lib/families/bitcoin/wallet-btc/storage/types.d.ts.map +1 -1
  42. package/lib/families/bitcoin/wallet-btc/xpub.d.ts.map +1 -1
  43. package/lib/families/bitcoin/wallet-btc/xpub.js +42 -63
  44. package/lib/families/bitcoin/wallet-btc/xpub.js.map +1 -1
  45. package/lib/families/crypto_org/deviceTransactionConfig.d.ts +11 -0
  46. package/lib/families/crypto_org/deviceTransactionConfig.d.ts.map +1 -0
  47. package/lib/families/crypto_org/deviceTransactionConfig.js +40 -0
  48. package/lib/families/crypto_org/deviceTransactionConfig.js.map +1 -0
  49. package/lib/families/ethereum/modules/compound.d.ts.map +1 -1
  50. package/lib/families/ethereum/modules/compound.js +2 -1
  51. package/lib/families/ethereum/modules/compound.js.map +1 -1
  52. package/lib/families/ethereum/modules/erc1155.d.ts.map +1 -1
  53. package/lib/families/ethereum/modules/erc1155.js +2 -1
  54. package/lib/families/ethereum/modules/erc1155.js.map +1 -1
  55. package/lib/families/ethereum/modules/erc20.d.ts.map +1 -1
  56. package/lib/families/ethereum/modules/erc20.js +2 -1
  57. package/lib/families/ethereum/modules/erc20.js.map +1 -1
  58. package/lib/families/ethereum/modules/erc721.d.ts.map +1 -1
  59. package/lib/families/ethereum/modules/erc721.js +2 -1
  60. package/lib/families/ethereum/modules/erc721.js.map +1 -1
  61. package/lib/families/ethereum/modules/index.d.ts +5 -0
  62. package/lib/families/ethereum/modules/index.d.ts.map +1 -1
  63. package/lib/families/ethereum/modules/index.js.map +1 -1
  64. package/lib/families/ethereum/signOperation.d.ts.map +1 -1
  65. package/lib/families/ethereum/signOperation.js +33 -24
  66. package/lib/families/ethereum/signOperation.js.map +1 -1
  67. package/lib/families/polkadot/address.d.ts.map +1 -1
  68. package/lib/families/polkadot/address.js +5 -1
  69. package/lib/families/polkadot/address.js.map +1 -1
  70. package/lib/families/polkadot/js-getTransactionStatus.d.ts.map +1 -1
  71. package/lib/families/polkadot/js-getTransactionStatus.js +6 -2
  72. package/lib/families/polkadot/js-getTransactionStatus.js.map +1 -1
  73. package/lib/families/tezos/bridge/js.d.ts.map +1 -1
  74. package/lib/families/tezos/bridge/js.js +32 -16
  75. package/lib/families/tezos/bridge/js.js.map +1 -1
  76. package/lib/families/tezos/signOperation.d.ts.map +1 -1
  77. package/lib/families/tezos/signOperation.js +9 -0
  78. package/lib/families/tezos/signOperation.js.map +1 -1
  79. package/lib/families/tezos/synchronisation.js +1 -1
  80. package/lib/families/tezos/synchronisation.js.map +1 -1
  81. package/lib/generated/deviceTransactionConfig.d.ts +2 -0
  82. package/lib/generated/deviceTransactionConfig.d.ts.map +1 -1
  83. package/lib/generated/deviceTransactionConfig.js +18 -16
  84. package/lib/generated/deviceTransactionConfig.js.map +1 -1
  85. package/lib/hw/actions/transaction.d.ts +3 -1
  86. package/lib/hw/actions/transaction.d.ts.map +1 -1
  87. package/lib/hw/actions/transaction.js +4 -2
  88. package/lib/hw/actions/transaction.js.map +1 -1
  89. package/package.json +8 -8
  90. package/src/__tests__/__snapshots__/all.libcore.ts.snap +7 -7
  91. package/src/data/icons/react/index.tsx +1 -0
  92. package/src/data/icons/react/ssv.tsx +12 -0
  93. package/src/data/icons/reactNative/index.tsx +1 -0
  94. package/src/data/icons/reactNative/ssv.tsx +13 -0
  95. package/src/data/icons/svg/SSV.svg +4 -0
  96. package/src/env.ts +5 -0
  97. package/src/families/bitcoin/js-synchronisation.ts +14 -13
  98. package/src/families/bitcoin/wallet-btc/crypto/base.ts +33 -21
  99. package/src/families/bitcoin/wallet-btc/crypto/bip32.ts +36 -0
  100. package/src/families/bitcoin/wallet-btc/crypto/decred.ts +3 -154
  101. package/src/families/bitcoin/wallet-btc/storage/index.ts +23 -11
  102. package/src/families/bitcoin/wallet-btc/storage/types.ts +8 -10
  103. package/src/families/bitcoin/wallet-btc/xpub.ts +14 -10
  104. package/src/families/crypto_org/deviceTransactionConfig.ts +52 -0
  105. package/src/families/ethereum/modules/compound.ts +2 -0
  106. package/src/families/ethereum/modules/erc1155.ts +2 -0
  107. package/src/families/ethereum/modules/erc20.ts +2 -0
  108. package/src/families/ethereum/modules/erc721.ts +2 -0
  109. package/src/families/ethereum/modules/index.ts +10 -0
  110. package/src/families/ethereum/signOperation.ts +27 -8
  111. package/src/families/polkadot/address.ts +8 -2
  112. package/src/families/polkadot/js-getTransactionStatus.ts +6 -2
  113. package/src/families/tezos/bridge/js.ts +38 -17
  114. package/src/families/tezos/signOperation.ts +12 -0
  115. package/src/families/tezos/synchronisation.ts +1 -1
  116. package/src/generated/deviceTransactionConfig.ts +3 -0
  117. package/src/hw/actions/transaction.ts +7 -2
@@ -45,117 +45,7 @@ var bs58check_1 = __importDefault(require("bs58check"));
45
45
  var blake_hash_1 = __importDefault(require("blake-hash"));
46
46
  var ripemd160_1 = __importDefault(require("ripemd160"));
47
47
  var bs58_1 = __importDefault(require("bs58"));
48
- var tiny_secp256k1_1 = __importDefault(require("tiny-secp256k1"));
49
- var create_hash_1 = __importDefault(require("create-hash"));
50
- var create_hmac_1 = __importDefault(require("create-hmac"));
51
- // the BIP32 class is inspired from https://github.com/bitcoinjs/bip32/blob/master/src/bip32.js
52
- var BIP32 = /** @class */ (function () {
53
- function BIP32(privateKey, publicKey, chainCode, network, depth, index, ParentFingerprint) {
54
- if (depth === void 0) { depth = 0; }
55
- if (index === void 0) { index = 0; }
56
- if (ParentFingerprint === void 0) { ParentFingerprint = 0x00000000; }
57
- this.privateKey = privateKey;
58
- this.publicKey = publicKey;
59
- this.chainCode = chainCode;
60
- this.network = network;
61
- this.depth = depth;
62
- this.index = index;
63
- this.ParentFingerprint = ParentFingerprint;
64
- this.lowR = false;
65
- }
66
- BIP32.prototype.pk = function () {
67
- if (this.publicKey === undefined)
68
- this.publicKey = tiny_secp256k1_1["default"].pointFromScalar(this.privateKey, true);
69
- return this.publicKey;
70
- };
71
- BIP32.prototype.isNeutered = function () {
72
- return this.privateKey === undefined;
73
- };
74
- BIP32.prototype.neutered = function () {
75
- return new BIP32(undefined, this.pk(), this.chainCode, this.network, this.depth, this.index, this.ParentFingerprint);
76
- };
77
- BIP32.prototype.hmacSHA512 = function (key, data) {
78
- return (0, create_hmac_1["default"])("sha512", key).update(data).digest();
79
- };
80
- BIP32.prototype.hashSHA256 = function (buffer) {
81
- return (0, create_hash_1["default"])("sha256").update(buffer).digest();
82
- };
83
- BIP32.prototype.fingerprint = function () {
84
- return this.hashSHA256(this.pk()).slice(0, 4);
85
- };
86
- BIP32.prototype.toBase58 = function () {
87
- var network = this.network;
88
- var version = !this.isNeutered()
89
- ? network.bip32.private
90
- : network.bip32.public;
91
- var buffer = Buffer.allocUnsafe(78);
92
- // 4 bytes: version bytes
93
- buffer.writeUInt32BE(version, 0);
94
- // 1 byte: depth: 0x00 for master nodes, 0x01 for level-1 descendants, ....
95
- buffer.writeUInt8(this.depth, 4);
96
- // 4 bytes: the fingerprint of the parent's key (0x00000000 if master key)
97
- buffer.writeUInt32BE(this.ParentFingerprint, 5);
98
- // 4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
99
- // This is encoded in big endian. (0x00000000 if master key)
100
- buffer.writeUInt32BE(this.index, 9);
101
- // 32 bytes: the chain code
102
- this.chainCode.copy(buffer, 13);
103
- // 33 bytes: the public key or private key data
104
- if (!this.isNeutered()) {
105
- // 0x00 + k for private keys
106
- buffer.writeUInt8(0, 45);
107
- this.privateKey.copy(buffer, 46);
108
- // 33 bytes: the public key
109
- }
110
- else {
111
- // X9.62 encoding for public keys
112
- this.pk().copy(buffer, 45);
113
- }
114
- return bs58check_1["default"].encode(buffer);
115
- };
116
- // https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#child-key-derivation-ckd-functions
117
- BIP32.prototype.derive = function (index) {
118
- var isHardened = index >= 0x80000000;
119
- var data = Buffer.allocUnsafe(37);
120
- // Hardened child
121
- if (isHardened) {
122
- data[0] = 0x00;
123
- this.privateKey.copy(data, 1);
124
- data.writeUInt32BE(index, 33);
125
- }
126
- else {
127
- this.pk().copy(data, 0);
128
- data.writeUInt32BE(index, 33);
129
- }
130
- var I = this.hmacSHA512(this.chainCode, data);
131
- var IL = I.slice(0, 32);
132
- var IR = I.slice(32);
133
- // if parse256(IL) >= n, proceed with the next value for i
134
- if (!tiny_secp256k1_1["default"].isPrivate(IL))
135
- return this.derive(index + 1);
136
- // Private parent key -> private child key
137
- var hd;
138
- if (!this.isNeutered()) {
139
- // ki = parse256(IL) + kpar (mod n)
140
- var ki = tiny_secp256k1_1["default"].privateAdd(this.privateKey, IL);
141
- // In case ki == 0, proceed with the next value for i
142
- if (ki == null)
143
- return this.derive(index + 1);
144
- hd = new BIP32(ki, undefined, IR, this.network, this.depth + 1, index, this.fingerprint().readUInt32BE(0));
145
- }
146
- else {
147
- // Ki = point(parse256(IL)) + Kpar
148
- // = G*IL + Kpar
149
- var Ki = tiny_secp256k1_1["default"].pointAddScalar(this.pk(), IL, true);
150
- // In case Ki is the point at infinity, proceed with the next value for i
151
- if (Ki === null)
152
- return this.derive(index + 1);
153
- hd = new BIP32(undefined, Ki, IR, this.network, this.depth + 1, index, this.fingerprint().readUInt32BE(0));
154
- }
155
- return hd;
156
- };
157
- return BIP32;
158
- }());
48
+ var bip32_1 = __importDefault(require("./bip32"));
159
49
  var Decred = /** @class */ (function (_super) {
160
50
  __extends(Decred, _super);
161
51
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -226,12 +116,11 @@ var Decred = /** @class */ (function (_super) {
226
116
  buffer = bs58check_1["default"].decode(xpub);
227
117
  }
228
118
  var depth = buffer[4];
229
- var parentFingerprint = buffer.readUInt32BE(5);
230
119
  var i = buffer.readUInt32BE(9);
231
120
  var chainCode = buffer.slice(13, 45);
232
121
  var X = buffer.slice(45, 78);
233
- var hd = new BIP32(undefined, X, chainCode, this.network, depth, i, parentFingerprint);
234
- var publicKey = hd.derive(account).derive(index).pk();
122
+ var hd = new bip32_1["default"](X, chainCode, this.network, depth, i);
123
+ var publicKey = hd.derive(account).derive(index).publicKey;
235
124
  var address = Decred.getAddressFromPk(publicKey);
236
125
  base_1["default"].addressCache["".concat(derivationMode, "-").concat(xpub, "-").concat(account, "-").concat(index)] =
237
126
  address;
@@ -1 +1 @@
1
- {"version":3,"file":"decred.js","sourceRoot":"","sources":["../../../../../src/families/bitcoin/wallet-btc/crypto/decred.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decred.js","sourceRoot":"","sources":["../../../../../src/families/bitcoin/wallet-btc/crypto/decred.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,2CAAkD;AAClD,iDAAqC;AACrC,wDAA2C;AAC3C,wDAAkC;AAClC,0DAAyC;AACzC,wDAAkC;AAClC,8CAAwB;AACxB,kDAA4B;AAE5B;IAAqB,0BAAI;IACvB,8DAA8D;IAC9D,gBAAY,EAA6B;YAA3B,OAAO,aAAA;QAArB,YACE,kBAAM,EAAE,OAAO,SAAA,EAAE,CAAC,SAInB;QAHC,KAAI,CAAC,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC;QACnC,KAAI,CAAC,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC;QAClC,KAAI,CAAC,OAAO,CAAC,0BAA0B,GAAG,KAAK,CAAC;;IAClD,CAAC;IACM,eAAQ,GAAf,UAAgB,MAAc;QAC5B,IAAI,CAAC,GAAG,MAAM,CAAC;QACf,IAAI,MAAM,YAAY,UAAU,EAAE;YAChC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACzB;QACD,OAAO,IAAA,uBAAe,EAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACxD,CAAC;IAED,8EAA8E;IACvE,uBAAgB,GAAvB,UAAwB,SAAiB;QACvC,IAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC1C,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC3B,MAAM;YACN,IAAI,sBAAS,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE;SAC5D,CAAC,CAAC;QACH,IAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxD,OAAO,iBAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;IAKD,+BAAc,GAAd,UAAe,OAAe;QAC5B,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;YAClC,MAAM,IAAI,uBAAc,EAAE,CAAC;SAC5B;QACD,IAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAC1E,IAAM,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3D,IAAI,MAAM,KAAK,IAAI,EAAE;YACnB,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;iBACtD,MAAgB,CAAC;SACrB;aAAM,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,EAAE;YAC7C,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvD,MAAgB,CAAC;SACrB;QACD,MAAM,IAAI,uBAAc,EAAE,CAAC;IAC7B,CAAC;IAED,kDAAkD;IAClD,gCAAe,GAAf,UAAgB,OAAe;QAC7B,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE;YAC9C,OAAO,KAAK,CAAC;SACd;QACD,IAAI;YACF,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;SACtD;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oCAAoC;IACpC,2BAAU,GAAV,UACE,cAAsB,EACtB,IAAY,EACZ,OAAe,EACf,KAAa;QAEb,IAAI,iBAAI,CAAC,YAAY,CAAC,UAAG,cAAc,cAAI,IAAI,cAAI,OAAO,cAAI,KAAK,CAAE,CAAC,EAAE;YACtE,OAAO,iBAAI,CAAC,YAAY,CAAC,UAAG,cAAc,cAAI,IAAI,cAAI,OAAO,cAAI,KAAK,CAAE,CAAC,CAAC;SAC3E;QACD,IAAI,MAAc,CAAC;QACnB,IAAI;YACF,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACxC;QAAC,WAAM;YACN,MAAM,GAAG,sBAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACjC;QACD,IAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,IAAM,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACjC,IAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACvC,IAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/B,IAAM,EAAE,GAAG,IAAI,kBAAK,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3D,IAAM,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;QAC7D,IAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACnD,iBAAI,CAAC,YAAY,CAAC,UAAG,cAAc,cAAI,IAAI,cAAI,OAAO,cAAI,KAAK,CAAE,CAAC;YAChE,OAAO,CAAC;QACV,OAAO,OAAO,CAAC;IACjB,CAAC;IA1De,kBAAW,GAAG,UAAC,MAAc;QAC3C,OAAA,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAAxC,CAAwC,CAAC;IAC3B,gBAAS,GAAG,IAAA,iBAAa,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAyDhE,aAAC;CAAA,AAtFD,CAAqB,iBAAI,GAsFxB;AAED,qBAAe,MAAM,CAAC"}
@@ -7,6 +7,9 @@ declare class BitcoinLikeStorage implements IStorage {
7
7
  unspentUtxos: {
8
8
  [key: string]: Output[];
9
9
  };
10
+ addressCache: {
11
+ [key: string]: string;
12
+ };
10
13
  spentUtxos: {
11
14
  [key: string]: Input[];
12
15
  };
@@ -15,26 +18,27 @@ declare class BitcoinLikeStorage implements IStorage {
15
18
  index?: number;
16
19
  address?: string;
17
20
  confirmed?: boolean;
18
- }): Promise<TX | undefined>;
19
- getTx(address: string, hash: string): Promise<TX>;
20
- getAddressUnspentUtxos(address: Address): Promise<Output[]>;
21
- appendTxs(txs: TX[]): Promise<number>;
21
+ }): TX | undefined;
22
+ getTx(address: string, hash: string): TX;
23
+ getAddressUnspentUtxos(address: Address): Output[];
24
+ appendTxs(txs: TX[]): number;
22
25
  getUniquesAddresses(addressesFilter: {
23
26
  account?: number;
24
27
  index?: number;
25
- }): Promise<{
28
+ }): {
26
29
  address: string;
27
30
  account: number;
28
31
  index: number;
29
- }[]>;
32
+ }[];
30
33
  removeTxs(txsFilter: {
31
34
  account: number;
32
35
  index: number;
33
- }): Promise<void>;
36
+ }): void;
34
37
  removePendingTxs(txsFilter: {
35
38
  account: number;
36
39
  index: number;
37
- }): Promise<void>;
40
+ }): void;
41
+ addAddress(key: string, address: string): void;
38
42
  exportSync(): {
39
43
  txs: TX[];
40
44
  primaryIndex: {
@@ -43,6 +47,9 @@ declare class BitcoinLikeStorage implements IStorage {
43
47
  unspentUtxos: {
44
48
  [key: string]: Output[];
45
49
  };
50
+ addressCache: {
51
+ [key: string]: string;
52
+ };
46
53
  };
47
54
  loadSync(data: {
48
55
  txs: TX[];
@@ -52,6 +59,9 @@ declare class BitcoinLikeStorage implements IStorage {
52
59
  unspentUtxos: {
53
60
  [key: string]: Output[];
54
61
  };
62
+ addressCache: {
63
+ [key: string]: string;
64
+ };
55
65
  }): void;
56
66
  export(): Promise<{
57
67
  txs: TX[];
@@ -61,6 +71,9 @@ declare class BitcoinLikeStorage implements IStorage {
61
71
  unspentUtxos: {
62
72
  [key: string]: Output[];
63
73
  };
74
+ addressCache: {
75
+ [key: string]: string;
76
+ };
64
77
  }>;
65
78
  load(data: {
66
79
  txs: TX[];
@@ -70,6 +83,9 @@ declare class BitcoinLikeStorage implements IStorage {
70
83
  unspentUtxos: {
71
84
  [key: string]: Output[];
72
85
  };
86
+ addressCache: {
87
+ [key: string]: string;
88
+ };
73
89
  }): Promise<void>;
74
90
  }
75
91
  export default BitcoinLikeStorage;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/families/bitcoin/wallet-btc/storage/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAI/D,cAAM,kBAAmB,YAAW,QAAQ;IAC1C,GAAG,EAAE,EAAE,EAAE,CAAM;IAGf,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAM;IAG7C,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAM;IAK/C,UAAU,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE,CAAA;KAAE,CAAM;IAEtC,SAAS,CAAC,QAAQ,EAAE;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB;IAgBK,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAMnC,sBAAsB,CAAC,OAAO,EAAE,OAAO;IAKvC,SAAS,CAAC,GAAG,EAAE,EAAE,EAAE;IAgDnB,mBAAmB,CAAC,eAAe,EAAE;QACzC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB;;;;;IAcK,SAAS,CAAC,SAAS,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;IAuBvD,gBAAgB,CAAC,SAAS,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;IA2BpE,UAAU;;;;;;;;;IAQV,QAAQ,CAAC,IAAI,EAAE;QACb,GAAG,EAAE,EAAE,EAAE,CAAC;QACV,YAAY,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;QACxC,YAAY,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;SAAE,CAAC;KAC3C;IAMK,MAAM;;;;;;;;;IAIN,IAAI,CAAC,IAAI,EAAE;QACf,GAAG,EAAE,EAAE,EAAE,CAAC;QACV,YAAY,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;QACxC,YAAY,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;SAAE,CAAC;KAC3C;CAGF;AAED,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/families/bitcoin/wallet-btc/storage/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAI/D,cAAM,kBAAmB,YAAW,QAAQ;IAC1C,GAAG,EAAE,EAAE,EAAE,CAAM;IAGf,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAM;IAG7C,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAM;IAE/C,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAM;IAK7C,UAAU,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE,CAAA;KAAE,CAAM;IAE5C,SAAS,CAAC,QAAQ,EAAE;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB;IAgBD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAMnC,sBAAsB,CAAC,OAAO,EAAE,OAAO;IAKvC,SAAS,CAAC,GAAG,EAAE,EAAE,EAAE;IAgDnB,mBAAmB,CAAC,eAAe,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;IAczE,SAAS,CAAC,SAAS,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;IAuBvD,gBAAgB,CAAC,SAAS,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;IA2B9D,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAO9C,UAAU;;;;;;;;;;;;IASV,QAAQ,CAAC,IAAI,EAAE;QACb,GAAG,EAAE,EAAE,EAAE,CAAC;QACV,YAAY,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;QACxC,YAAY,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;SAAE,CAAC;QAC1C,YAAY,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;KACzC;IAQK,MAAM;;;;;;;;;;;;IAIN,IAAI,CAAC,IAAI,EAAE;QACf,GAAG,EAAE,EAAE,EAAE,CAAC;QACV,YAAY,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;QACxC,YAAY,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;SAAE,CAAC;QAC1C,YAAY,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;KACzC;CAGF;AAED,eAAe,kBAAkB,CAAC"}
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
14
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
15
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -35,8 +46,12 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
35
46
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
47
  }
37
48
  };
49
+ var __importDefault = (this && this.__importDefault) || function (mod) {
50
+ return (mod && mod.__esModule) ? mod : { "default": mod };
51
+ };
38
52
  exports.__esModule = true;
39
53
  var lodash_1 = require("lodash");
54
+ var base_1 = __importDefault(require("../crypto/base"));
40
55
  // a mock storage class that just use js objects
41
56
  // sql.js would be perfect for the job
42
57
  var BitcoinLikeStorage = /** @class */ (function () {
@@ -46,172 +61,143 @@ var BitcoinLikeStorage = /** @class */ (function () {
46
61
  this.primaryIndex = {};
47
62
  // accounting
48
63
  this.unspentUtxos = {};
64
+ this.addressCache = {};
49
65
  // only needed to handle the case when the input
50
66
  // is seen before the output (typically explorer
51
67
  // returning unordered tx within the same block)
52
68
  this.spentUtxos = {};
53
69
  }
54
70
  BitcoinLikeStorage.prototype.getLastTx = function (txFilter) {
55
- return __awaiter(this, void 0, void 0, function () {
56
- var tx;
57
- return __generator(this, function (_a) {
58
- tx = (0, lodash_1.findLast)(this.txs, function (t) {
59
- return ((!(0, lodash_1.has)(txFilter, "account") || t.account === txFilter.account) &&
60
- (!(0, lodash_1.has)(txFilter, "index") || t.index === txFilter.index) &&
61
- (!(0, lodash_1.has)(txFilter, "address") || t.address === txFilter.address) &&
62
- (!(0, lodash_1.has)(txFilter, "confirmed") ||
63
- (txFilter.confirmed && t.block) ||
64
- (!txFilter.confirmed && !t.block)));
65
- });
66
- return [2 /*return*/, tx];
67
- });
71
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
72
+ // @ts-ignore
73
+ var tx = (0, lodash_1.findLast)(this.txs, function (t) {
74
+ return ((!(0, lodash_1.has)(txFilter, "account") || t.account === txFilter.account) &&
75
+ (!(0, lodash_1.has)(txFilter, "index") || t.index === txFilter.index) &&
76
+ (!(0, lodash_1.has)(txFilter, "address") || t.address === txFilter.address) &&
77
+ (!(0, lodash_1.has)(txFilter, "confirmed") ||
78
+ (txFilter.confirmed && t.block) ||
79
+ (!txFilter.confirmed && !t.block)));
68
80
  });
81
+ return tx;
69
82
  };
70
83
  BitcoinLikeStorage.prototype.getTx = function (address, hash) {
71
- return __awaiter(this, void 0, void 0, function () {
72
- var index;
73
- return __generator(this, function (_a) {
74
- index = "".concat(address, "-").concat(hash);
75
- return [2 /*return*/, this.txs[this.primaryIndex[index]]];
76
- });
77
- });
84
+ var index = "".concat(address, "-").concat(hash);
85
+ return this.txs[this.primaryIndex[index]];
78
86
  };
79
87
  // TODO: only expose unspentUtxos
80
88
  BitcoinLikeStorage.prototype.getAddressUnspentUtxos = function (address) {
81
- return __awaiter(this, void 0, void 0, function () {
82
- var indexAddress;
83
- return __generator(this, function (_a) {
84
- indexAddress = address.address;
85
- return [2 /*return*/, this.unspentUtxos[indexAddress]];
86
- });
87
- });
89
+ var indexAddress = address.address;
90
+ return this.unspentUtxos[indexAddress];
88
91
  };
89
92
  BitcoinLikeStorage.prototype.appendTxs = function (txs) {
90
- return __awaiter(this, void 0, void 0, function () {
91
- var lastLength;
92
- var _this = this;
93
- return __generator(this, function (_a) {
94
- lastLength = this.txs.length;
95
- txs.forEach(function (tx) {
96
- var indexAddress = tx.address;
97
- var index = "".concat(indexAddress, "-").concat(tx.hash);
98
- // we reject already seen tx
99
- if (_this.txs[_this.primaryIndex[index]]) {
100
- return;
101
- }
102
- _this.primaryIndex[index] = _this.txs.push(tx) - 1;
103
- _this.unspentUtxos[indexAddress] = _this.unspentUtxos[indexAddress] || [];
104
- _this.spentUtxos[indexAddress] = _this.spentUtxos[indexAddress] || [];
105
- tx.outputs.forEach(function (output) {
106
- if (output.address === tx.address) {
107
- _this.unspentUtxos[indexAddress].push(output);
108
- }
109
- });
110
- tx.inputs.forEach(function (input) {
111
- if (input.address === tx.address) {
112
- _this.spentUtxos[indexAddress].push(input);
113
- }
114
- });
115
- _this.unspentUtxos[indexAddress] = _this.unspentUtxos[indexAddress].filter(function (output) {
116
- var matchIndex = (0, lodash_1.findIndex)(_this.spentUtxos[indexAddress], function (input) {
117
- return input.output_hash === output.output_hash &&
118
- input.output_index === output.output_index;
119
- });
120
- if (matchIndex > -1) {
121
- _this.spentUtxos[indexAddress].splice(matchIndex, 1);
122
- return false;
123
- }
124
- return true;
125
- });
93
+ var _this = this;
94
+ var lastLength = this.txs.length;
95
+ txs.forEach(function (tx) {
96
+ var indexAddress = tx.address;
97
+ var index = "".concat(indexAddress, "-").concat(tx.hash);
98
+ // we reject already seen tx
99
+ if (_this.txs[_this.primaryIndex[index]]) {
100
+ return;
101
+ }
102
+ _this.primaryIndex[index] = _this.txs.push(tx) - 1;
103
+ _this.unspentUtxos[indexAddress] = _this.unspentUtxos[indexAddress] || [];
104
+ _this.spentUtxos[indexAddress] = _this.spentUtxos[indexAddress] || [];
105
+ tx.outputs.forEach(function (output) {
106
+ if (output.address === tx.address) {
107
+ _this.unspentUtxos[indexAddress].push(output);
108
+ }
109
+ });
110
+ tx.inputs.forEach(function (input) {
111
+ if (input.address === tx.address) {
112
+ _this.spentUtxos[indexAddress].push(input);
113
+ }
114
+ });
115
+ _this.unspentUtxos[indexAddress] = _this.unspentUtxos[indexAddress].filter(function (output) {
116
+ var matchIndex = (0, lodash_1.findIndex)(_this.spentUtxos[indexAddress], function (input) {
117
+ return input.output_hash === output.output_hash &&
118
+ input.output_index === output.output_index;
126
119
  });
127
- return [2 /*return*/, this.txs.length - lastLength];
120
+ if (matchIndex > -1) {
121
+ _this.spentUtxos[indexAddress].splice(matchIndex, 1);
122
+ return false;
123
+ }
124
+ return true;
128
125
  });
129
126
  });
127
+ return this.txs.length - lastLength;
130
128
  };
131
129
  BitcoinLikeStorage.prototype.getUniquesAddresses = function (addressesFilter) {
132
- return __awaiter(this, void 0, void 0, function () {
133
- return __generator(this, function (_a) {
134
- // TODO: to speed up, create more useful indexes in appendTxs
135
- return [2 /*return*/, (0, lodash_1.uniqBy)(
136
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
137
- // @ts-ignore
138
- (0, lodash_1.filter)(this.txs, addressesFilter).map(function (tx) { return ({
139
- address: tx.address,
140
- account: tx.account,
141
- index: tx.index
142
- }); }), "address")];
143
- });
144
- });
130
+ // TODO: to speed up, create more useful indexes in appendTxs
131
+ return (0, lodash_1.uniqBy)(
132
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
133
+ // @ts-ignore
134
+ (0, lodash_1.filter)(this.txs, addressesFilter).map(function (tx) { return ({
135
+ address: tx.address,
136
+ account: tx.account,
137
+ index: tx.index
138
+ }); }), "address");
145
139
  };
146
140
  BitcoinLikeStorage.prototype.removeTxs = function (txsFilter) {
147
- return __awaiter(this, void 0, void 0, function () {
148
- var newTxs;
149
- var _this = this;
150
- return __generator(this, function (_a) {
151
- newTxs = [];
152
- this.primaryIndex = {};
153
- this.txs.forEach(function (tx) {
154
- // clean
155
- var indexAddress = tx.address;
156
- var index = "".concat(indexAddress, "-").concat(tx.hash);
157
- if (tx.account !== txsFilter.account || tx.index !== txsFilter.index) {
158
- _this.primaryIndex[index] = newTxs.push(tx) - 1;
159
- return;
160
- }
161
- delete _this.unspentUtxos[indexAddress];
162
- delete _this.spentUtxos[indexAddress];
163
- });
164
- this.txs = newTxs;
165
- return [2 /*return*/];
166
- });
141
+ var _this = this;
142
+ var newTxs = [];
143
+ this.primaryIndex = {};
144
+ this.txs.forEach(function (tx) {
145
+ // clean
146
+ var indexAddress = tx.address;
147
+ var index = "".concat(indexAddress, "-").concat(tx.hash);
148
+ if (tx.account !== txsFilter.account || tx.index !== txsFilter.index) {
149
+ _this.primaryIndex[index] = newTxs.push(tx) - 1;
150
+ return;
151
+ }
152
+ delete _this.unspentUtxos[indexAddress];
153
+ delete _this.spentUtxos[indexAddress];
167
154
  });
155
+ this.txs = newTxs;
168
156
  };
169
157
  // We are a bit ugly because we can't rely undo unspentUTXO
170
158
  // So we clean the address and rebuild without the pendings
171
159
  BitcoinLikeStorage.prototype.removePendingTxs = function (txsFilter) {
172
- return __awaiter(this, void 0, void 0, function () {
173
- var newTxs, txsToReAdd;
174
- var _this = this;
175
- return __generator(this, function (_a) {
176
- switch (_a.label) {
177
- case 0:
178
- newTxs = [];
179
- txsToReAdd = [];
180
- this.primaryIndex = {};
181
- this.txs.forEach(function (tx) {
182
- // clean
183
- var indexAddress = tx.address;
184
- var index = "".concat(indexAddress, "-").concat(tx.hash);
185
- if (tx.account !== txsFilter.account || tx.index !== txsFilter.index) {
186
- _this.primaryIndex[index] = newTxs.push(tx) - 1;
187
- return;
188
- }
189
- if (tx.block) {
190
- txsToReAdd.push(tx);
191
- }
192
- delete _this.unspentUtxos[indexAddress];
193
- delete _this.spentUtxos[indexAddress];
194
- });
195
- this.txs = newTxs;
196
- return [4 /*yield*/, this.appendTxs(txsToReAdd)];
197
- case 1:
198
- _a.sent();
199
- return [2 /*return*/];
200
- }
201
- });
160
+ var _this = this;
161
+ var newTxs = [];
162
+ var txsToReAdd = [];
163
+ this.primaryIndex = {};
164
+ this.txs.forEach(function (tx) {
165
+ // clean
166
+ var indexAddress = tx.address;
167
+ var index = "".concat(indexAddress, "-").concat(tx.hash);
168
+ if (tx.account !== txsFilter.account || tx.index !== txsFilter.index) {
169
+ _this.primaryIndex[index] = newTxs.push(tx) - 1;
170
+ return;
171
+ }
172
+ if (tx.block) {
173
+ txsToReAdd.push(tx);
174
+ }
175
+ delete _this.unspentUtxos[indexAddress];
176
+ delete _this.spentUtxos[indexAddress];
202
177
  });
178
+ this.txs = newTxs;
179
+ this.appendTxs(txsToReAdd);
180
+ };
181
+ BitcoinLikeStorage.prototype.addAddress = function (key, address) {
182
+ if (!this.addressCache) {
183
+ this.addressCache = {};
184
+ }
185
+ this.addressCache[key] = address;
203
186
  };
204
187
  BitcoinLikeStorage.prototype.exportSync = function () {
205
188
  return {
206
189
  txs: this.txs,
207
190
  primaryIndex: this.primaryIndex,
208
- unspentUtxos: this.unspentUtxos
191
+ unspentUtxos: this.unspentUtxos,
192
+ addressCache: this.addressCache
209
193
  };
210
194
  };
211
195
  BitcoinLikeStorage.prototype.loadSync = function (data) {
212
196
  this.txs = data.txs;
213
197
  this.primaryIndex = data.primaryIndex;
214
198
  this.unspentUtxos = data.unspentUtxos;
199
+ this.addressCache = data.addressCache;
200
+ base_1["default"].addressCache = __assign(__assign({}, base_1["default"].addressCache), this.addressCache);
215
201
  };
216
202
  BitcoinLikeStorage.prototype["export"] = function () {
217
203
  return __awaiter(this, void 0, void 0, function () {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/families/bitcoin/wallet-btc/storage/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/families/bitcoin/wallet-btc/storage/index.ts"],"names":[],"mappings":"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"}
@@ -36,27 +36,28 @@ export interface Address {
36
36
  address: string;
37
37
  }
38
38
  export interface IStorage {
39
- appendTxs(txs: TX[]): Promise<number>;
40
- getAddressUnspentUtxos(address: Address): Promise<Output[]>;
39
+ appendTxs(txs: TX[]): number;
40
+ getAddressUnspentUtxos(address: Address): Output[];
41
41
  getLastTx(txFilter: {
42
42
  account?: number;
43
43
  index?: number;
44
44
  address?: string;
45
45
  confirmed?: boolean;
46
- }): Promise<TX | undefined>;
47
- getTx(address: string, hash: string): Promise<TX | undefined>;
46
+ }): TX | undefined;
47
+ getTx(address: string, hash: string): TX | undefined;
48
48
  getUniquesAddresses(addressesFilter: {
49
49
  account?: number;
50
50
  index?: number;
51
- }): Promise<Address[]>;
51
+ }): Address[];
52
52
  removeTxs(txsFilter: {
53
53
  account: number;
54
54
  index: number;
55
- }): Promise<void>;
55
+ }): void;
56
56
  removePendingTxs(txsFilter: {
57
57
  account: number;
58
58
  index: number;
59
- }): Promise<void>;
59
+ }): void;
60
+ addAddress(key: string, address: string): void;
60
61
  export(): Promise<unknown>;
61
62
  load(data: unknown): Promise<void>;
62
63
  exportSync(): unknown;