@com-chain/jsc3l 2.0.1-rc.2 → 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.
Files changed (71) hide show
  1. package/README.md +12 -2
  2. package/build/bcRead.d.ts +8 -10
  3. package/build/bcRead.js +162 -49
  4. package/build/bcRead.js.map +1 -1
  5. package/build/bcTransaction.d.ts +8 -2
  6. package/build/bcTransaction.js +141 -108
  7. package/build/bcTransaction.js.map +1 -1
  8. package/build/blockies.js.map +1 -1
  9. package/build/config/transactions.d.ts +44 -0
  10. package/build/config/transactions.js +29 -0
  11. package/build/config/transactions.js.map +1 -0
  12. package/build/connection.d.ts +1 -1
  13. package/build/connection.js +44 -13
  14. package/build/connection.js.map +1 -1
  15. package/build/customization.js +13 -6
  16. package/build/customization.js.map +1 -1
  17. package/build/ethereum/cipher.js +3 -3
  18. package/build/ethereum/cipher.js.map +1 -1
  19. package/build/ethereum/ethFuncs.js +37 -1
  20. package/build/ethereum/ethFuncs.js.map +1 -1
  21. package/build/ethereum/etherUnits.js +5 -5
  22. package/build/ethereum/etherUnits.js.map +1 -1
  23. package/build/ethereum/myetherwallet.d.ts +1 -2
  24. package/build/ethereum/myetherwallet.js.map +1 -1
  25. package/build/ethereum/uiFuncs.d.ts +1 -3
  26. package/build/ethereum/uiFuncs.js +13 -23
  27. package/build/ethereum/uiFuncs.js.map +1 -1
  28. package/build/exception.d.ts +8 -0
  29. package/build/exception.js +14 -0
  30. package/build/exception.js.map +1 -0
  31. package/build/index.d.ts +8 -5
  32. package/build/index.js +38 -19
  33. package/build/index.js.map +1 -1
  34. package/build/memo.js +6 -3
  35. package/build/memo.js.map +1 -1
  36. package/build/qr.d.ts +31 -6
  37. package/build/qr.js +32 -12
  38. package/build/qr.js.map +1 -1
  39. package/build/rest/ajaxReq.d.ts +3 -10
  40. package/build/rest/ajaxReq.js +16 -33
  41. package/build/rest/ajaxReq.js.map +1 -1
  42. package/build/rest/http.js +6 -1
  43. package/build/rest/http.js.map +1 -1
  44. package/build/rest/serializer.js.map +1 -1
  45. package/build/type.d.ts +4 -4
  46. package/build/utils.d.ts +15 -0
  47. package/build/utils.js +270 -0
  48. package/build/utils.js.map +1 -0
  49. package/build/wallet.d.ts +6 -8
  50. package/build/wallet.js +35 -39
  51. package/build/wallet.js.map +1 -1
  52. package/package.json +10 -5
  53. package/skip-prod-transpilation.ts +48 -0
  54. package/src/bcRead.ts +184 -63
  55. package/src/bcTransaction.ts +143 -114
  56. package/src/config/transactions.ts +30 -0
  57. package/src/connection.ts +42 -9
  58. package/src/customization.ts +17 -2
  59. package/src/ethereum/ethFuncs.ts +42 -1
  60. package/src/ethereum/etherUnits.ts +5 -5
  61. package/src/ethereum/uiFuncs.ts +16 -25
  62. package/src/exception.ts +16 -0
  63. package/src/index.ts +53 -27
  64. package/src/qr.ts +86 -12
  65. package/src/rest/ajaxReq.ts +18 -40
  66. package/src/utils.ts +300 -0
  67. package/src/wallet.ts +37 -48
  68. package/tests/environment.ts +27 -0
  69. package/tests/setup.ts +12 -0
  70. package/tsconfig.json +8 -2
  71. package/vitest.config.ts +14 -0
package/README.md CHANGED
@@ -41,5 +41,15 @@ javascript and transpile on file change with:
41
41
 
