@com-chain/jsc3l 2.0.1-rc.7 → 2.0.1-rc.8

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.
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()}/${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":"AAAA,OAAO,OAAO,MAAM,iBAAiB,CAAA;AAkCrC,MAAM,UAAU,aAAa,CAAE,SAAmB,EAAE,wBAAwB;IAE1E,IAAI,IAAY,CAAA;IAChB,IAAI,aAAqB,CAAA;IACzB,IAAI,eAAuB,CAAA;IAC3B,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,SAAS,CAAA;IACrC,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,0CAA0C;QAC1C,OAAO,eAAe,CAAA;KACvB;IAED,IAAI,eAAe,KAAK,IAAI,CAAC,OAAO,EAAE;QACpC,OAAO,kBAAkB,CAAA;KAC1B;IACD,IAAI,IAAI,CAAC,SAAS,KAAK,wBAAwB,EAAE;QAC/C,OAAO,WAAW,CAAA;KACnB;IACD,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,IAAI,CAAA;AACb,CAAC;AAGD,MAAM,UAAU,qBAAqB,CACnC,SAAmB,EACnB,aAAqB;IAGrB,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAEzD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,aAAa,CAAC,CAAA;IAC/D,MAAM,SAAS,GAAG;QAChB,IAAI,EAAE,QAAQ;KACf,CAAA;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;QACtC,SAAS,CAAC,CAAC,CAAC,GAAG,UAAU,WAAW,GAAG,CAAC,GAAG,QAAQ,CAAC,SAAS,CAC3D,YAAY,GAAG,CAAC,EAChB,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAClD,EAAE,CAAA;KACJ;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAGD,MAAM,UAAU,mBAAmB,CAAE,GAAW,EAAE,OAAe;IAC/D,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,GAAG,CAAA;IAC1B,MAAM,UAAU,GAAG,CAAC,IAAU,EAAE,EAAE,CAChC,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAA;IAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;QAC9B,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC;QACxB,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC;KACrB,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;IAC/C,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACjD,MAAM,SAAS,GAAG;QAChB,CAAC;QACD,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC3B,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;KAC5B,CAAA;IAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;AAE5B,CAAC"}
@@ -13,8 +13,6 @@ export default abstract class AjaxReqAbstract {
13
13
  getEthCall(txobj: any): Promise<unknown>;
14
14
  getEthCallAt(txobj: any, blockNb: any): Promise<unknown>;
15
15
  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
16
  getTransList(id: any, count: any, offset: any): Promise<any>;
19
17
  getTransCheck(hash: any): any;
20
18
  getExportTransList(id: any, start: any, end: any): Promise<any>;
@@ -63,12 +63,6 @@ export default class AjaxReqAbstract {
63
63
  enrollPost(data) {
64
64
  return this.endpoint.post(URL.ENROLL, { data: JSON.stringify(data) });
65
65
  }
66
- validateEnrollmentLetter(id, currency, signature) {
67
- return this.enrollPost({ id, currency, signature });
68
- }
69
- enrollAddress(id, address, currency, token) {
70
- return this.enrollPost({ id, addresse: address, token, currency });
71
- }
72
66
  async getTransList(id, count, offset) {
73
67
  // for some strange reasons, the answer is stringified 2 times,
74
68
  // so we need to unpack each entry a second time.
@@ -1 +1 @@
1
- {"version":3,"file":"ajaxReq.js","sourceRoot":"","sources":["../../src/rest/ajaxReq.ts"],"names":[],"mappings":"AACA,MAAM,GAAG;;AACA,UAAM,GAAG,SAAS,CAAC;AACnB,UAAM,GAAG,YAAY,CAAC;AACtB,YAAQ,GAAG,cAAc,CAAC;AAC1B,aAAS,GAAG,SAAS,CAAC;AACtB,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;IA0InB,CAAC;IAxIC,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;YACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC/C,IAAI,IAAI,CAAC,KAAK,EAAE;oBACd,MAAM,CAAC,IAAI,CAAC,CAAA;iBACb;gBACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACpB,CAAC,CAAC,CAAA;SACH;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAChB,MAAM,CAAC,GAAG,CAAC,CAAA;SACZ;QACD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC9B,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YAAE,IAAI,CAAC,SAAS,EAAE,CAAA;SAAE;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,KAAK,CAAC,MAAM,CAAE,KAAK,EAAE,cAAc;QACjC,MAAM,IAAI,GACR,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,EAAE,CAAC,CAAC,CAAA;QAE5E,OAAO;YACL,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;SACzC,CAAA;IACH,CAAC;IAGD,eAAe,CAAE,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAA,CAAC,CAAC;IACrE,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,wBAAwB,CAAE,EAAE,EAAE,QAAQ,EAAE,SAAS;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAA;IACrD,CAAC;IAED,aAAa,CAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;IACpE,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,aAAa,CAAE,IAAI;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;IACnD,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,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;YAClC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,WAAW,CAAA;SAClC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;CAEF"}
1
+ {"version":3,"file":"ajaxReq.js","sourceRoot":"","sources":["../../src/rest/ajaxReq.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;
package/build/wallet.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import AjaxReq from './rest/ajaxReq';
2
+ import { SignedQR } from './qr';
2
3
  import Wallet from './ethereum/myetherwallet';
3
4
  export default abstract class MessagingWalletAbstract extends Wallet {
4
5
  abstract ajaxReq: AjaxReq;
@@ -21,15 +22,13 @@ export default abstract class MessagingWalletAbstract extends Wallet {
21
22
  encryptWallet(password: any): {
22
23
  [k: string]: any;
23
24
  };
24
- enrollAddress(codeId: any, token: any): any;
25
+ validateEnrollment(id: any, signature: any): any;
26
+ enrollAddress(id: any, token: any): any;
25
27
  requestUnlock(): any;
26
28
  static getWalletFromPrivKeyFile(jsonStr: any, password: any): Wallet;
27
- makeSignedQRWithPubKey(objContent: any, pubKey: any): {
28
- signature: any;
29
- qrContent: string;
30
- };
31
- makeSignedQR(obj: any): {
32
- signature: any;
33
- qrContent: string;
29
+ makeSignedQRContent(obj: any, pubKey: string | null): SignedQR;
30
+ makeSignedQRFragments(obj: any, fragmentCount: number, pubKey: string | null): {
31
+ full: string;
34
32
  };
33
+ checkSignedQRFromString(qrString: string): true | "InvalidFormat" | "InvalidSignature" | "NotForYou" | "Expired";
35
34
  }
package/build/wallet.js CHANGED
@@ -1,4 +1,4 @@
1
- import ethUtil from 'ethereumjs-util';
1
+ import { checkSignedQR, makeSignedQRContent, makeSignedQRFragments } from './qr';
2
2
  import { shortenAddress, cipherMsg, decipherMsg } from './ethereum/cipher';
3
3
  import Wallet from './ethereum/myetherwallet';
4
4
  export default class MessagingWalletAbstract extends Wallet {
@@ -99,8 +99,21 @@ export default class MessagingWalletAbstract extends Wallet {
99
99
  message_key: this.message_key
100
100
  });
101
101
  }
102
- enrollAddress(codeId, token) {
103
- return this.ajaxReq.enrollAddress(codeId, this.getAddressString(), this.currencyName, token);
102
+ validateEnrollment(id, signature) {
103
+ return this.ajaxReq.enrollPost({
104
+ id,
105
+ signature,
106
+ currency: this.currencyName,
107
+ });
108
+ }
109
+ enrollAddress(id, token) {
110
+ return this.ajaxReq.enrollPost({
111
+ id,
112
+ token,
113
+ currency: this.currencyName,
114
+ // XXXvlab: Yes, typo is intentional here (in PHP API):
115
+ addresse: this.getAddressString(),
116
+ });
104
117
  }
105
118
  requestUnlock() {
106
119
  return this.ajaxReq.requestUnlock(this.getAddressString(), this.unlockUrl);
@@ -124,40 +137,25 @@ export default class MessagingWalletAbstract extends Wallet {
124
137
  }
125
138
  }
126
139
  //
127
- // QR Codes requires EthUtils
140
+ // QR Code helpers
128
141
  //
129
- makeSignedQRWithPubKey(objContent, pubKey) {
130
- objContent.message_key = cipherMsg(pubKey, this.messageKeysFromWallet());
131
- objContent.address = this.getAddressString();
132
- return this.makeSignedQR(objContent);
133
- }
134
- makeSignedQR(obj) {
135
- // Values expected:
136
- const { server, destinary, begin, end, viewbalance, viewoldtran, pub_key } = obj;
137
- const formatDate = (date) => `${begin.getFullYear()}/${begin.getMonth()}/${begin.getDate()}`;
138
- const objContent = Object.assign(obj, {
139
- address: this.getAddressString(),
140
- begin: formatDate(begin),
141
- end: formatDate(end)
142
- });
143
- const hash = ethUtil.sha3(JSON.stringify(objContent));
144
- const signature = ethUtil.ecsign(hash, this.privKey);
145
- return {
146
- signature,
147
- qrContent: JSON.stringify({
148
- data: objContent,
149
- signature: {
150
- v: signature.v,
151
- r: '0x' + signature.r.toString('hex'),
152
- s: '0x' + signature.s.toString('hex')
153
- }
154
- })
155
- };
142
+ makeSignedQRContent(obj, pubKey) {
143
+ return makeSignedQRContent(Object.assign(Object.assign({ server: this.currencyName, address: this.getAddressString() }, obj), pubKey && {
144
+ message_key: cipherMsg(pubKey, this.messageKeysFromWallet())
145
+ }), this.privKey);
146
+ }
147
+ makeSignedQRFragments(obj, fragmentCount, pubKey) {
148
+ return makeSignedQRFragments(this.makeSignedQRContent(obj, pubKey), fragmentCount);
149
+ }
150
+ checkSignedQRFromString(qrString) {
151
+ let qrContent;
152
+ try {
153
+ qrContent = JSON.parse(qrString);
154
+ }
155
+ catch (e) {
156
+ return 'InvalidFormat';
157
+ }
158
+ return checkSignedQR(qrContent, this.getAddressString());
156
159
  }
157
160
  }
158
- // // TODO: What to do with this validateEnrollment
159
- // public static validateEnrollment (codeId, signature) {
160
- // return this.ajaxReq.validateEnrollmentLetter(
161
- // codeId, this.currencyName, signature)
162
- // }
163
161
  //# sourceMappingURL=wallet.js.map
@@ -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,6 +1,6 @@
1
1
  {
2
2
  "name": "@com-chain/jsc3l",
3
- "version": "2.0.1-rc.7",
3
+ "version": "2.0.1-rc.8",
4
4
  "description": "JavaScript Com-Chain Communication Library",
5
5
  "main": "build/index.js",
6
6
  "scripts": {
@@ -16,9 +16,12 @@ function typeConv (label: string): (x:any) => (string | number) {
16
16
  if (label.startsWith('limit') || label === 'amount') {
17
17
  return (nb) => encodeNumber(roundCent(nb))
18
18
  }
19
- if (label.endsWith('Status') || label.endsWith('Type')) {
19
+ if (label.endsWith('Status') || label.endsWith('Type') || label.endsWith('Int')) {
20
20
  return (nb) => encodeNumber(nb)
21
21
  }
22
+ if (label.endsWith('Hex')) {
23
+ return (s) => s.padEnd(128, '0')
24
+ }
22
25
  if (label === 'status') {
23
26
  return (nb) => (parseInt(nb, 10) === 0 ? 0 : 1)
24
27
  }
@@ -26,7 +29,7 @@ function typeConv (label: string): (x:any) => (string | number) {
26
29
  }
27
30
 
28
31
 
29
- export default abstract class BcTransactionAbstract {
32
+ export abstract class BcTransactionAbstract {
30
33
 
31
34
  abstract ajaxReq: AjaxReq
32
35
  abstract contracts: string[]
@@ -77,81 +80,57 @@ export default abstract class BcTransactionAbstract {
77
80
  }
78
81
 
79
82
 
80
- [
81
- // First Contract
82
- {
83
- setAccountParam: '848b2592:accAddress accStatus accType limitPlus limitMinus',
84
- pledgeAccount: '6c343eef:accAddress amount *',
85
- setAllowance: 'd4e12f2e:spenderAddress amount',
86
- setDelegation: '75741c79:spenderAddress limit',
87
- setTaxAmount: 'f6f1897d:amount',
88
- setTaxLegAmount: 'fafaf4c0:amount',
89
- setTaxAccount: 'd0385b5e:accAddress',
90
- setOwnerAccount: 'f2fde38b:accAddress',
91
- setContractStatus: '0x88b8084f:status',
92
- },
93
- // Second Contract
94
- {
95
- transferNant: 'a5f7c148:toAddress amount *',
96
- transferCM: '60ca9c4c:toAddress amount *',
97
- transferOnBehalfNant: '1b6b1ee5:fromAddress toAddress amount D',
98
- transferOnBehalfCM: '74c421fe:fromAddress toAddress amount D',
99
- askTransferFrom: '58258353:fromAddress amount',
100
- askTransferCMFrom: '2ef9ade2:fromAddress amount',
101
- payRequestNant: '132019f4:toAddress amount *',
102
- payRequestCM: '1415707c:toAddress amount *',
103
- rejectRequest: 'af98f757:toAddress',
104
- dismissAcceptedInfo: 'ccf93c7a:accAddress',
105
- dismissRejectedInfo: '88759215:accAddress',
106
- }
107
- ].forEach((contractFnDefs, contractNb) => {
108
-
109
- for (const fnName in contractFnDefs) {
110
-
111
- const [fnHash, argStringList] = contractFnDefs[fnName].split(':')
112
- const argList = argStringList.split(' ')
113
- let hasAdditionalPostData = false
114
- let hasDelegate = false
115
- if (argList.slice(-1)[0] === '*') {
116
- hasAdditionalPostData = true
117
- argList.pop()
118
- } else if (argList.slice(-1)[0] === 'D') {
119
- hasAdditionalPostData = true
120
- hasDelegate = true
121
- argList.pop()
122
- }
83
+ export function transactionFactory(transactionDefs: any[], bcTransactionClass: any) {
84
+
85
+ transactionDefs.forEach((contractFnDefs, contractNb) => {
123
86
 
124
- // Build argument array function
125
- const argFnList = argList.map((arg) => typeConv(arg))
126
- const concatArgs = (args) =>
127
- args.map((arg, idx) => argFnList[idx](arg)).join('')
128
-
129
- BcTransactionAbstract.prototype[fnName] = async function (wallet, ...args) {
130
- const addr = wallet.getAddressString()
131
- const data = await this.ajaxReq.getTransactionData(addr)
132
- // TODO: must test this
133
- if (data.error) {
134
- console.log(`Failed getTransactionData(${addr})`)
135
- throw new Error(data.msg)
87
+ for (const fnName in contractFnDefs) {
88
+
89
+ const [fnHash, argStringList] = contractFnDefs[fnName].split(':')
90
+ const argList = argStringList.split(' ')
91
+ let hasAdditionalPostData = false
92
+ let hasDelegate = false
93
+ if (argList.slice(-1)[0] === '*') {
94
+ hasAdditionalPostData = true
95
+ argList.pop()
96
+ } else if (argList.slice(-1)[0] === 'D') {
97
+ hasAdditionalPostData = true
98
+ hasDelegate = true
99
+ argList.pop()
136
100
  }
137
- const additionalPostData = hasAdditionalPostData ? args.pop() : {}
138
- if (hasDelegate) {
139
- additionalPostData.delegate = wallet.getAddressString()
101
+
102
+ // Build argument array function
103
+ const argFnList = argList.map((arg) => typeConv(arg))
104
+ const concatArgs = (args) =>
105
+ args.map((arg, idx) => argFnList[idx](arg)).join('')
106
+
107
+ bcTransactionClass.prototype[fnName] = async function (wallet, ...args) {
108
+ const addr = wallet.getAddressString()
109
+ const data = await this.ajaxReq.getTransactionData(addr)
110
+ // TODO: must test this
111
+ if (data.error) {
112
+ console.log(`Failed getTransactionData(${addr})`)
113
+ throw new Error(data.msg)
114
+ }
115
+ const additionalPostData = hasAdditionalPostData ? args.pop() : {}
116
+ if (hasDelegate) {
117
+ additionalPostData.delegate = wallet.getAddressString()
118
+ }
119
+ const rawTx = generateTx({
120
+ gasLimit: 500000,
121
+ data: fnHash + concatArgs(args),
122
+ to: this.contracts[contractNb],
123
+ unit: 'ether',
124
+ value: 0,
125
+ nonce: 1,
126
+ gasPrice: null,
127
+ donate: false,
128
+ from: addr,
129
+ key: wallet.getPrivateKeyString()
130
+ }, data)
131
+ if (rawTx.isError) return rawTx
132
+ return this.ajaxReq.sendTx(rawTx.signedTx, additionalPostData)
140
133
  }
141
- const rawTx = generateTx({
142
- gasLimit: 500000,
143
- data: fnHash + concatArgs(args),
144
- to: this.contracts[contractNb],
145
- unit: 'ether',
146
- value: 0,
147
- nonce: 1,
148
- gasPrice: null,
149
- donate: false,
150
- from: addr,
151
- key: wallet.getPrivateKeyString()
152
- }, data)
153
- if (rawTx.isError) return rawTx
154
- return this.ajaxReq.sendTx(rawTx.signedTx, additionalPostData)
155
134
  }
156
- }
157
- })
135
+ })
136
+ }
@@ -0,0 +1,34 @@
1
+
2
+
3
+ export default [
4
+ // First Contract
5
+ {
6
+ setAccountParam: '848b2592:accAddress accStatus accType limitPlus limitMinus',
7
+ pledgeAccount: '6c343eef:accAddress amount *',
8
+ setAllowance: 'd4e12f2e:spenderAddress amount',
9
+ setDelegation: '75741c79:spenderAddress limit',
10
+ setTaxAmount: 'f6f1897d:amount',
11
+ setTaxLegAmount: 'fafaf4c0:amount',
12
+ setTaxAccount: 'd0385b5e:accAddress',
13
+ setOwnerAccount: 'f2fde38b:accAddress',
14
+ setContractStatus: '88b8084f:status',
15
+ },
16
+ // Second Contract
17
+ {
18
+ transferNant: 'a5f7c148:toAddress amount *',
19
+ transferCM: '60ca9c4c:toAddress amount *',
20
+ transferOnBehalfNant: '1b6b1ee5:fromAddress toAddress amount D',
21
+ transferOnBehalfCM: '74c421fe:fromAddress toAddress amount D',
22
+ askTransferFrom: '58258353:fromAddress amount',
23
+ askTransferCMFrom: '2ef9ade2:fromAddress amount',
24
+ payRequestNant: '132019f4:toAddress amount *',
25
+ payRequestCM: '1415707c:toAddress amount *',
26
+ rejectRequest: 'af98f757:toAddress',
27
+ dismissAcceptedInfo: 'ccf93c7a:accAddress',
28
+ dismissRejectedInfo: '88759215:accAddress',
29
+ },
30
+ // // Third Contract
31
+ // {
32
+ // replaceAccount: '3e3fc7c7:newAddress',
33
+ // }
34
+ ]
package/src/connection.ts CHANGED
@@ -43,8 +43,15 @@ abstract class ConnectionAbstract {
43
43
  ///
44
44
  // [Lower level] Get the list of ComChain end-points from given repo
45
45
  ///
46
- getCCEndPointList (repo: string) {
47
- return this.http.get(repo + config.nodesRepo, { _: new Date().getTime() })
46
+ async getCCEndPointList (repo: string) {
47
+ try {
48
+ return await this.http.get(
49
+ repo + config.nodesRepo,
50
+ { _: new Date().getTime() })
51
+ } catch (e) {
52
+ console.error(`Failed to get endpoint list on ${repo}`, e)
53
+ return false
54
+ }
48
55
  }
49
56
 
50
57
  ///
@@ -232,11 +239,12 @@ export default abstract class ConnectionMgrAbstract extends ConnectionAbstract {
232
239
  public getLocalConfJSON () {
233
240
  if (this.conf) return this.conf
234
241
  const cfgJson = this.persistentStore.get('ServerConf')
235
- if (!cfgJson) return null
236
- const cfg = JSON.parse(cfgJson)
237
- // Completing with other informations
238
- cfg.repo = this.repo
239
- cfg.custoRepo = this.repo + config.custoRepo
242
+ const cfg = cfgJson ? JSON.parse(cfgJson) : {}
243
+ // Completing with other informations if available
244
+ if (this.repo) {
245
+ cfg.repo = this.repo
246
+ cfg.custoRepo = this.repo + config.custoRepo
247
+ }
240
248
  return cfg
241
249
  }
242
250
 
@@ -131,14 +131,25 @@ export default abstract class CustomizationAbstract {
131
131
  if (!currencyName) {
132
132
  currencyName = this.cfg.server.name
133
133
  }
134
+ if (!this.cfg.custoRepo) {
135
+ throw Error(
136
+ 'Requested getCurrencyAssetBaseUrl while configuration is not available (yet?)'
137
+ )
138
+ }
134
139
  return `${this.cfg.custoRepo}${currencyName}`
135
140
  }
136
141
 
137
142
  public getCssUrl (currencyName?: string) {
138
143
  try {
139
- // XXXvlab: I guess that we don't need to keep 'etherwallet' css names
140
- return `${this.getCurrencyAssetBaseUrl(currencyName)}/css/etherwallet-master.min.css`
144
+ // XXXvlab: I guess that we don't need to keep 'etherwallet' css
145
+ // names
146
+ return this.getCurrencyAssetBaseUrl(currencyName) +
147
+ '/css/etherwallet-master.min.css'
141
148
  } catch (e) {
149
+ console.log(
150
+ '`customization.getCssUrl(..)` called before configuration was ' +
151
+ "ready. Returning `localDefaultConf`'s value."
152
+ )
142
153
  return this.localDefaultConf.server.url_Css
143
154
  }
144
155
  }
@@ -149,6 +160,10 @@ export default abstract class CustomizationAbstract {
149
160
  // be agnostic ?
150
161
  return `${this.getCurrencyAssetBaseUrl(currencyName)}/images/lem.png`
151
162
  } catch (e) {
163
+ console.log(
164
+ '`customization.getCurrencyLogoUrl(..)` called before configuration ' +
165
+ 'was ready. Returning empty string.'
166
+ )
152
167
  return ''
153
168
  }
154
169
  }