@com-chain/jsc3l 2.0.1-rc.19 → 2.0.1-rc.20

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.
@@ -51,7 +51,12 @@ export default class HttpAbstract {
51
51
  if (method === 'GET' && data && Object.keys(data).length > 0) {
52
52
  url += '?' + (new URLSearchParams(data)).toString();
53
53
  }
54
- var coreOpts = Object.assign(Object.assign({ method, data: method === 'GET' ? null : data }, opts), getHostOrUrlParts(url));
54
+ var coreOpts = {
55
+ method,
56
+ data: method === 'GET' ? null : data,
57
+ ...opts,
58
+ ...getHostOrUrlParts(url)
59
+ };
55
60
  return await this.httpRequest(coreOpts);
56
61
  }
57
62
  get(...args) { return this.request('GET', ...args); }
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/rest/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/rest/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export declare class SplitError extends Error {
2
+ constructor(message: any);
3
+ }
4
+ export declare class InsufficientBalanceError extends SplitError {
5
+ missingAmount: number;
6
+ constructor(message: any, missingAmount: any);
7
+ }
8
+ export declare class CmSpendLimitError extends SplitError {
9
+ missingAmount: number;
10
+ constructor(message: any, missingAmount: any);
11
+ }
12
+ export declare let getSplitting: (amount: any, bals: any, cmSrcMin: any, cmSpendMax?: any) => {
13
+ nant: number;
14
+ cm: number;
15
+ };
package/build/utils.js ADDED
@@ -0,0 +1,270 @@
1
+ export class SplitError extends Error {
2
+ constructor(message) {
3
+ super(message);
4
+ this.name = 'SplitError';
5
+ }
6
+ }
7
+ export class InsufficientBalanceError extends SplitError {
8
+ constructor(message, missingAmount) {
9
+ super(message);
10
+ this.name = 'InsufficientBalanceError';
11
+ this.missingAmount = missingAmount;
12
+ }
13
+ }
14
+ export class CmSpendLimitError extends SplitError {
15
+ constructor(message, missingAmount) {
16
+ super(message);
17
+ this.name = 'CmSpendLimitError';
18
+ this.missingAmount = missingAmount;
19
+ }
20
+ }
21
+ function min(a, b) {
22
+ return a < b ? a : b;
23
+ }
24
+ export let getSplitting = function (amount, bals, cmSrcMin, cmSpendMax = null) {
25
+ const zero = amount - amount; // Required for agnosticity
26
+ const split = { nant: zero, cm: zero };
27
+ const cmPosSpendMax = cmSpendMax !== null ? min(bals.cm, cmSpendMax) : bals.cm;
28
+ if (cmPosSpendMax >= 0) {
29
+ if (cmPosSpendMax >= amount) {
30
+ split.cm += amount;
31
+ return split;
32
+ }
33
+ split.cm += cmPosSpendMax;
34
+ amount -= cmPosSpendMax;
35
+ bals.cm -= cmPosSpendMax;
36
+ if (cmSpendMax !== null) {
37
+ cmSpendMax -= cmPosSpendMax;
38
+ }
39
+ }
40
+ if (bals.nant >= amount) {
41
+ split.nant += amount;
42
+ return split;
43
+ }
44
+ split.nant = bals.nant;
45
+ amount -= bals.nant;
46
+ let cmNegAvailable = bals.cm - cmSrcMin;
47
+ const cmNegSpendMax = cmSpendMax !== null ? min(cmNegAvailable, cmSpendMax) : cmNegAvailable;
48
+ if (cmNegSpendMax >= amount) {
49
+ split.cm += amount;
50
+ return split;
51
+ }
52
+ amount -= cmNegSpendMax;
53
+ bals.cm -= cmNegSpendMax;
54
+ if (cmSpendMax !== null) {
55
+ cmSpendMax -= cmNegSpendMax;
56
+ }
57
+ cmNegAvailable = (bals.cm - cmSrcMin);
58
+ if (cmNegAvailable >= amount && cmSpendMax == 0) {
59
+ throw new CmSpendLimitError(`Cm spend limit preventing to complete amount (remaining: ${amount}).`, amount);
60
+ }
61
+ throw new InsufficientBalanceError(`Missing ${amount - cmNegAvailable} to complete amount`, amount - cmNegAvailable);
62
+ };
63
+ /* @skip-prod-transpilation */
64
+ if (import.meta.vitest) {
65
+ const { it, expect, describe, beforeAll, afterAll } = import.meta.vitest;
66
+ function testSuite(numberFactory = null, label = null) {
67
+ let msg;
68
+ if (numberFactory) {
69
+ msg = `check with ${label}`;
70
+ }
71
+ else {
72
+ msg = "check with standard number";
73
+ }
74
+ describe(msg, () => {
75
+ let getSplittingOrig = getSplitting;
76
+ let toStrictEqual;
77
+ beforeAll(() => {
78
+ if (numberFactory) {
79
+ getSplitting = function (amount, bals, cmSrcMin, cmSpendMax = null) {
80
+ amount = numberFactory(amount);
81
+ bals.cm = numberFactory(bals.cm);
82
+ bals.nant = numberFactory(bals.nant);
83
+ cmSrcMin = numberFactory(cmSrcMin);
84
+ if (cmSpendMax !== null) {
85
+ cmSpendMax = numberFactory(cmSpendMax);
86
+ }
87
+ return getSplittingOrig(amount, bals, cmSrcMin, cmSpendMax);
88
+ };
89
+ toStrictEqual = function (actual, expected) {
90
+ let { cm, nant } = expected;
91
+ expect(actual).toStrictEqual({ cm: numberFactory(cm), nant: numberFactory(nant) });
92
+ };
93
+ }
94
+ else {
95
+ toStrictEqual = function (actual, expected) {
96
+ expect(actual).toStrictEqual(expected);
97
+ };
98
+ }
99
+ });
100
+ afterAll(() => {
101
+ getSplitting = getSplittingOrig;
102
+ });
103
+ describe('split without cmSpendMax', () => {
104
+ it('should split 0 to cm: 0, nant: 0', () => {
105
+ toStrictEqual(getSplitting(0, { cm: 0, nant: 0 }, 0), { nant: 0, cm: 0 });
106
+ });
107
+ it('should NOT split 1 with no funds', () => {
108
+ expect(() => getSplitting(1, { cm: 0, nant: 0 }, 0))
109
+ .toThrow("Missing 1 to complete amount");
110
+ });
111
+ // Only Cm
112
+ it('should split 1 to cm: 1, nant: 0 with bal cm: 2, nant: 0', () => {
113
+ toStrictEqual(getSplitting(1, { cm: 2, nant: 0 }, 0), { nant: 0, cm: 1 });
114
+ });
115
+ it('should split 2 to cm: 2, nant: 0 with bal cm: 2, nant: 0', () => {
116
+ toStrictEqual(getSplitting(2, { cm: 2, nant: 0 }, 0), { nant: 0, cm: 2 });
117
+ });
118
+ it('should NOT split 3 with bal cm: 2, nant: 0', () => {
119
+ expect(() => getSplitting(3, { cm: 2, nant: 0 }, 0))
120
+ .toThrow("Missing 1 to complete amount");
121
+ });
122
+ // Only Nant
123
+ it('should split 1 to cm: 0, nant: 1 with bal cm: 0, nant: 2', () => {
124
+ toStrictEqual(getSplitting(1, { cm: 0, nant: 2 }, 0), { nant: 1, cm: 0 });
125
+ });
126
+ it('should split 2 to cm: 0, nant: 2 with bal cm: 0, nant: 2', () => {
127
+ toStrictEqual(getSplitting(2, { cm: 0, nant: 2 }, 0), { nant: 2, cm: 0 });
128
+ });
129
+ it('should NOT split 3 with bal cm: 0, nant: 2', () => {
130
+ expect(() => getSplitting(3, { cm: 0, nant: 2 }, 0))
131
+ .toThrow("Missing 1 to complete amount");
132
+ });
133
+ // Both Nant and Cm
134
+ it('should split 2 to cm: 1, nant: 1 with bal cm: 1, nant: 1', () => {
135
+ toStrictEqual(getSplitting(2, { cm: 1, nant: 1 }, 0), { nant: 1, cm: 1 });
136
+ });
137
+ it('should split 2 to cm: 0, nant: 2 with bal cm: 0, nant: 2 (limSrcCm: -2)', () => {
138
+ toStrictEqual(getSplitting(2, { cm: 0, nant: 2 }, -2), { nant: 2, cm: 0 });
139
+ });
140
+ it('should split 2 to cm: 1, nant: 1 with bal cm: 0, nant: 1 (limSrcCm: -1)', () => {
141
+ toStrictEqual(getSplitting(2, { cm: 0, nant: 1 }, -1), { nant: 1, cm: 1 });
142
+ });
143
+ it('should NOT split 3 with bal cm: 0, nant: 1 (limSrcCm: -1)', () => {
144
+ expect(() => getSplitting(3, { cm: 0, nant: 1 }, -1))
145
+ .toThrow("Missing 1 to complete amount");
146
+ });
147
+ it('should split 3 to cm: 2, nant: 1 with bal cm: 1, nant: 1 (limSrcCm: -1)', () => {
148
+ toStrictEqual(getSplitting(3, { cm: 1, nant: 1 }, -1), { nant: 1, cm: 2 });
149
+ });
150
+ // Negative cm bal and limSrcCm
151
+ it('should split 1 to cm: -1, nant: 0 with bal cm: -1, nant: 0 (limSrcCm: -2)', () => {
152
+ toStrictEqual(getSplitting(1, { cm: -1, nant: 0 }, -2), { nant: 0, cm: 1 });
153
+ });
154
+ it('should NOT split 2 with bal cm: -1, nant: 0 (limSrcCm: -2)', () => {
155
+ expect(() => getSplitting(2, { cm: -1, nant: 0 }, -2))
156
+ .toThrow("Missing 1 to complete amount");
157
+ });
158
+ });
159
+ describe('split with cmSpendMax', () => {
160
+ it('should split 0 to cm: 0, nant: 0 (cmSpendMax: 0)', () => {
161
+ toStrictEqual(getSplitting(0, { cm: 0, nant: 0 }, 0, 0), { nant: 0, cm: 0 });
162
+ });
163
+ it('should split 0 to cm: 0, nant: 0 (cmSpendMax: 1)', () => {
164
+ toStrictEqual(getSplitting(0, { cm: 0, nant: 0 }, 0, 0), { nant: 0, cm: 0 });
165
+ });
166
+ it('should NOT split 1 with no funds (cmSpendMax: 1)', () => {
167
+ expect(() => getSplitting(1, { cm: 0, nant: 0 }, 0, 1))
168
+ .toThrow("Missing 1 to complete amount");
169
+ });
170
+ it('should NOT split 1 with no funds (cmSpendMax: 0)', () => {
171
+ expect(() => getSplitting(1, { cm: 0, nant: 0 }, 0, 0))
172
+ .toThrow("Missing 1 to complete amount");
173
+ });
174
+ // Only Cm
175
+ it('should split 1 to cm: 1, nant: 0 with bal cm: 2, nant: 0 (cmSpendMax: 1)', () => {
176
+ toStrictEqual(getSplitting(1, { cm: 2, nant: 0 }, 0, 1), { nant: 0, cm: 1 });
177
+ });
178
+ it('should split 2 to cm: 2, nant: 0 with bal cm: 2, nant: 0 (cmSpendMax: 2)', () => {
179
+ toStrictEqual(getSplitting(2, { cm: 2, nant: 0 }, 0, 2), { nant: 0, cm: 2 });
180
+ });
181
+ it('should NOT split 2 to cm: 2, nant: 0 with bal cm: 2, nant: 0 (cmSpendMax: 1)', () => {
182
+ expect(() => getSplitting(2, { cm: 2, nant: 0 }, 0, 1))
183
+ .toThrow("Cm spend limit preventing to complete amount (remaining: 1)");
184
+ });
185
+ it('should NOT split 3 with bal cm: 2, nant: 0 (cmSpendMax: 5)', () => {
186
+ expect(() => getSplitting(3, { cm: 2, nant: 0 }, 0, 5))
187
+ .toThrow("Missing 1 to complete amount");
188
+ });
189
+ it('should NOT split 3 with bal cm: 2, nant: 0 (cmSpendMax: 2)', () => {
190
+ expect(() => getSplitting(3, { cm: 2, nant: 0 }, 0, 2))
191
+ .toThrow("Missing 1 to complete amount");
192
+ });
193
+ it('should NOT split 3 with bal cm: 2, nant: 0 (cmSpendMax: 1)', () => {
194
+ expect(() => getSplitting(3, { cm: 2, nant: 0 }, 0, 1))
195
+ .toThrow("Missing 1 to complete amount");
196
+ });
197
+ // Only Nant
198
+ it('should split 1 to cm: 0, nant: 1 with bal cm: 0, nant: 2 (cmSpendMax: 0)', () => {
199
+ toStrictEqual(getSplitting(1, { cm: 0, nant: 2 }, 0, 0), { nant: 1, cm: 0 });
200
+ });
201
+ it('should split 2 to cm: 0, nant: 2 with bal cm: 0, nant: 2 (cmSpendMax: 1)', () => {
202
+ toStrictEqual(getSplitting(2, { cm: 0, nant: 2 }, 0, 1), { nant: 2, cm: 0 });
203
+ });
204
+ it('should NOT split 3 with bal cm: 0, nant: 2 (cmSpendMax: 0)', () => {
205
+ expect(() => getSplitting(3, { cm: 0, nant: 2 }, 0, 0))
206
+ .toThrow("Missing 1 to complete amount");
207
+ });
208
+ // Both Nant and Cm
209
+ it('should split 2 to cm: 1, nant: 1 with bal cm: 1, nant: 1 (cmSpendMax: 1)', () => {
210
+ toStrictEqual(getSplitting(2, { cm: 1, nant: 1 }, 0, 1), { nant: 1, cm: 1 });
211
+ });
212
+ it('should NOT split 2 to cm: 1, nant: 1 with bal cm: 1, nant: 1 (cmSpendMax: 0)', () => {
213
+ expect(() => getSplitting(2, { cm: 1, nant: 1 }, 0, 0))
214
+ .toThrow("Cm spend limit preventing to complete amount (remaining: 1)");
215
+ });
216
+ it('should split 2 to cm: 1, nant: 1 with bal cm: 0, nant: 1 (limSrcCm: -1, cmSpendMax: 1)', () => {
217
+ toStrictEqual(getSplitting(2, { cm: 0, nant: 1 }, -1, 1), { nant: 1, cm: 1 });
218
+ });
219
+ it('should NOT split 2 to cm: 1, nant: 1 with bal cm: 0, nant: 1 (limSrcCm: -1, cmSpendMax: 0)', () => {
220
+ expect(() => getSplitting(2, { cm: 0, nant: 1 }, -1, 0))
221
+ .toThrow("Cm spend limit preventing to complete amount (remaining: 1)");
222
+ });
223
+ it('should NOT split 3 with bal cm: 0, nant: 1 (limSrcCm: -1, cmSpendMax: 5)', () => {
224
+ expect(() => getSplitting(3, { cm: 0, nant: 1 }, -1, 5))
225
+ .toThrow("Missing 1 to complete amount");
226
+ });
227
+ it('should NOT split 3 with bal cm: 0, nant: 1 (limSrcCm: -1, cmSpendMax: 0)', () => {
228
+ expect(() => getSplitting(3, { cm: 0, nant: 1 }, -1, 0))
229
+ .toThrow("Missing 1 to complete amount");
230
+ });
231
+ it('should split 3 to cm: 2, nant: 1 with bal cm: 1, nant: 1 (limSrcCm: -1, cmSpendMax: 2)', () => {
232
+ toStrictEqual(getSplitting(3, { cm: 1, nant: 1 }, -1, 2), { nant: 1, cm: 2 });
233
+ });
234
+ it('should NOT split 3 to cm: 2, nant: 1 with bal cm: 1, nant: 1 (limSrcCm: -1, cmSpendMax: 1)', () => {
235
+ expect(() => getSplitting(3, { cm: 1, nant: 1 }, -1, 1))
236
+ .toThrow("Cm spend limit preventing to complete amount (remaining: 1)");
237
+ });
238
+ // If the recipient can't receive cm, then pay with nant if possible.
239
+ it('should split 2 to cm: 0, nant: 2 with bal cm: 2, nant: 2 (limSrcCm: 0, cmSpendMax: 0)', () => {
240
+ toStrictEqual(getSplitting(2, { cm: 2, nant: 2 }, 0, 0), { nant: 2, cm: 0 });
241
+ });
242
+ it('should split 3 to cm: 1, nant: 2 with bal cm: 2, nant: 2 (limSrcCm: 0, cmSpendMax: 1)', () => {
243
+ toStrictEqual(getSplitting(3, { cm: 2, nant: 2 }, 0, 1), { nant: 2, cm: 1 });
244
+ });
245
+ it('should split 3 to cm: 2, nant: 2 with bal cm: 2, nant: 2 (limSrcCm: 0, cmSpendMax: 2)', () => {
246
+ toStrictEqual(getSplitting(3, { cm: 2, nant: 2 }, 0, 2), { nant: 1, cm: 2 });
247
+ });
248
+ // Negative cm bal and limSrcCm
249
+ it('should split 1 to cm: -1, nant: 0 with bal cm: -1, nant: 0 (limSrcCm: -2, cmSpendMax: 1)', () => {
250
+ toStrictEqual(getSplitting(1, { cm: -1, nant: 0 }, -2, 1), { nant: 0, cm: 1 });
251
+ });
252
+ it('should NOT split 2 with bal cm: -1, nant: 0 (limSrcCm: -2, cmSpendMax: 2)', () => {
253
+ expect(() => getSplitting(2, { cm: -1, nant: 0 }, -2, 2))
254
+ .toThrow("Missing 1 to complete amount");
255
+ });
256
+ it('should NOT split 2 with bal cm: -1, nant: 0 (limSrcCm: -2, cmSpendMax: 0)', () => {
257
+ expect(() => getSplitting(2, { cm: -1, nant: 0 }, -2, 2))
258
+ .toThrow("Missing 1 to complete amount");
259
+ });
260
+ it('should NOT split 2 with bal cm: -1, nant: 0 (limSrcCm: -3, cmSpendMax: 1)', () => {
261
+ expect(() => getSplitting(2, { cm: -1, nant: 0 }, -3, 1))
262
+ .toThrow("Cm spend limit preventing to complete amount (remaining: 1)");
263
+ });
264
+ });
265
+ });
266
+ }
267
+ testSuite();
268
+ testSuite(BigInt, "BigInt");
269
+ }
270
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/build/wallet.js CHANGED
@@ -34,18 +34,18 @@ export default class MessagingWalletAbstract extends Wallet {
34
34
  }