42
42
  ```shell
43
43
  ## Compile and watch
44
- npx tsc -w
45
- ```
44
+ npx tspc -w
45
+ ```
46
+
47
+ Tests are managed through `vitest`
48
+
49
+ ```shell
50
+ ## Run test once
51
+ npm run test
52
+ ```
53
+
54
+ Note that you can also use `npx vitest` command to launch tests in
55
+ watch mode.
package/build/bcRead.d.ts CHANGED
@@ -2,14 +2,12 @@ import AjaxReq from './rest/ajaxReq';
2
2
  export default abstract class BcReadAbstract {
3
3
  abstract ajaxReq: AjaxReq;
4
4
  abstract contracts: string[];
5
- getContractStatus(): Promise<unknown>;
6
- getTaxAccount(): Promise<unknown>;
7
- getHistoricalGlobalBalance(walletAddress: any, blockNb: any): Promise<string>;
8
- getAmount(address: any, walletAddress: any): Promise<string>;
9
- getAccInfo(address: any, walletAddress: any): Promise<number>;
10
- getGlobInfo(address: any): Promise<unknown>;
11
- getAmountAt(address: any, walletAddress: any, blockNb: any): Promise<string>;
12
- getInfo(contract: any, address: any, walletAddress: any): Promise<number>;
13
- getAmountForElement(contract: any, functionAddress: any, callerAddress: any, elementAddress: any): Promise<string>;
14
- getElementInList(contract: any, mapFunctionAddress: any, amountFunctionAddress: any, callerAddress: any, index: any, list: any, indMin: any): any;
5
+ getContractStatus(): Promise<string>;
6
+ getTaxAccount(): Promise<string>;
7
+ getVersion(): Promise<any>;
8
+ getAmount(address: any, walletAddress: any, blockNb: any): Promise<any>;
9
+ getAccInfo(address: any, walletAddress: any, blockNb: any): Promise<any>;
10
+ read(contract: string, address: string, args?: any[], blockNb?: string | number): Promise<string>;
11
+ getAmountForElement(contract: any, functionAddress: any, callerAddress: any, elementAddress: any, blockNb?: string | number): Promise<any>;
12
+ getElementInList(contract: any, mapFunctionAddress: any, amountFunctionAddress: any, callerAddress: any, index: any, list: any, indMin: any, blockNb?: string | number): any;
15
13
  }
package/build/bcRead.js CHANGED
@@ -1,68 +1,178 @@
1
1
  import BigNumber from 'bignumber.js';
2
2
  import { getNakedAddress, padLeft, getDataObj } from './ethereum/ethFuncs';
3
- function getNumber(data, ratio) {
4
- const shortData = '0x' + data.slice(-12);
5
- let a = parseInt(shortData, 16);
6
- if (a > (34359738368 * 4096)) {
7
- a -= 68719476736 * 4096;
3
+ function decodeData(abiType, data) {
4
+ if (data.startsWith('0x')) {
5
+ data = data.slice(2);
8
6
  }
9
- return a / ratio;
7
+ if (data.length === 0) {
8
+ return null;
9
+ }
10
+ let dataBuffer;
11
+ try {
12
+ dataBuffer = Buffer.from(data, 'hex');
13
+ }
14
+ catch (e) {
15
+ throw new Error('Invalid data provided: not an hex string');
16
+ }
17
+ if (dataBuffer.length % 32 !== 0) {
18
+ throw new Error('Invalid data provided: data length is not a multiple of 32');
19
+ }
20
+ const uintData = dataBuffer.readUIntBE(0, 32);
21
+ switch (abiType) {
22
+ case 'string':
23
+ const dataLocation = uintData;
24
+ if (dataLocation % 32 !== 0) {
25
+ throw new Error('Invalid data provided while decoding string: ' +
26
+ 'first 32byte word is not a valid address');
27
+ }
28
+ if (dataLocation + 64 > dataBuffer.length) {
29
+ throw new Error('Invalid data provided while decoding string: ' +
30
+ 'not enough data to decode length and first word at given location');
31
+ }
32
+ const dataLength = dataBuffer.readUIntBE(dataLocation, 32);
33
+ const expectedLength = Math.ceil((dataLocation + 32 + dataLength) / 32) * 32;
34
+ if (dataBuffer.length !== expectedLength) {
35
+ throw new Error('Invalid data provided while decoding string: ' +
36
+ 'not enough data to decode advertised string');
37
+ }
38
+ const dataValue = dataBuffer.slice(dataLocation + 32, dataLocation + 32 + dataLength);
39
+ return dataValue.toString();
40
+ case 'uint':
41
+ case 'uint256':
42
+ return uintData;
43
+ case 'number/100':
44
+ // Avoid passing through float and division by 100 to ensure format X...X.YY
45
+ let data_int = decodeData('number', data);
46
+ let sign = "";
47
+ if (data_int < 0) {
48
+ data_int = -data_int;
49
+ sign = "-";
50
+ }
51
+ // garanteed >3 sized string representing uint
52
+ let data_str = data_int.toString().padStart(3, "0");
53
+ return `${sign}${data_str.slice(0, -2)}.${data_str.slice(-2)}`;
54
+ case 'number':
55
+ // Using only 6 bytes, ignoring any upper bytes, this ensures
56
+ // javascript Number type is enough. What is decoded is signed
57
+ // int.
58
+ const shortData = '0x' + data.slice(-12);
59
+ let a = parseInt(shortData, 16);
60
+ if (a > 140737488355328) {
61
+ a -= 281474976710656;
62
+ }
63
+ return a;
64
+ case 'bool':
65
+ return uintData === 1;
66
+ default:
67
+ throw new Error(`Unsupported ABI type: ${abiType}`);
68
+ }
69
+ }
70
+ /* @skip-prod-transpilation */
71
+ if (import.meta.vitest) {
72
+ const { it, expect, describe } = import.meta.vitest;
73
+ describe('decode amounts', () => {
74
+ it('should decode "0x00...0000" to "0.00" (enforce full presence of digit and floating point)', () => {
75
+ expect(decodeData('number/100', '0x0000000000000000000000000000000000000000000000000000000000000000'))
76
+ .toBe('0.00');
77
+ });
78
+ it('should decode "0x00...0001" to "0.01"', () => {
79
+ expect(decodeData('number/100', '0x0000000000000000000000000000000000000000000000000000000000000001'))
80
+ .toBe('0.01');
81
+ });
82
+ it('should decode "0x00...0010" to "0.16"', () => {
83
+ expect(decodeData('number/100', '0x0000000000000000000000000000000000000000000000000000000000000010'))
84
+ .toBe('0.16');
85
+ });
86
+ it('should decode "0x00...1000" to "40.96"', () => {
87
+ expect(decodeData('number/100', '0x0000000000000000000000000000000000000000000000000000000000001000'))
88
+ .toBe('40.96');
89
+ });
90
+ it('should decode 0x00...01_0000_0000_0001 to "0.01" (ignore bytes > 6)', () => {
91
+ expect(decodeData('number/100', '0x0000000000000000000000000000000000000000000000000001000000000001'))
92
+ .toBe('0.01');
93
+ });
94
+ it('should decode 0x00...00_8000_0000_0000 to "1407374883553.28" (max positive number)', () => {
95
+ expect(decodeData('number/100', '0x0000000000000000000000000000000000000000000000000000800000000000'))
96
+ .toBe('1407374883553.28');
97
+ });
98
+ it('should decode 0x00...00_8000_0000_0001 to "-1407374883553.27" (lowest negative number)', () => {
99
+ expect(decodeData('number/100', '0x0000000000000000000000000000000000000000000000000000800000000001'))
100
+ .toBe('-1407374883553.27');
101
+ });
102
+ it('should decode 0x00...00_ffff_ffff_ffff to "-0.01" (max negative number)', () => {
103
+ expect(decodeData('number/100', '0x0000000000000000000000000000000000000000000000000000ffffffffffff'))
104
+ .toBe('-0.01');
105
+ });
106
+ it('should decode "0x00...019a" to "4.10" (enforce 2 digit after floating point)', () => {
107
+ expect(decodeData('number/100', '0x000000000000000000000000000000000000000000000000000000000000019a'))
108
+ .toBe('4.10');
109
+ });
110
+ });
111
+ describe('decode strings', () => {
112
+ it('should decode "0x00...020_0...0_" to "2.0"', () => {
113
+ expect(decodeData('string', '0x' +
114
+ '0000000000000000000000000000000000000000000000000000000000000020' + // data location
115
+ '0000000000000000000000000000000000000000000000000000000000000003' + // data length
116
+ '322e300000000000000000000000000000000000000000000000000000000000' // actual string
117
+ )).toBe('2.0');
118
+ });
119
+ });
10
120
  }
11
121
  export default class BcReadAbstract {
12
122
  // Get Global status of the contract
13
- async getContractStatus() { return this.getGlobInfo('0x8b3c7c69'); }
123
+ getContractStatus() { return this.read(this.contracts[0], '0x8b3c7c69'); }
14
124
  // Get Global infos: Tax destinary Account
15
- async getTaxAccount() { return this.getGlobInfo('0x4f2eabe0'); }
16
- // Get Historical infos infos: Global balance
17
- async getHistoricalGlobalBalance(walletAddress, blockNb) {
18
- return this.getAmountAt('0x70a08231', walletAddress, blockNb);
125
+ getTaxAccount() { return this.read(this.contracts[0], '0x4f2eabe0'); }
126
+ async getVersion() {
127
+ const data = await this.read(this.contracts[0], '0x54fd4d50');
128
+ return decodeData('string', data);
19
129
  }
20
130
  // //////////////////////////////////////////////////////////////////////////
21
131
  // Generic read function
22
- async getAmount(address, walletAddress) {
23
- const userInfo = getDataObj(this.contracts[0], address, [getNakedAddress(walletAddress)]);
24
- const data = await this.ajaxReq.getEthCall(userInfo);
25
- return getNumber(data, 100.0).toString();
132
+ async getAmount(address, walletAddress, blockNb) {
133
+ const data = await this.read(this.contracts[0], address, [
134
+ getNakedAddress(walletAddress)
135
+ ], blockNb);
136
+ return decodeData('number/100', data);
26
137
  }
27
- async getAccInfo(address, walletAddress) {
28
- return this.getInfo(this.contracts[0], address, walletAddress);
138
+ async getAccInfo(address, walletAddress, blockNb) {
139
+ const data = await this.read(this.contracts[0], address, [
140
+ getNakedAddress(walletAddress)
141
+ ], blockNb);
142
+ return decodeData('number', data);
29
143
  }
30
- getGlobInfo(address) {
31
- const userInfo = getDataObj(this.contracts[0], address, []);
32
- return this.ajaxReq.getEthCall(userInfo);
33
- }
34
- async getAmountAt(address, walletAddress, blockNb) {
35
- const userInfo = getDataObj(this.contracts[0], address, [getNakedAddress(walletAddress)]);
36
- const blockHex = '0x' + new BigNumber(blockNb).toString(16);
37
- const data = await this.ajaxReq.getEthCallAt(userInfo, blockHex);
38
- return getNumber(data, 100.0).toString();
39
- }
40
- async getInfo(contract, address, walletAddress) {
41
- const userInfo = getDataObj(contract, address, [getNakedAddress(walletAddress)]);
42
- const data = await this.ajaxReq.getEthCall(userInfo);
43
- return getNumber(data, 1.0);
144
+ async read(contract, address, args, blockNb = 'pending') {
145
+ args = args || [];
146
+ const ethCall = getDataObj(contract, address, args);
147
+ if (typeof blockNb !== 'string') {
148
+ blockNb = '0x' + new BigNumber(blockNb).toString(16);
149
+ }
150
+ try {
151
+ return (await this.ajaxReq.getEthCallAt(ethCall, blockNb));
152
+ }
153
+ catch (e) {
154
+ throw new Error(`Failed read contract: ${contract}, fn: ${address}`);
155
+ }
44
156
  }
45
- async getAmountForElement(contract, functionAddress, callerAddress, elementAddress) {
46
- const userInfo = getDataObj(contract, functionAddress, [
157
+ async getAmountForElement(contract, functionAddress, callerAddress, elementAddress, blockNb = 'pending') {
158
+ const data = await this.read(contract, functionAddress, [
47
159
  getNakedAddress(callerAddress),
48
160
  getNakedAddress(elementAddress)
49
- ]);
50
- const data = await this.ajaxReq.getEthCall(userInfo);
51
- return getNumber(data, 100.0).toString();
161
+ ], blockNb);
162
+ return decodeData('number/100', data);
52
163
  }
53
- async getElementInList(contract, mapFunctionAddress, amountFunctionAddress, callerAddress, index, list, indMin) {
164
+ async getElementInList(contract, mapFunctionAddress, amountFunctionAddress, callerAddress, index, list, indMin, blockNb = 'pending') {
54
165
  if (index < indMin)
55
166
  return list;
56
- const userInfo = getDataObj(contract, mapFunctionAddress, [
167
+ const data = await this.read(contract, mapFunctionAddress, [
57
168
  getNakedAddress(callerAddress),
58
169
  padLeft(new BigNumber(index).toString(16), 64)
59
- ]);
60
- const data = await this.ajaxReq.getEthCall(userInfo);
61
- const amount = await this.getAmountForElement(contract, amountFunctionAddress, callerAddress, data);
62
- const cleanedAdd = '0x' + data.substring(data.length - 40);
63
- const element = { address: cleanedAdd, amount: amount };
170
+ ], blockNb);
171
+ const amount = await this.getAmountForElement(contract, amountFunctionAddress, callerAddress, data, blockNb);
172
+ const address = '0x' + data.substring(data.length - 40);
173
+ const element = { address, amount };
64
174
  list.unshift(element);
65
- return this.getElementInList(contract, mapFunctionAddress, amountFunctionAddress, callerAddress, index - 1, list, indMin);
175
+ return this.getElementInList(contract, mapFunctionAddress, amountFunctionAddress, callerAddress, index - 1, list, indMin, blockNb);
66
176
  }
67
177
  }
68
178
  const fnHashes = [
@@ -91,8 +201,8 @@ const fnHashes = [
91
201
  fnHashes.forEach(({ fn, hashes }) => {
92
202
  for (const fnName in hashes) {
93
203
  const fnHash = hashes[fnName];
94
- BcReadAbstract.prototype[fnName] = function (walletAddress) {
95
- return this[fn](fnHash, walletAddress);
204
+ BcReadAbstract.prototype[fnName] = function (walletAddress, blockNb) {
205
+ return this[fn](fnHash, walletAddress, blockNb);
96
206
  };
97
207
  }
98
208
  });
@@ -109,15 +219,18 @@ const ListFunction = {
109
219
  for (const key in ListFunction) {
110
220
  const configList = ListFunction[key];
111
221
  BcReadAbstract.prototype[`get${key}List`] =
112
- async function (walletAddress, indMin, indMax) {
222
+ async function (walletAddress, indMin, indMax, blockNb = 'pending') {
113
223
  // Simple protection against ill inputs on indMin and indMax and to
114
224
  // avoid unwanted infinite loops
115
225
  indMax = indMax || 0;
116
226
  indMin = indMin || 0;
117
- const count = await this.getInfo(this.contracts[1], `0x${configList.count}`, walletAddress);
227
+ const data = await this.read(this.contracts[1], `0x${configList.count}`, [
228
+ getNakedAddress(walletAddress)
229
+ ], blockNb);
230
+ const count = decodeData('number', data);
118
231
  const list = [];
119
232
  const index = Math.min(count - 1, indMax);
120
- return this.getElementInList(this.contracts[1], `0x${configList.map}`, `0x${configList.amount}`, walletAddress, index, list, indMin);
233
+ return this.getElementInList(this.contracts[1], `0x${configList.map}`, `0x${configList.amount}`, walletAddress, index, list, indMin, blockNb);
121
234
  };
122
235
  }
123
236
  //# sourceMappingURL=bcRead.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bcRead.js","sourceRoot":"","sources":["../src/bcRead.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bcRead.js","sourceRoot":"","sources":["../src/bcRead.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,16 @@
1
1
  import AjaxReq from './rest/ajaxReq';
2
- export default abstract class BcTransactionAbstract {
2
+ export declare abstract class BcTransactionAbstract {
3
3
  abstract ajaxReq: AjaxReq;
4
4
  abstract contracts: string[];
5
- getSplitting(nantVal: any, cmVal: any, cmMinusLim: any, amount: any): {
5
+ static getSplitting(nantBal: any, cmBal: any, cmSrcMin: any, amount: any): {
6
6
  possible: boolean;
7
7
  nant: number;
8
8
  cm: number;
9
+ } | {
10
+ possible: boolean;
11
+ nant?: undefined;
12
+ cm?: undefined;
9
13
  };
14
+ getSplitting: typeof BcTransactionAbstract.getSplitting;
10
15
  }
16
+ export declare function transactionFactory(transactionDefs: any[], bcTransactionClass: any): void;