@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/build/qr.d.ts CHANGED
@@ -1,8 +1,33 @@
1
- export declare function checkSignedQRFromString(qrString: any, intendedRecipientAddress: any): "InvalidFormat" | "InvalidSignature" | "NotForYou" | "Expired" | {
2
- signature: any;
3
- data: any;
1
+ type Signature = {
2
+ v: string;
3
+ r: string;
4
+ s: string;
4
5
  };
5
- export declare function checkSignedQR(data: any, signature: any, intendedRecipientAddress: any): "InvalidFormat" | "InvalidSignature" | "NotForYou" | "Expired" | {
6
- signature: any;
7
- data: any;
6
+ type QRDataRaw = {
7
+ address: string;
8
+ destinary: string;
9
+ begin: string;
10
+ end: string;
11
+ viewbalance: boolean;
12
+ viewoldtran: boolean;
13
+ message_key?: string;
8
14
  };
15
+ type QRData = {
16
+ address: string;
17
+ destinary: string;
18
+ begin: Date;
19
+ end: Date;
20
+ viewbalance: boolean;
21
+ viewoldtran: boolean;
22
+ message_key?: string;
23
+ };
24
+ export type SignedQR = {
25
+ data: QRDataRaw;
26
+ signature: Signature;
27
+ };
28
+ export declare function checkSignedQR(qrContent: SignedQR, intendedRecipientAddress: any): true | "InvalidFormat" | "InvalidSignature" | "NotForYou" | "Expired";
29
+ export declare function makeSignedQRFragments(qrContent: SignedQR, fragmentCount: number): {
30
+ full: string;
31
+ };
32
+ export declare function makeSignedQRContent(obj: QRData, privKey: string): SignedQR;
33
+ export {};
package/build/qr.js CHANGED
@@ -1,24 +1,16 @@
1
1
  import ethUtil from 'ethereumjs-util';
2
- export function checkSignedQRFromString(qrString, intendedRecipientAddress) {
3
- let data, signature;
4
- try {
5
- ({ data, signature } = JSON.parse(qrString));
6
- }
7
- catch (e) {
8
- return 'InvalidFormat';
9
- }
10
- return checkSignedQR(data, signature, intendedRecipientAddress);
11
- }
12
- export function checkSignedQR(data, signature, intendedRecipientAddress) {
2
+ export function checkSignedQR(qrContent, intendedRecipientAddress) {
13
3
  let hash;
14
4
  let publicSignKey;
15
5
  let receiverAddress;
6
+ const { data, signature } = qrContent;
16
7
  try {
17
8
  hash = ethUtil.sha3(JSON.stringify(data));
18
9
  publicSignKey = ethUtil.ecrecover(hash, signature.v, signature.r, signature.s);
19
10
  receiverAddress = ethUtil.bufferToHex(ethUtil.publicToAddress(publicSignKey));
20
11
  }
21
12
  catch (e) {
13
+ // XXXVlab: should probably use exceptions
22
14
  return 'InvalidFormat';
23
15
  }
24
16
  if (receiverAddress !== data.address) {
@@ -30,6 +22,34 @@ export function checkSignedQR(data, signature, intendedRecipientAddress) {
30
22
  if ((new Date(data.end)).getTime() < (new Date()).getTime()) {
31
23
  return 'Expired';
32
24
  }
33
- return { signature, data };
25
+ return true;
26
+ }
27
+ export function makeSignedQRFragments(qrContent, fragmentCount) {
28
+ const signatureId = qrContent.signature.s.substring(4, 8);
29
+ const qrString = JSON.stringify(qrContent);
30
+ const fragmentSize = Math.ceil(qrString.length / fragmentCount);
31
+ const fragments = {
32
+ full: qrString,
33
+ };
34
+ for (let i = 0; i < fragmentCount; i++) {
35
+ fragments[i] = `FRAG_CR${signatureId}${i}${qrString.substring(fragmentSize * i, Math.min(fragmentSize * (i + 1), qrString.length))}`;
36
+ }
37
+ return fragments;
38
+ }
39
+ export function makeSignedQRContent(obj, privKey) {
40
+ const { begin, end } = obj;
41
+ const formatDate = (date) => `${date.getFullYear()}/${(date.getMonth() + 1)}/${date.getDate()}`;
42
+ const data = Object.assign(obj, {
43
+ begin: formatDate(begin),
44
+ end: formatDate(end),
45
+ });
46
+ const hash = ethUtil.sha3(JSON.stringify(data));
47
+ const { v, r, s } = ethUtil.ecsign(hash, privKey);
48
+ const signature = {
49
+ v,
50
+ r: '0x' + r.toString('hex'),
51
+ s: '0x' + s.toString('hex'),
52
+ };
53
+ return { data, signature };
34
54
  }
35
55
  //# sourceMappingURL=qr.js.map
package/build/qr.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"qr.js","sourceRoot":"","sources":["../src/qr.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,iBAAiB,CAAA;AAGrC,MAAM,UAAU,uBAAuB,CAAE,QAAQ,EAAE,wBAAwB;IACzE,IAAI,IAAW,EAAE,SAAiB,CAAA;IAClC,IAAI;QACF,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;KAC7C;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,eAAe,CAAA;KACvB;IACD,OAAO,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,wBAAwB,CAAC,CAAA;AACjE,CAAC;AAED,MAAM,UAAU,aAAa,CAAE,IAAI,EAAE,SAAS,EAAE,wBAAwB;IACtE,IAAI,IAAY,CAAA;IAChB,IAAI,aAAqB,CAAA;IACzB,IAAI,eAAuB,CAAA;IAC3B,IAAI;QACF,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QACzC,aAAa,GAAG,OAAO,CAAC,SAAS,CAC/B,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;QAC9C,eAAe,GAAG,OAAO,CAAC,WAAW,CACnC,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAA;KAC1C;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,eAAe,CAAA;KACvB;IAED,IAAI,eAAe,KAAK,IAAI,CAAC,OAAO,EAAE;QAAE,OAAO,kBAAkB,CAAA;KAAE;IACnE,IAAI,IAAI,CAAC,SAAS,KAAK,wBAAwB,EAAE;QAAE,OAAO,WAAW,CAAA;KAAE;IACvE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3D,OAAO,SAAS,CAAA;KACjB;IACD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;AAC5B,CAAC"}
1
+ {"version":3,"file":"qr.js","sourceRoot":"","sources":["../src/qr.ts"],"names":[],"mappings":"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"}
@@ -5,20 +5,12 @@ export default abstract class AjaxReqAbstract {
5
5
  queuePost(): void;
6
6
  getBalance(addr: any): Promise<unknown>;
7
7
  getTransactionData(addr: any): Promise<unknown>;
8
- sendTx(rawTx: any, additionalData: any): Promise<{
9
- isError: boolean;
10
- error: any;
11
- }>;
12
- getEstimatedGas(txobj: any): Promise<unknown>;
8
+ sendTx(rawTx: any, more: any): Promise<unknown>;
13
9
  getEthCall(txobj: any): Promise<unknown>;
14
10
  getEthCallAt(txobj: any, blockNb: any): Promise<unknown>;
15
11
  enrollPost(data: any): any;
16
- validateEnrollmentLetter(id: any, currency: any, signature: any): any;
17
- enrollAddress(id: any, address: any, currency: any, token: any): any;
18
12
  getTransList(id: any, count: any, offset: any): Promise<any>;
19
- getTransCheck(hash: any): any;
20
- getExportTransList(id: any, start: any, end: any): any;
21
- getExportTransListWithId(id: any, start: any, end: any): any;
13
+ getExportTransList(id: any, start: any, end: any): Promise<any>;
22
14
  getCodesFromAddresses(addresses: any, currency: any, caller: any, signature: any): any;
23
15
  getAddressesFromCode(code: any, currency: any, caller: any, signature: any): any;
24
16
  getMessageKey(addr: any, withPrivate: any): any;
@@ -28,4 +20,5 @@ export default abstract class AjaxReqAbstract {
28
20
  publishReqMessages(data: any, sign: any): any;
29
21
  currBlock(): any;
30
22
  getBlock(hash: any): Promise<any>;
23
+ getTransactionInfo(hash: any): Promise<any>;
31
24
  }
@@ -1,9 +1,9 @@
1
+ import { APIError } from '../exception';
1
2
  class URL {
2
3
  }
3
4
  URL.SERVER = 'api.php';
4
5
  URL.ENROLL = 'enroll.php';
5
6
  URL.TRANLIST = 'trnslist.php';
6
- URL.TRANCHECK = 'api.php';
7
7
  URL.EXPORTTRAN = 'export.php';
8
8
  URL.GETCODE = 'getuid.php';
9
9
  URL.GETADDRESS = 'getadd.php';
@@ -26,15 +26,13 @@ export default class AjaxReqAbstract {
26
26
  }
27
27
  queuePost() {
28
28
  const { data, resolve, reject } = this.pendingPosts[0];
29
- try {
30
- this.endpoint.post(URL.SERVER, data).then(data => {
31
- resolve(data.data);
32
- });
33
- }
34
- catch (err) {
35
- console.log(err);
36
- reject(err);
37
- }
29
+ this.endpoint.post(URL.SERVER, data).then(res => {
30
+ if (res.error) {
31
+ reject(new APIError(res.msg, res.data));
32
+ return;
33
+ }
34
+ resolve(res.data);
35
+ });
38
36
  this.pendingPosts.splice(0, 1);
39
37
  if (this.pendingPosts.length > 0) {
40
38
  this.queuePost();
@@ -42,14 +40,7 @@ export default class AjaxReqAbstract {
42
40
  }
43
41
  getBalance(addr) { return this.post({ balance: addr }); }
44
42
  getTransactionData(addr) { return this.post({ txdata: addr }); }
45
- async sendTx(rawTx, additionalData) {
46
- const data = await this.post(Object.assign({}, { rawtx: rawTx }, additionalData !== null && additionalData !== void 0 ? additionalData : {}));
47
- return {
48
- isError: !!data.error,
49
- error: data.error ? data.data : data.msg
50
- };
51
- }
52
- getEstimatedGas(txobj) { return this.post({ estimatedGas: txobj }); }
43
+ sendTx(rawTx, more) { return this.post({ rawtx: rawTx, ...(more ?? {}) }); }
53
44
  getEthCall(txobj) { return this.post({ ethCall: txobj }); }
54
45
  getEthCallAt(txobj, blockNb) {
55
46
  return this.post({ ethCallAt: txobj, blockNb });
@@ -60,26 +51,15 @@ export default class AjaxReqAbstract {
60
51
  enrollPost(data) {
61
52
  return this.endpoint.post(URL.ENROLL, { data: JSON.stringify(data) });
62
53
  }
63
- validateEnrollmentLetter(id, currency, signature) {
64
- return this.enrollPost({ id, currency, signature });
65
- }
66
- enrollAddress(id, address, currency, token) {
67
- return this.enrollPost({ id, addresse: address, token, currency });
68
- }
69
54
  async getTransList(id, count, offset) {
70
55
  // for some strange reasons, the answer is stringified 2 times,
71
56
  // so we need to unpack each entry a second time.
72
57
  const data = await this.endpoint.get(URL.TRANLIST, { addr: id, count, offset });
73
58
  return data.map((dataJSON) => JSON.parse(dataJSON));
74
59
  }
75
- getTransCheck(hash) {
76
- return this.endpoint.get(URL.TRANCHECK, { hash });
77
- }
78
- getExportTransList(id, start, end) {
79
- return this.endpoint.get(URL.EXPORTTRAN, { addr: id, start, end });
80
- }
81
- getExportTransListWithId(id, start, end) {
82
- return this.endpoint.get(URL.EXPORTTRAN, { addr: id, start, end });
60
+ async getExportTransList(id, start, end) {
61
+ const data = await this.endpoint.get(URL.EXPORTTRAN, { addr: id, start, end });
62
+ return data.map((dataJSON) => JSON.parse(dataJSON));
83
63
  }
84
64
  getCodesFromAddresses(addresses, currency, caller, signature) {
85
65
  return this.endpoint.post(URL.GETCODE, {
@@ -117,9 +97,12 @@ export default class AjaxReqAbstract {
117
97
  }
118
98
  currBlock() { return this.endpoint.get(URL.SERVER); }
119
99
  async getBlock(hash) {
100
+ return (await this.getTransactionInfo(hash)).transaction;
101
+ }
102
+ async getTransactionInfo(hash) {
120
103
  let res = await this.endpoint.get(URL.SERVER, { hash });
121
104
  if (res && typeof res !== 'object') {
122
- res = JSON.parse(res).transaction;
105
+ res = JSON.parse(res);
123
106
  }
124
107
  return res;
125
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ajaxReq.js","sourceRoot":"","sources":["../../src/rest/ajaxReq.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ajaxReq.js","sourceRoot":"","sources":["../../src/rest/ajaxReq.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEvC,MAAM,GAAG;;AACA,UAAM,GAAG,SAAS,CAAC;AACnB,UAAM,GAAG,YAAY,CAAC;AACtB,YAAQ,GAAG,cAAc,CAAC;AAC1B,cAAU,GAAG,YAAY,CAAC;AAC1B,WAAO,GAAG,YAAY,CAAC;AACvB,cAAU,GAAG,YAAY,CAAC;AAC1B,YAAQ,GAAG,UAAU,CAAC;AACtB,mBAAe,GAAG,qBAAqB,CAAC;AAIjD,MAAM,CAAC,OAAO,OAAgB,eAAe;IAA7C;QAME,iBAAY,GAAG,EAAE,CAAA;IAmHnB,CAAC;IAjHC,EAAE;IACF,6DAA6D;IAC7D,EAAE;IAEF,IAAI,CAAE,IAAI;QACR,MAAM,IAAI,GAAG,IAAI,CAAA;QACjB,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM;YAC1C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;YACjD,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;gBAAE,IAAI,CAAC,SAAS,EAAE,CAAA;QACtD,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,SAAS;QACP,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAEtD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC9C,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;gBACvC,OAAM;YACR,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACnB,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC9B,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC,SAAS,EAAE,CAAA;QAAC,CAAC;IACxD,CAAC;IAGD,UAAU,CAAE,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA,CAAC,CAAC;IACzD,kBAAkB,CAAE,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA,CAAC,CAAC;IAChE,MAAM,CAAE,KAAK,EAAE,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC;IAC5E,UAAU,CAAE,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA,CAAC,CAAC;IAE3D,YAAY,CAAE,KAAK,EAAE,OAAO;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;IACjD,CAAC;IAGD,EAAE;IACF,cAAc;IACd,EAAE;IAEF,UAAU,CAAE,IAAI;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACvE,CAAC;IAED,KAAK,CAAC,YAAY,CAAE,EAAE,EAAE,KAAK,EAAE,MAAM;QACnC,+DAA+D;QAC/D,iDAAiD;QACjD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QAC/E,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;IACrD,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAE,EAAE,EAAE,KAAK,EAAE,GAAG;QACtC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;QAC9E,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;IACrD,CAAC;IAED,qBAAqB,CAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS;QAC3D,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;YACrC,MAAM,EAAE,QAAQ;YAChB,MAAM;YACN,SAAS;YACT,SAAS;SACV,CAAC,CAAA;IACJ,CAAC;IAED,oBAAoB,CAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS;QACrD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE;YACxC,MAAM,EAAE,QAAQ;YAChB,MAAM;YACN,SAAS;YACT,IAAI;SACL,CAAC,CAAA;IACJ,CAAC;IAED,aAAa,CAAE,IAAI,EAAE,WAAW;QAC9B,MAAM,IAAI,GAAuB,EAAE,IAAI,EAAE,CAAA;QACzC,IAAI,WAAW;YAAE,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA;QACnC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAC9C,CAAC;IAED,iBAAiB,CAAE,IAAI,EAAE,IAAI;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IACzD,CAAC;IAED,aAAa,CAAE,OAAO,EAAE,GAAG;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;IAC7C,CAAC;IAED,cAAc,CAAE,OAAO,EAAE,KAAK;QAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CACtB,GAAG,CAAC,eAAe,EACnB,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;IACzC,CAAC;IAED,kBAAkB,CAAE,IAAI,EAAE,IAAI;QAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAChE,CAAC;IAED,SAAS,KAAM,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA,CAAC,CAAC;IAErD,KAAK,CAAC,QAAQ,CAAE,IAAI;QAClB,OAAO,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAA;IAC1D,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAE,IAAI;QAC5B,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;QACvD,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACnC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACvB,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;CAEF"}
@@ -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":"AAGA,SAAS,iBAAiB,CAAE,SAAiB;IAC3C,IAAI,QAAgB,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,CAAA;IAC9D,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC7B,CAAC;QAAA,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;KAChD;SAAM;QACL,QAAQ,GAAG,OAAO,CAAA;QAClB,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;KACzC;IACD,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAC3B,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAClC;QAAA,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;KAC7D;SAAM;QACL,mBAAmB;QACnB,IAAI,GAAG,EAAE,CAAA;QACT,IAAI,GAAG,SAAS,CAAA;KACjB;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC9B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAA;SAC9D;QACD,CAAC;QAAA,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KACjD;SAAM;QACL,IAAI,QAAQ,KAAK,MAAM,EAAE;YACvB,IAAI,GAAG,EAAE,CAAA;SACV;aAAM,IAAI,QAAQ,KAAK,OAAO,EAAE;YAC/B,IAAI,GAAG,GAAG,CAAA;SACX;aAAM;YACL,MAAM,IAAI,KAAK,CACb,8CAA8C,QAAQ,EAAE,CACzD,CAAA;SACF;KACF;IACD,OAAO;QACL,QAAQ;QACR,IAAI;QACJ,IAAI;QACJ,IAAI;KACL,CAAA;AACH,CAAC;AAGD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAgB,YAAY;IAIxC,KAAK,CAAC,OAAO,CAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAQ;QAChD,IAAI,MAAM,KAAK,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5D,GAAG,IAAI,GAAG,GAAG,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;SACpD;QAED,IAAI,QAAQ,iCACV,MAAM,EACN,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IACjC,IAAI,GACJ,iBAAiB,CAAC,GAAG,CAAC,CAC1B,CAAA;QACD,OAAO,MAAY,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;IAC/C,CAAC;IAED,GAAG,CAAE,GAAG,IAAW,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAA,CAAC,CAAC;IAC5D,IAAI,CAAE,GAAG,IAAW,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAA,CAAC,CAAC;CAC/D"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/rest/http.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../src/rest/serializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../src/rest/serializer.ts"],"names":[],"mappings":"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"}
package/build/type.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export declare const httpMethods: readonly ["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD"];
2
- export declare type httpMethod = typeof httpMethods[number];
3
- export declare type coreHttpOpts = {
2
+ export type httpMethod = typeof httpMethods[number];
3
+ export type coreHttpOpts = {
4
4
  protocol: string;
5
5
  host: string;
6
6
  path: string;
@@ -10,13 +10,13 @@ export declare type coreHttpOpts = {
10
10
  data?: any;
11
11
  timeout?: number;
12
12
  };
13
- export declare type HttpRequest = (opts: coreHttpOpts) => Object;
13
+ export type HttpRequest = (opts: coreHttpOpts) => Object;
14
14
  export interface IPersistentStore {
15
15
  get(key: string, defaultValue?: string): string;
16
16
  set(key: string, value: string): void;
17
17
  del(key: string): void;
18
18
  }
19
- export declare type UrlParts = {
19
+ export type UrlParts = {
20
20
  protocol: string;
21
21
  host: string;
22
22
  port: number;
@@ -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