35
35
  async ensureWalletMessageKey() {
36
36
  const remoteKey = await this.ajaxReq.getMessageKey(this.getAddressString(), true);
37
- const walletMessageKey = this === null || this === void 0 ? void 0 : this.message_key;
37
+ const walletMessageKey = this?.message_key;
38
38
  if (typeof remoteKey.public_message_key !== 'undefined') {
39
39
  this.message_key = {
40
40
  pub: remoteKey.public_message_key,
41
41
  priv: remoteKey.private_message_key,
42
42
  };
43
- if ((walletMessageKey === null || walletMessageKey === void 0 ? void 0 : walletMessageKey.pub) !== remoteKey.public_message_key) {
43
+ if (walletMessageKey?.pub !== remoteKey.public_message_key) {
44
44
  return 'REPLACED_WITH_REMOTE';
45
45
  }
46
46
  return;
47
47
  }
48
- if (!(walletMessageKey === null || walletMessageKey === void 0 ? void 0 : walletMessageKey.pub) || !(walletMessageKey === null || walletMessageKey === void 0 ? void 0 : walletMessageKey.priv)) {
48
+ if (!walletMessageKey?.pub || !walletMessageKey?.priv) {
49
49
  this.message_key = this.newMessageKey();
50
50
  this.publishMessageKey();
51
51
  return 'CREATED_NEW';
@@ -133,9 +133,14 @@ export default class MessagingWalletAbstract extends Wallet {
133
133
  // QR Code helpers
134
134
  //
135
135
  makeSignedQRContent(obj, pubKey) {
136
- return makeSignedQRContent(Object.assign(Object.assign({ server: this.currencyName, address: this.getAddressString() }, obj), pubKey && {
137
- message_key: cipherMsg(pubKey, this.messageKeysFromWallet())
138
- }), this.privKey);
136
+ return makeSignedQRContent({
137
+ server: this.currencyName,
138
+ address: this.getAddressString(),
139
+ ...obj,
140
+ ...pubKey && {
141
+ message_key: cipherMsg(pubKey, this.messageKeysFromWallet())
142
+ },
143
+ }, this.privKey);
139
144
  }
140
145
  makeSignedQRFragments(obj, fragmentCount, pubKey) {
141
146
  return makeSignedQRFragments(this.makeSignedQRContent(obj, pubKey), fragmentCount);
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@com-chain/jsc3l",
3
- "version": "2.0.1-rc.19",
3
+ "version": "2.0.1-rc.20",
4
4
  "description": "JavaScript Com-Chain Communication Library",
5
5
  "main": "build/index.js",
6
6
  "scripts": {
7
- "test": "vitest run --passWithNoTests --bail 1",
7
+ "test": "vitest run",
8
8
  "build": "tsc",
9
9
  "watch": "tsc -w"
10
10
  },
package/src/bcRead.ts CHANGED
@@ -108,11 +108,11 @@ if (import.meta.vitest) {
108
108
  expect(decodeData('number/100', '0x0000000000000000000000000000000000000000000000000000800000000000'))
109
109
  .toBe('1407374883553.28')
110
110
  });
111
- it('should decode 0x00...00_8000_0000_0001 to "-1407374883553.27" (max negative number)', () => {
111
+ it('should decode 0x00...00_8000_0000_0001 to "-1407374883553.27" (lowest negative number)', () => {
112
112
  expect(decodeData('number/100', '0x0000000000000000000000000000000000000000000000000000800000000001'))
113
113
  .toBe('-1407374883553.27')
114
114
  });
115
- it('should decode 0x00...00_8fffffffffff to "-0.01" (max negative number)', () => {
115
+ it('should decode 0x00...00_ffff_ffff_ffff to "-0.01" (max negative number)', () => {
116
116
  expect(decodeData('number/100', '0x0000000000000000000000000000000000000000000000000000ffffffffffff'))
117
117
  .toBe('-0.01')
118
118
  });
@@ -122,7 +122,7 @@ if (import.meta.vitest) {
122
122
  });
123
123
  });
124
124
  describe('decode strings', () => {
125
- it('should decode "0x00...020_0...0_" to "2.0" (enforce 2 digit after floating point)', () => {
125
+ it('should decode "0x00...020_0...0_" to "2.0"', () => {
126
126
  expect(decodeData(
127
127
  'string', '0x' +
128
128
  '0000000000000000000000000000000000000000000000000000000000000020' + // data location
@@ -185,18 +185,20 @@ export default abstract class BcReadAbstract {
185
185
  }
186
186
 
187
187
  async getAmountForElement (
188
- contract, functionAddress, callerAddress, elementAddress) {
188
+ contract, functionAddress, callerAddress, elementAddress,
189
+ blockNb: string | number = 'pending') {
189
190
  const data = await this.read(
190
191
  contract, functionAddress, [
191
192
  getNakedAddress(callerAddress),
192
193
  getNakedAddress(elementAddress)
193
- ])
194
+ ], blockNb)
194
195
  return decodeData('number/100', data)
195
196
  }
196
197
 
197
198
  async getElementInList (
198
199
  contract, mapFunctionAddress, amountFunctionAddress,
199
- callerAddress, index, list, indMin) {
200
+ callerAddress, index, list, indMin,
201
+ blockNb: string | number = 'pending') {
200
202
 
201
203
  if (index < indMin) return list
202
204
 
@@ -204,9 +206,11 @@ export default abstract class BcReadAbstract {
204
206
  contract, mapFunctionAddress, [
205
207
  getNakedAddress(callerAddress),
206
208
  padLeft(new BigNumber(index).toString(16), 64)
207
- ])
209
+ ],
210
+ blockNb)
208
211
  const amount = await this.getAmountForElement(
209
- contract, amountFunctionAddress, callerAddress, data)
212
+ contract, amountFunctionAddress, callerAddress, data,
213
+ blockNb)
210
214
 
211
215
  const address = '0x' + data.substring(data.length - 40)
212
216
  const element = { address, amount }
@@ -214,7 +218,8 @@ export default abstract class BcReadAbstract {
214
218
  return this.getElementInList(
215
219
  contract, mapFunctionAddress,
216
220
  amountFunctionAddress, callerAddress, index - 1, list,
217
- indMin)
221
+ indMin,
222
+ blockNb)
218
223
  }
219
224
 
220
225
  }
@@ -273,7 +278,7 @@ const ListFunction = {
273
278
  for (const key in ListFunction) {
274
279
  const configList = ListFunction[key]
275
280
  BcReadAbstract.prototype[`get${key}List`] =
276
- async function (walletAddress, indMin, indMax) {
281
+ async function (walletAddress, indMin, indMax, blockNb: string | number = 'pending') {
277
282
  // Simple protection against ill inputs on indMin and indMax and to
278
283
  // avoid unwanted infinite loops
279
284
  indMax = indMax || 0
@@ -281,7 +286,8 @@ for (const key in ListFunction) {
281
286
  const data = await this.read(
282
287
  this.contracts[1], `0x${configList.count}`, [
283
288
  getNakedAddress(walletAddress)
284
- ])
289
+ ],
290
+ blockNb)
285
291
  const count = decodeData('number', data)
286
292
  const list = []
287
293
  const index = Math.min(count - 1, indMax)
@@ -292,7 +298,8 @@ for (const key in ListFunction) {
292
298
  walletAddress,
293
299
  index,
294
300
  list,
295
- indMin)
301
+ indMin,
302
+ blockNb)
296
303
  }
297
304
  }
298
305