@aeternity/aepp-sdk 8.2.0 → 10.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/README.md +16 -9
  2. package/dist/aepp-sdk.browser-script.js +1 -1
  3. package/dist/aepp-sdk.browser-script.js.LICENSE.txt +0 -9
  4. package/dist/aepp-sdk.browser-script.js.map +1 -1
  5. package/dist/aepp-sdk.browser.js +1 -1
  6. package/dist/aepp-sdk.browser.js.map +1 -1
  7. package/dist/aepp-sdk.js +1 -1
  8. package/dist/aepp-sdk.js.map +1 -1
  9. package/es/account/base.js +33 -119
  10. package/es/account/base.js.map +1 -1
  11. package/es/account/memory.js +17 -19
  12. package/es/account/memory.js.map +1 -1
  13. package/es/account/multiple.js +75 -154
  14. package/es/account/multiple.js.map +1 -1
  15. package/es/ae/aens.js +164 -599
  16. package/es/ae/aens.js.map +1 -1
  17. package/es/ae/contract.js +108 -916
  18. package/es/ae/contract.js.map +1 -1
  19. package/es/ae/index.js +89 -250
  20. package/es/ae/index.js.map +1 -1
  21. package/es/ae/oracle.js +132 -500
  22. package/es/ae/oracle.js.map +1 -1
  23. package/es/chain/index.js +4 -23
  24. package/es/chain/index.js.map +1 -1
  25. package/es/chain/node.js +292 -1018
  26. package/es/chain/node.js.map +1 -1
  27. package/es/channel/handlers.js +597 -1086
  28. package/es/channel/handlers.js.map +1 -1
  29. package/es/channel/index.js +203 -451
  30. package/es/channel/index.js.map +1 -1
  31. package/es/channel/internal.js +129 -301
  32. package/es/channel/internal.js.map +1 -1
  33. package/es/contract/aci/index.js +319 -491
  34. package/es/contract/aci/index.js.map +1 -1
  35. package/es/contract/aci/transformation.js +35 -711
  36. package/es/contract/aci/transformation.js.map +1 -1
  37. package/es/contract/compiler.js +129 -203
  38. package/es/contract/compiler.js.map +1 -1
  39. package/es/contract/ga/helpers.js +17 -122
  40. package/es/contract/ga/helpers.js.map +1 -1
  41. package/es/contract/ga/index.js +102 -247
  42. package/es/contract/ga/index.js.map +1 -1
  43. package/es/contract/index.js +1 -1
  44. package/es/contract/index.js.map +1 -1
  45. package/es/index.js +2 -3
  46. package/es/index.js.map +1 -1
  47. package/es/node-pool/index.js +54 -73
  48. package/es/node-pool/index.js.map +1 -1
  49. package/es/node.js +56 -157
  50. package/es/node.js.map +1 -1
  51. package/es/other.d.ts +1 -1
  52. package/es/tx/builder/helpers.js +49 -89
  53. package/es/tx/builder/helpers.js.map +1 -1
  54. package/es/tx/builder/index.js +205 -303
  55. package/es/tx/builder/index.js.map +1 -1
  56. package/es/tx/builder/schema.js +585 -573
  57. package/es/tx/builder/schema.js.map +1 -1
  58. package/es/tx/index.js +1 -1
  59. package/es/tx/index.js.map +1 -1
  60. package/es/tx/tx-object.js +105 -135
  61. package/es/tx/tx-object.js.map +1 -1
  62. package/es/tx/tx.js +810 -1586
  63. package/es/tx/tx.js.map +1 -1
  64. package/es/tx/validator.js +191 -426
  65. package/es/tx/validator.js.map +1 -1
  66. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js +17 -21
  67. package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +1 -1
  68. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js +38 -74
  69. package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +1 -1
  70. package/es/utils/aepp-wallet-communication/content-script-bridge.js +14 -15
  71. package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +1 -1
  72. package/es/utils/aepp-wallet-communication/helpers.js +60 -105
  73. package/es/utils/aepp-wallet-communication/helpers.js.map +1 -1
  74. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js +179 -510
  75. package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +1 -1
  76. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js +70 -89
  77. package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +1 -1
  78. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js +354 -603
  79. package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js.map +1 -1
  80. package/es/utils/aepp-wallet-communication/schema.js +43 -39
  81. package/es/utils/aepp-wallet-communication/schema.js.map +1 -1
  82. package/es/utils/aepp-wallet-communication/wallet-detector.js +32 -58
  83. package/es/utils/aepp-wallet-communication/wallet-detector.js.map +1 -1
  84. package/es/utils/amount-formatter.js +41 -61
  85. package/es/utils/amount-formatter.js.map +1 -1
  86. package/es/utils/async-init.js +28 -64
  87. package/es/utils/async-init.js.map +1 -1
  88. package/es/utils/bignumber.js +3 -11
  89. package/es/utils/bignumber.js.map +1 -1
  90. package/es/utils/bytes.js +5 -9
  91. package/es/utils/bytes.js.map +1 -1
  92. package/es/utils/crypto.js +49 -75
  93. package/es/utils/crypto.js.map +1 -1
  94. package/es/utils/hd-wallet.js +45 -81
  95. package/es/utils/hd-wallet.js.map +1 -1
  96. package/es/utils/json-big.js +16 -49
  97. package/es/utils/json-big.js.map +1 -1
  98. package/es/utils/keystore.js +81 -246
  99. package/es/utils/keystore.js.map +1 -1
  100. package/es/utils/mptree.js +88 -134
  101. package/es/utils/mptree.js.map +1 -1
  102. package/es/utils/other.js +10 -60
  103. package/es/utils/other.js.map +1 -1
  104. package/es/utils/semver-satisfies.js +9 -28
  105. package/es/utils/semver-satisfies.js.map +1 -1
  106. package/es/utils/string.js +4 -13
  107. package/es/utils/string.js.map +1 -1
  108. package/es/utils/swagger.js +85 -218
  109. package/es/utils/swagger.js.map +1 -1
  110. package/package.json +52 -43
  111. package/src/account/base.js +8 -9
  112. package/src/account/multiple.js +20 -16
  113. package/src/ae/aens.js +25 -21
  114. package/src/ae/contract.js +65 -246
  115. package/src/ae/index.js +31 -7
  116. package/src/ae/oracle.js +21 -17
  117. package/src/chain/index.js +2 -12
  118. package/src/chain/node.js +26 -29
  119. package/src/channel/handlers.js +0 -1
  120. package/src/channel/index.js +4 -5
  121. package/src/contract/aci/index.js +221 -106
  122. package/src/contract/aci/transformation.js +30 -422
  123. package/src/contract/compiler.js +45 -4
  124. package/src/contract/ga/helpers.js +2 -12
  125. package/src/contract/ga/index.js +22 -26
  126. package/src/index.js +2 -4
  127. package/src/node-pool/index.js +21 -12
  128. package/src/node.js +22 -26
  129. package/src/tx/builder/helpers.js +12 -24
  130. package/src/tx/builder/index.js +18 -15
  131. package/src/tx/builder/schema.js +43 -108
  132. package/src/tx/tx-object.js +0 -2
  133. package/src/tx/tx.js +157 -144
  134. package/src/tx/validator.js +134 -202
  135. package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +1 -3
  136. package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +9 -10
  137. package/src/utils/aepp-wallet-communication/schema.js +1 -3
  138. package/src/utils/amount-formatter.ts +1 -1
  139. package/src/utils/bignumber.ts +2 -1
  140. package/src/utils/crypto.js +4 -17
  141. package/src/utils/other.ts +1 -1
  142. package/src/utils/semver-satisfies.ts +1 -1
  143. package/src/utils/swagger.js +24 -7
  144. package/CHANGELOG.md +0 -1716
  145. package/src/contract/aci/helpers.js +0 -140
@@ -1,127 +1,22 @@
1
- import _typeof from "@babel/runtime-corejs3/helpers/typeof";
2
- import _asyncToGenerator from "@babel/runtime-corejs3/helpers/asyncToGenerator";
3
- import _regeneratorRuntime from "@babel/runtime-corejs3/regenerator";
4
- import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
5
1
  import BigNumber from 'bignumber.js';
6
- import { MAX_AUTH_FUN_GAS, TX_TYPE } from '../../tx/builder/schema';
7
- import { buildTx } from '../../tx/builder';
8
- import { hash } from '../../utils/crypto';
9
- export var prepareGaParams = function prepareGaParams(ins) {
10
- return /*#__PURE__*/function () {
11
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(authData, authFnName) {
12
- var _context;
13
-
14
- var gas;
15
- return _regeneratorRuntime.wrap(function _callee$(_context2) {
16
- while (1) {
17
- switch (_context2.prev = _context2.next) {
18
- case 0:
19
- if (!(_typeof(authData) !== 'object')) {
20
- _context2.next = 2;
21
- break;
22
- }
23
-
24
- throw new Error('AuthData must be an object');
25
-
26
- case 2:
27
- if (!(authData.gas && BigNumber(authData.gas).gt(MAX_AUTH_FUN_GAS))) {
28
- _context2.next = 4;
29
- break;
30
- }
31
-
32
- throw new Error(_concatInstanceProperty(_context = "the maximum gas value for ga authFun is ".concat(MAX_AUTH_FUN_GAS, ", got ")).call(_context, authData.gas));
33
-
34
- case 4:
35
- gas = authData.gas || MAX_AUTH_FUN_GAS;
36
-
37
- if (!authData.callData) {
38
- _context2.next = 11;
39
- break;
40
- }
41
-
42
- if (!(authData.callData.split('_')[0] !== 'cb')) {
43
- _context2.next = 8;
44
- break;
45
- }
46
-
47
- throw new Error('Auth data must be a string with "cb" prefix.');
48
-
49
- case 8:
50
- return _context2.abrupt("return", {
51
- authCallData: authData.callData,
52
- gas: gas
53
- });
54
-
55
- case 11:
56
- if (!(!authData.source || !authData.args)) {
57
- _context2.next = 13;
58
- break;
59
- }
60
-
61
- throw new Error('Auth data must contain source code and arguments.');
62
-
63
- case 13:
64
- _context2.next = 15;
65
- return ins.contractEncodeCall(authData.source, authFnName, authData.args);
66
-
67
- case 15:
68
- _context2.t0 = _context2.sent;
69
- _context2.t1 = gas;
70
- return _context2.abrupt("return", {
71
- authCallData: _context2.t0,
72
- gas: _context2.t1
73
- });
74
-
75
- case 18:
76
- case "end":
77
- return _context2.stop();
78
- }
79
- }
80
- }, _callee);
81
- }));
82
-
83
- return function (_x, _x2) {
84
- return _ref.apply(this, arguments);
2
+ import { MAX_AUTH_FUN_GAS } from '../../tx/builder/schema';
3
+ export const prepareGaParams = ins => async (authData, authFnName) => {
4
+ if (typeof authData !== 'object') throw new Error('AuthData must be an object');
5
+ if (authData.gas && BigNumber(authData.gas).gt(MAX_AUTH_FUN_GAS)) throw new Error(`the maximum gas value for ga authFun is ${MAX_AUTH_FUN_GAS}, got ${authData.gas}`);
6
+ const gas = authData.gas || MAX_AUTH_FUN_GAS;
7
+
8
+ if (authData.callData) {
9
+ if (authData.callData.split('_')[0] !== 'cb') throw new Error('Auth data must be a string with "cb" prefix.');
10
+ return {
11
+ authCallData: authData.callData,
12
+ gas
85
13
  };
86
- }();
87
- };
88
- export var getContractAuthFan = function getContractAuthFan(ins) {
89
- return /*#__PURE__*/function () {
90
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(source, fnName) {
91
- var _yield$ins$contractCo, bytecode;
92
-
93
- return _regeneratorRuntime.wrap(function _callee2$(_context3) {
94
- while (1) {
95
- switch (_context3.prev = _context3.next) {
96
- case 0:
97
- _context3.next = 2;
98
- return ins.contractCompile(source);
99
-
100
- case 2:
101
- _yield$ins$contractCo = _context3.sent;
102
- bytecode = _yield$ins$contractCo.bytecode;
103
- return _context3.abrupt("return", {
104
- bytecode: bytecode,
105
- authFun: hash(fnName)
106
- });
107
-
108
- case 5:
109
- case "end":
110
- return _context3.stop();
111
- }
112
- }
113
- }, _callee2);
114
- }));
115
-
116
- return function (_x3, _x4) {
117
- return _ref2.apply(this, arguments);
14
+ } else {
15
+ if (!authData.source || !authData.args) throw new Error('Auth data must contain source code and arguments.');
16
+ return {
17
+ authCallData: await ins.contractEncodeCallDataAPI(authData.source, authFnName, authData.args),
18
+ gas
118
19
  };
119
- }();
120
- };
121
- export var wrapInEmptySignedTx = function wrapInEmptySignedTx(rlp) {
122
- return buildTx({
123
- encodedTx: rlp,
124
- signatures: []
125
- }, TX_TYPE.signed);
20
+ }
126
21
  };
127
22
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/contract/ga/helpers.js"],"names":["BigNumber","MAX_AUTH_FUN_GAS","TX_TYPE","buildTx","hash","prepareGaParams","ins","authData","authFnName","Error","gas","gt","callData","split","authCallData","source","args","contractEncodeCall","getContractAuthFan","fnName","contractCompile","bytecode","authFun","wrapInEmptySignedTx","rlp","encodedTx","signatures","signed"],"mappings":";;;;AAAA,OAAOA,SAAP,MAAsB,cAAtB;AACA,SAASC,gBAAT,EAA2BC,OAA3B,QAA0C,yBAA1C;AACA,SAASC,OAAT,QAAwB,kBAAxB;AACA,SAASC,IAAT,QAAqB,oBAArB;AAEA,OAAO,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAACC,GAAD;AAAA;AAAA,wEAAS,iBAAOC,QAAP,EAAiBC,UAAjB;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAClC,QAAOD,QAAP,MAAoB,QADc;AAAA;AAAA;AAAA;;AAAA,oBACE,IAAIE,KAAJ,CAAU,4BAAV,CADF;;AAAA;AAAA,oBAElCF,QAAQ,CAACG,GAAT,IAAgBV,SAAS,CAACO,QAAQ,CAACG,GAAV,CAAT,CAAwBC,EAAxB,CAA2BV,gBAA3B,CAFkB;AAAA;AAAA;AAAA;;AAAA,oBAEkC,IAAIQ,KAAJ,sFAAqDR,gBAArD,4BAA8EM,QAAQ,CAACG,GAAvF,EAFlC;;AAAA;AAGhCA,cAAAA,GAHgC,GAG1BH,QAAQ,CAACG,GAAT,IAAgBT,gBAHU;;AAAA,mBAIlCM,QAAQ,CAACK,QAJyB;AAAA;AAAA;AAAA;;AAAA,oBAKhCL,QAAQ,CAACK,QAAT,CAAkBC,KAAlB,CAAwB,GAAxB,EAA6B,CAA7B,MAAoC,IALJ;AAAA;AAAA;AAAA;;AAAA,oBAKgB,IAAIJ,KAAJ,CAAU,8CAAV,CALhB;;AAAA;AAAA,gDAM7B;AAAEK,gBAAAA,YAAY,EAAEP,QAAQ,CAACK,QAAzB;AAAmCF,gBAAAA,GAAG,EAAHA;AAAnC,eAN6B;;AAAA;AAAA,oBAQhC,CAACH,QAAQ,CAACQ,MAAV,IAAoB,CAACR,QAAQ,CAACS,IARE;AAAA;AAAA;AAAA;;AAAA,oBAQU,IAAIP,KAAJ,CAAU,mDAAV,CARV;;AAAA;AAAA;AAAA,qBASPH,GAAG,CAACW,kBAAJ,CAAuBV,QAAQ,CAACQ,MAAhC,EAAwCP,UAAxC,EAAoDD,QAAQ,CAACS,IAA7D,CATO;;AAAA;AAAA;AAAA,6BAS6DN,GAT7D;AAAA;AAS3BI,gBAAAA,YAT2B;AAS6DJ,gBAAAA,GAT7D;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAT;;AAAA;AAAA;AAAA;AAAA;AAAA,CAAxB;AAaP,OAAO,IAAMQ,kBAAkB,GAAG,SAArBA,kBAAqB,CAACZ,GAAD;AAAA;AAAA,yEAAS,kBAAOS,MAAP,EAAeI,MAAf;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBACdb,GAAG,CAACc,eAAJ,CAAoBL,MAApB,CADc;;AAAA;AAAA;AACjCM,cAAAA,QADiC,yBACjCA,QADiC;AAAA,gDAGlC;AAAEA,gBAAAA,QAAQ,EAARA,QAAF;AAAYC,gBAAAA,OAAO,EAAElB,IAAI,CAACe,MAAD;AAAzB,eAHkC;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAT;;AAAA;AAAA;AAAA;AAAA;AAAA,CAA3B;AAMP,OAAO,IAAMI,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,GAAD;AAAA,SAASrB,OAAO,CAAC;AAAEsB,IAAAA,SAAS,EAAED,GAAb;AAAkBE,IAAAA,UAAU,EAAE;AAA9B,GAAD,EAAqCxB,OAAO,CAACyB,MAA7C,CAAhB;AAAA,CAA5B","sourcesContent":["import BigNumber from 'bignumber.js'\nimport { MAX_AUTH_FUN_GAS, TX_TYPE } from '../../tx/builder/schema'\nimport { buildTx } from '../../tx/builder'\nimport { hash } from '../../utils/crypto'\n\nexport const prepareGaParams = (ins) => async (authData, authFnName) => {\n if (typeof authData !== 'object') throw new Error('AuthData must be an object')\n if (authData.gas && BigNumber(authData.gas).gt(MAX_AUTH_FUN_GAS)) throw new Error(`the maximum gas value for ga authFun is ${MAX_AUTH_FUN_GAS}, got ${authData.gas}`)\n const gas = authData.gas || MAX_AUTH_FUN_GAS\n if (authData.callData) {\n if (authData.callData.split('_')[0] !== 'cb') throw new Error('Auth data must be a string with \"cb\" prefix.')\n return { authCallData: authData.callData, gas }\n } else {\n if (!authData.source || !authData.args) throw new Error('Auth data must contain source code and arguments.')\n return { authCallData: await ins.contractEncodeCall(authData.source, authFnName, authData.args), gas }\n }\n}\n\nexport const getContractAuthFan = (ins) => async (source, fnName) => {\n const { bytecode } = await ins.contractCompile(source)\n\n return { bytecode, authFun: hash(fnName) }\n}\n\nexport const wrapInEmptySignedTx = (rlp) => buildTx({ encodedTx: rlp, signatures: [] }, TX_TYPE.signed)\n"],"file":"helpers.js"}
1
+ {"version":3,"sources":["../../../src/contract/ga/helpers.js"],"names":["BigNumber","MAX_AUTH_FUN_GAS","prepareGaParams","ins","authData","authFnName","Error","gas","gt","callData","split","authCallData","source","args","contractEncodeCallDataAPI"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,cAAtB;AACA,SAASC,gBAAT,QAAiC,yBAAjC;AAEA,OAAO,MAAMC,eAAe,GAAIC,GAAD,IAAS,OAAOC,QAAP,EAAiBC,UAAjB,KAAgC;AACtE,MAAI,OAAOD,QAAP,KAAoB,QAAxB,EAAkC,MAAM,IAAIE,KAAJ,CAAU,4BAAV,CAAN;AAClC,MAAIF,QAAQ,CAACG,GAAT,IAAgBP,SAAS,CAACI,QAAQ,CAACG,GAAV,CAAT,CAAwBC,EAAxB,CAA2BP,gBAA3B,CAApB,EAAkE,MAAM,IAAIK,KAAJ,CAAW,2CAA0CL,gBAAiB,SAAQG,QAAQ,CAACG,GAAI,EAA3F,CAAN;AAClE,QAAMA,GAAG,GAAGH,QAAQ,CAACG,GAAT,IAAgBN,gBAA5B;;AACA,MAAIG,QAAQ,CAACK,QAAb,EAAuB;AACrB,QAAIL,QAAQ,CAACK,QAAT,CAAkBC,KAAlB,CAAwB,GAAxB,EAA6B,CAA7B,MAAoC,IAAxC,EAA8C,MAAM,IAAIJ,KAAJ,CAAU,8CAAV,CAAN;AAC9C,WAAO;AAAEK,MAAAA,YAAY,EAAEP,QAAQ,CAACK,QAAzB;AAAmCF,MAAAA;AAAnC,KAAP;AACD,GAHD,MAGO;AACL,QAAI,CAACH,QAAQ,CAACQ,MAAV,IAAoB,CAACR,QAAQ,CAACS,IAAlC,EAAwC,MAAM,IAAIP,KAAJ,CAAU,mDAAV,CAAN;AACxC,WAAO;AAAEK,MAAAA,YAAY,EAAE,MAAMR,GAAG,CAACW,yBAAJ,CAA8BV,QAAQ,CAACQ,MAAvC,EAA+CP,UAA/C,EAA2DD,QAAQ,CAACS,IAApE,CAAtB;AAAiGN,MAAAA;AAAjG,KAAP;AACD;AACF,CAXM","sourcesContent":["import BigNumber from 'bignumber.js'\nimport { MAX_AUTH_FUN_GAS } from '../../tx/builder/schema'\n\nexport const prepareGaParams = (ins) => async (authData, authFnName) => {\n if (typeof authData !== 'object') throw new Error('AuthData must be an object')\n if (authData.gas && BigNumber(authData.gas).gt(MAX_AUTH_FUN_GAS)) throw new Error(`the maximum gas value for ga authFun is ${MAX_AUTH_FUN_GAS}, got ${authData.gas}`)\n const gas = authData.gas || MAX_AUTH_FUN_GAS\n if (authData.callData) {\n if (authData.callData.split('_')[0] !== 'cb') throw new Error('Auth data must be a string with \"cb\" prefix.')\n return { authCallData: authData.callData, gas }\n } else {\n if (!authData.source || !authData.args) throw new Error('Auth data must contain source code and arguments.')\n return { authCallData: await ins.contractEncodeCallDataAPI(authData.source, authFnName, authData.args), gas }\n }\n}\n"],"file":"helpers.js"}
@@ -1,26 +1,32 @@
1
- import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
2
- import _merge from "ramda/src/merge";
3
- import _asyncToGenerator from "@babel/runtime-corejs3/helpers/asyncToGenerator";
4
-
5
- function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); if (enumerableOnly) { symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
6
-
7
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context4; _forEachInstanceProperty(_context4 = ownKeys(Object(source), true)).call(_context4, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context5; _forEachInstanceProperty(_context5 = ownKeys(Object(source))).call(_context5, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; }
1
+ /*
2
+ * ISC License (ISC)
3
+ * Copyright (c) 2018 aeternity developers
4
+ *
5
+ * Permission to use, copy, modify, and/or distribute this software for any
6
+ * purpose with or without fee is hereby granted, provided that the above
7
+ * copyright notice and this permission notice appear in all copies.
8
+ *
9
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
+ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11
+ * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
14
+ * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
+ * PERFORMANCE OF THIS SOFTWARE.
16
+ */
8
17
 
9
- import _Object$freeze from "@babel/runtime-corejs3/core-js-stable/object/freeze";
10
- import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
11
- import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
12
- import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
13
- import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
14
- import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
15
- import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
16
- import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
17
- import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
18
- import _regeneratorRuntime from "@babel/runtime-corejs3/regenerator";
18
+ /**
19
+ * Generalize Account module - routines to use generalize account
20
+ *
21
+ * @module @aeternity/aepp-sdk/es/contract/ga
22
+ * @export GeneralizeAccount
23
+ * @example import { GeneralizeAccount } from '@aeternity/aepp-sdk'
24
+ */
19
25
  import { ContractAPI } from '../../ae/contract';
20
26
  import { TX_TYPE } from '../../tx/builder/schema';
21
- import { buildTx } from '../../tx/builder';
22
- import { getContractAuthFan, prepareGaParams, wrapInEmptySignedTx } from './helpers';
23
- import { assertedType, decodeBase64Check } from '../../utils/crypto';
27
+ import { buildTx, unpackTx } from '../../tx/builder';
28
+ import { prepareGaParams } from './helpers';
29
+ import { hash } from '../../utils/crypto';
24
30
  /**
25
31
  * GeneralizeAccount Stamp
26
32
  *
@@ -41,11 +47,11 @@ import { assertedType, decodeBase64Check } from '../../utils/crypto';
41
47
  * await client.spend(10000, receiverPub, { authData: { source: authContract, args: [...authContractArgs] } }) // sdk will prepare callData itself
42
48
  */
43
49
 
44
- export var GeneralizeAccount = ContractAPI.compose({
50
+ export const GeneralizeAccount = ContractAPI.compose({
45
51
  methods: {
46
- createGeneralizeAccount: createGeneralizeAccount,
47
- createMetaTx: createMetaTx,
48
- isGA: isGA
52
+ createGeneralizeAccount,
53
+ createMetaTx,
54
+ isGA
49
55
  }
50
56
  });
51
57
  export default GeneralizeAccount;
@@ -57,8 +63,11 @@ export default GeneralizeAccount;
57
63
  * @return {Boolean}
58
64
  */
59
65
 
60
- function isGA(_x) {
61
- return _isGA.apply(this, arguments);
66
+ async function isGA(address) {
67
+ const {
68
+ contractId
69
+ } = await this.getAccount(address);
70
+ return !!contractId;
62
71
  }
63
72
  /**
64
73
  * Convert current account to GA account
@@ -72,35 +81,39 @@ function isGA(_x) {
72
81
  */
73
82
 
74
83
 
75
- function _isGA() {
76
- _isGA = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(address) {
77
- var _yield$this$getAccoun, contractId;
78
-
79
- return _regeneratorRuntime.wrap(function _callee$(_context) {
80
- while (1) {
81
- switch (_context.prev = _context.next) {
82
- case 0:
83
- _context.next = 2;
84
- return this.getAccount(address);
85
-
86
- case 2:
87
- _yield$this$getAccoun = _context.sent;
88
- contractId = _yield$this$getAccoun.contractId;
89
- return _context.abrupt("return", !!contractId);
90
-
91
- case 5:
92
- case "end":
93
- return _context.stop();
94
- }
95
- }
96
- }, _callee, this);
97
- }));
98
- return _isGA.apply(this, arguments);
84
+ async function createGeneralizeAccount(authFnName, source) {
85
+ let args = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
86
+ let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
87
+ const opt = { ...this.Ae.defaults,
88
+ ...options
89
+ };
90
+ const ownerId = await this.address(opt);
91
+ if (await this.isGA(ownerId)) throw new Error(`Account ${ownerId} is already GA`);
92
+ const {
93
+ tx,
94
+ contractId
95
+ } = await this.gaAttachTx({ ...opt,
96
+ ownerId,
97
+ code: (await this.contractCompile(source)).bytecode,
98
+ callData: await this.contractEncodeCallDataAPI(source, 'init', args),
99
+ authFun: hash(authFnName)
100
+ });
101
+ const {
102
+ hash: transaction,
103
+ rawTx
104
+ } = await this.send(tx, opt);
105
+ return Object.freeze({
106
+ owner: ownerId,
107
+ transaction,
108
+ rawTx,
109
+ gaContractId: contractId
110
+ });
99
111
  }
100
112
 
101
- function createGeneralizeAccount(_x2, _x3) {
102
- return _createGeneralizeAccount.apply(this, arguments);
103
- }
113
+ const wrapInEmptySignedTx = tx => buildTx({
114
+ encodedTx: tx,
115
+ signatures: []
116
+ }, TX_TYPE.signed);
104
117
  /**
105
118
  * Create a metaTx transaction
106
119
  * @alias module:@aeternity/aepp-sdk/es/contract/ga
@@ -113,199 +126,41 @@ function createGeneralizeAccount(_x2, _x3) {
113
126
  */
114
127
 
115
128
 
116
- function _createGeneralizeAccount() {
117
- _createGeneralizeAccount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(authFnName, source) {
118
- var args,
119
- options,
120
- opt,
121
- ownerId,
122
- _yield$getContractAut,
123
- authFun,
124
- bytecode,
125
- callData,
126
- _yield$this$gaAttachT,
127
- tx,
128
- contractId,
129
- _yield$this$send,
130
- hash,
131
- rawTx,
132
- _args2 = arguments;
133
-
134
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
135
- while (1) {
136
- switch (_context2.prev = _context2.next) {
137
- case 0:
138
- args = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : [];
139
- options = _args2.length > 3 && _args2[3] !== undefined ? _args2[3] : {};
140
- opt = _merge(this.Ae.defaults, options);
141
- _context2.next = 5;
142
- return this.address(opt);
143
-
144
- case 5:
145
- ownerId = _context2.sent;
146
- _context2.next = 8;
147
- return this.isGA(ownerId);
148
-
149
- case 8:
150
- if (!_context2.sent) {
151
- _context2.next = 10;
152
- break;
153
- }
154
-
155
- throw new Error("Account ".concat(ownerId, " is already GA"));
156
-
157
- case 10:
158
- _context2.next = 12;
159
- return getContractAuthFan(this)(source, authFnName);
160
-
161
- case 12:
162
- _yield$getContractAut = _context2.sent;
163
- authFun = _yield$getContractAut.authFun;
164
- bytecode = _yield$getContractAut.bytecode;
165
- _context2.next = 17;
166
- return this.contractEncodeCall(source, 'init', args);
167
-
168
- case 17:
169
- callData = _context2.sent;
170
- _context2.next = 20;
171
- return this.gaAttachTx(_merge(opt, {
172
- ownerId: ownerId,
173
- code: bytecode,
174
- callData: callData,
175
- authFun: authFun
176
- }));
177
-
178
- case 20:
179
- _yield$this$gaAttachT = _context2.sent;
180
- tx = _yield$this$gaAttachT.tx;
181
- contractId = _yield$this$gaAttachT.contractId;
182
- _context2.next = 25;
183
- return this.send(tx, opt);
184
-
185
- case 25:
186
- _yield$this$send = _context2.sent;
187
- hash = _yield$this$send.hash;
188
- rawTx = _yield$this$send.rawTx;
189
- return _context2.abrupt("return", _Object$freeze({
190
- owner: ownerId,
191
- transaction: hash,
192
- rawTx: rawTx,
193
- gaContractId: contractId
194
- }));
195
-
196
- case 29:
197
- case "end":
198
- return _context2.stop();
199
- }
200
- }
201
- }, _callee2, this);
202
- }));
203
- return _createGeneralizeAccount.apply(this, arguments);
204
- }
205
-
206
- function createMetaTx(_x4, _x5, _x6) {
207
- return _createMetaTx.apply(this, arguments);
208
- }
209
-
210
- function _createMetaTx() {
211
- _createMetaTx = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(rawTransaction, authData, authFnName) {
212
- var options,
213
- _yield$prepareGaParam,
214
- authCallData,
215
- gas,
216
- opt,
217
- rlpBinaryTx,
218
- _wrapInEmptySignedTx,
219
- rlpEncoded,
220
- _yield$this$getVmVers,
221
- abiVersion,
222
- params,
223
- _yield$this$prepareTx,
224
- fee,
225
- _buildTx,
226
- metaTxRlp,
227
- _wrapInEmptySignedTx2,
228
- tx,
229
- _args3 = arguments;
230
-
231
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
232
- while (1) {
233
- switch (_context3.prev = _context3.next) {
234
- case 0:
235
- options = _args3.length > 3 && _args3[3] !== undefined ? _args3[3] : {};
236
-
237
- if (authData) {
238
- _context3.next = 3;
239
- break;
240
- }
241
-
242
- throw new Error('authData is required');
243
-
244
- case 3:
245
- _context3.next = 5;
246
- return prepareGaParams(this)(authData, authFnName);
247
-
248
- case 5:
249
- _yield$prepareGaParam = _context3.sent;
250
- authCallData = _yield$prepareGaParam.authCallData;
251
- gas = _yield$prepareGaParam.gas;
252
- opt = _merge(this.Ae.defaults, options); // Get transaction rlp binary
253
-
254
- rlpBinaryTx = decodeBase64Check(assertedType(rawTransaction, 'tx')); // Wrap in SIGNED tx with empty signatures
255
-
256
- _wrapInEmptySignedTx = wrapInEmptySignedTx(rlpBinaryTx), rlpEncoded = _wrapInEmptySignedTx.rlpEncoded; // Get abi
257
-
258
- _context3.next = 13;
259
- return this.getVmVersion(TX_TYPE.contractCall);
260
-
261
- case 13:
262
- _yield$this$getVmVers = _context3.sent;
263
- abiVersion = _yield$this$getVmVers.abiVersion;
264
- _context3.t0 = _objectSpread;
265
- _context3.t1 = _objectSpread({}, opt);
266
- _context3.t2 = {};
267
- _context3.t3 = rlpEncoded;
268
- _context3.next = 21;
269
- return this.address(opt);
270
-
271
- case 21:
272
- _context3.t4 = _context3.sent;
273
- _context3.t5 = abiVersion;
274
- _context3.t6 = authCallData;
275
- _context3.t7 = gas;
276
- _context3.t8 = {
277
- tx: _context3.t3,
278
- gaId: _context3.t4,
279
- abiVersion: _context3.t5,
280
- authData: _context3.t6,
281
- gas: _context3.t7,
282
- vsn: 2
283
- };
284
- params = (0, _context3.t0)(_context3.t1, _context3.t2, _context3.t8);
285
- _context3.next = 29;
286
- return this.prepareTxParams(TX_TYPE.gaMeta, params);
287
-
288
- case 29:
289
- _yield$this$prepareTx = _context3.sent;
290
- fee = _yield$this$prepareTx.fee;
291
- // Build META tx
292
- _buildTx = buildTx(_objectSpread(_objectSpread({}, params), {}, {
293
- fee: "".concat(fee)
294
- }), TX_TYPE.gaMeta, {
295
- vsn: 2
296
- }), metaTxRlp = _buildTx.rlpEncoded; // Wrap in empty signed tx
297
-
298
- _wrapInEmptySignedTx2 = wrapInEmptySignedTx(metaTxRlp), tx = _wrapInEmptySignedTx2.tx; // Send tx to the chain
299
-
300
- return _context3.abrupt("return", tx);
301
-
302
- case 34:
303
- case "end":
304
- return _context3.stop();
305
- }
306
- }
307
- }, _callee3, this);
308
- }));
309
- return _createMetaTx.apply(this, arguments);
129
+ async function createMetaTx(rawTransaction, authData, authFnName) {
130
+ let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
131
+ if (!authData) throw new Error('authData is required'); // Check if authData is callData or if it's an object prepare a callData from source and args
132
+
133
+ const {
134
+ authCallData,
135
+ gas
136
+ } = await prepareGaParams(this)(authData, authFnName);
137
+ const opt = { ...this.Ae.defaults,
138
+ ...options
139
+ };
140
+ const {
141
+ abiVersion
142
+ } = await this.getVmVersion(TX_TYPE.contractCall);
143
+ const wrappedTx = wrapInEmptySignedTx(unpackTx(rawTransaction));
144
+ const params = { ...opt,
145
+ tx: { ...wrappedTx,
146
+ tx: wrappedTx.txObject
147
+ },
148
+ gaId: await this.address(opt),
149
+ abiVersion: abiVersion,
150
+ authData: authCallData,
151
+ gas,
152
+ vsn: 2
153
+ };
154
+ const {
155
+ fee
156
+ } = await this.prepareTxParams(TX_TYPE.gaMeta, params);
157
+ const {
158
+ rlpEncoded: metaTxRlp
159
+ } = buildTx({ ...params,
160
+ fee: `${fee}`
161
+ }, TX_TYPE.gaMeta, {
162
+ vsn: 2
163
+ });
164
+ return wrapInEmptySignedTx(metaTxRlp).tx;
310
165
  }
311
166
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/contract/ga/index.js"],"names":["ContractAPI","TX_TYPE","buildTx","getContractAuthFan","prepareGaParams","wrapInEmptySignedTx","assertedType","decodeBase64Check","GeneralizeAccount","compose","methods","createGeneralizeAccount","createMetaTx","isGA","address","getAccount","contractId","authFnName","source","args","options","opt","Ae","defaults","ownerId","Error","authFun","bytecode","contractEncodeCall","callData","gaAttachTx","code","tx","send","hash","rawTx","owner","transaction","gaContractId","rawTransaction","authData","authCallData","gas","rlpBinaryTx","rlpEncoded","getVmVersion","contractCall","abiVersion","gaId","vsn","params","prepareTxParams","gaMeta","fee","metaTxRlp"],"mappings":"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","sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2018 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\n\n/**\n * Generalize Account module - routines to use generalize account\n *\n * @module @aeternity/aepp-sdk/es/contract/ga\n * @export GeneralizeAccount\n * @example import { GeneralizeAccount } from '@aeternity/aepp-sdk'\n */\nimport * as R from 'ramda'\n\nimport { ContractAPI } from '../../ae/contract'\nimport { TX_TYPE } from '../../tx/builder/schema'\nimport { buildTx } from '../../tx/builder'\nimport { getContractAuthFan, prepareGaParams, wrapInEmptySignedTx } from './helpers'\nimport { assertedType, decodeBase64Check } from '../../utils/crypto'\n\n/**\n * GeneralizeAccount Stamp\n *\n * Provide Generalize Account implementation\n * {@link module:@aeternity/aepp-sdk/es/contract/ga} clients.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/contract/ga\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @return {Object} GeneralizeAccount instance\n * @example\n * const authContract = ``\n * await client.createGeneralizeAccount(authFnName, authContract, [...authFnArguments]\n * // Make spend using GA\n * const callData = 'cb_...' // encoded call data for auth contract\n * await client.spend(10000, receiverPub, { authData: { callData } })\n * // or\n * await client.spend(10000, receiverPub, { authData: { source: authContract, args: [...authContractArgs] } }) // sdk will prepare callData itself\n */\nexport const GeneralizeAccount = ContractAPI.compose({\n methods: {\n createGeneralizeAccount,\n createMetaTx,\n isGA\n }\n})\nexport default GeneralizeAccount\n\n/**\n * @alias module:@aeternity/aepp-sdk/es/contract/ga\n * @function\n * Check if account is GA account\n * @param {String} address - Account address\n * @return {Boolean}\n */\nasync function isGA (address) {\n const { contractId } = await this.getAccount(address)\n return !!contractId\n}\n\n/**\n * Convert current account to GA account\n * @alias module:@aeternity/aepp-sdk/es/contract/ga\n * @function\n * @param {String} authFnName - Authorization function name\n * @param {String} source - Auth contract source code\n * @param {Array} [args] - init arguments\n * @param {Object} [options] - Options\n * @return {Promise<Readonly<{result: *, owner: *, createdAt: Date, address, rawTx: *, transaction: *}>>}\n */\nasync function createGeneralizeAccount (authFnName, source, args = [], options = {}) {\n const opt = R.merge(this.Ae.defaults, options)\n const ownerId = await this.address(opt)\n\n if (await this.isGA(ownerId)) throw new Error(`Account ${ownerId} is already GA`)\n\n const { authFun, bytecode } = await getContractAuthFan(this)(source, authFnName)\n const callData = await this.contractEncodeCall(source, 'init', args)\n\n const { tx, contractId } = await this.gaAttachTx(R.merge(opt, { ownerId, code: bytecode, callData, authFun }))\n\n const { hash, rawTx } = await this.send(tx, opt)\n\n return Object.freeze({\n owner: ownerId,\n transaction: hash,\n rawTx,\n gaContractId: contractId\n })\n}\n\n/**\n * Create a metaTx transaction\n * @alias module:@aeternity/aepp-sdk/es/contract/ga\n * @function\n * @param {String} rawTransaction Inner transaction\n * @param {Object} authData Object with gaMeta params\n * @param {String} authFnName - Authorization function name\n * @param {Object} options - Options\n * @return {String}\n */\nasync function createMetaTx (rawTransaction, authData, authFnName, options = {}) {\n if (!authData) throw new Error('authData is required')\n // Check if authData is callData or if it's an object prepare a callData from source and args\n const { authCallData, gas } = await prepareGaParams(this)(authData, authFnName)\n const opt = R.merge(this.Ae.defaults, options)\n // Get transaction rlp binary\n const rlpBinaryTx = decodeBase64Check(assertedType(rawTransaction, 'tx'))\n // Wrap in SIGNED tx with empty signatures\n const { rlpEncoded } = wrapInEmptySignedTx(rlpBinaryTx)\n // Get abi\n const { abiVersion } = await this.getVmVersion(TX_TYPE.contractCall)\n // Prepare params for META tx\n const params = {\n ...opt,\n tx: rlpEncoded,\n gaId: await this.address(opt),\n abiVersion: abiVersion,\n authData: authCallData,\n gas,\n vsn: 2\n }\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee } = await this.prepareTxParams(TX_TYPE.gaMeta, params)\n // Build META tx\n const { rlpEncoded: metaTxRlp } = buildTx(\n { ...params, fee: `${fee}` },\n TX_TYPE.gaMeta,\n { vsn: 2 }\n )\n // Wrap in empty signed tx\n const { tx } = wrapInEmptySignedTx(metaTxRlp)\n // Send tx to the chain\n return tx\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/contract/ga/index.js"],"names":["ContractAPI","TX_TYPE","buildTx","unpackTx","prepareGaParams","hash","GeneralizeAccount","compose","methods","createGeneralizeAccount","createMetaTx","isGA","address","contractId","getAccount","authFnName","source","args","options","opt","Ae","defaults","ownerId","Error","tx","gaAttachTx","code","contractCompile","bytecode","callData","contractEncodeCallDataAPI","authFun","transaction","rawTx","send","Object","freeze","owner","gaContractId","wrapInEmptySignedTx","encodedTx","signatures","signed","rawTransaction","authData","authCallData","gas","abiVersion","getVmVersion","contractCall","wrappedTx","params","txObject","gaId","vsn","fee","prepareTxParams","gaMeta","rlpEncoded","metaTxRlp"],"mappings":"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","sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2018 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\n\n/**\n * Generalize Account module - routines to use generalize account\n *\n * @module @aeternity/aepp-sdk/es/contract/ga\n * @export GeneralizeAccount\n * @example import { GeneralizeAccount } from '@aeternity/aepp-sdk'\n */\nimport { ContractAPI } from '../../ae/contract'\nimport { TX_TYPE } from '../../tx/builder/schema'\nimport { buildTx, unpackTx } from '../../tx/builder'\nimport { prepareGaParams } from './helpers'\nimport { hash } from '../../utils/crypto'\n\n/**\n * GeneralizeAccount Stamp\n *\n * Provide Generalize Account implementation\n * {@link module:@aeternity/aepp-sdk/es/contract/ga} clients.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/contract/ga\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @return {Object} GeneralizeAccount instance\n * @example\n * const authContract = ``\n * await client.createGeneralizeAccount(authFnName, authContract, [...authFnArguments]\n * // Make spend using GA\n * const callData = 'cb_...' // encoded call data for auth contract\n * await client.spend(10000, receiverPub, { authData: { callData } })\n * // or\n * await client.spend(10000, receiverPub, { authData: { source: authContract, args: [...authContractArgs] } }) // sdk will prepare callData itself\n */\nexport const GeneralizeAccount = ContractAPI.compose({\n methods: {\n createGeneralizeAccount,\n createMetaTx,\n isGA\n }\n})\nexport default GeneralizeAccount\n\n/**\n * @alias module:@aeternity/aepp-sdk/es/contract/ga\n * @function\n * Check if account is GA account\n * @param {String} address - Account address\n * @return {Boolean}\n */\nasync function isGA (address) {\n const { contractId } = await this.getAccount(address)\n return !!contractId\n}\n\n/**\n * Convert current account to GA account\n * @alias module:@aeternity/aepp-sdk/es/contract/ga\n * @function\n * @param {String} authFnName - Authorization function name\n * @param {String} source - Auth contract source code\n * @param {Array} [args] - init arguments\n * @param {Object} [options] - Options\n * @return {Promise<Readonly<{result: *, owner: *, createdAt: Date, address, rawTx: *, transaction: *}>>}\n */\nasync function createGeneralizeAccount (authFnName, source, args = [], options = {}) {\n const opt = { ...this.Ae.defaults, ...options }\n const ownerId = await this.address(opt)\n\n if (await this.isGA(ownerId)) throw new Error(`Account ${ownerId} is already GA`)\n\n const { tx, contractId } = await this.gaAttachTx({\n ...opt,\n ownerId,\n code: (await this.contractCompile(source)).bytecode,\n callData: await this.contractEncodeCallDataAPI(source, 'init', args),\n authFun: hash(authFnName)\n })\n\n const { hash: transaction, rawTx } = await this.send(tx, opt)\n\n return Object.freeze({\n owner: ownerId,\n transaction,\n rawTx,\n gaContractId: contractId\n })\n}\n\nconst wrapInEmptySignedTx = (tx) => buildTx({ encodedTx: tx, signatures: [] }, TX_TYPE.signed)\n\n/**\n * Create a metaTx transaction\n * @alias module:@aeternity/aepp-sdk/es/contract/ga\n * @function\n * @param {String} rawTransaction Inner transaction\n * @param {Object} authData Object with gaMeta params\n * @param {String} authFnName - Authorization function name\n * @param {Object} options - Options\n * @return {String}\n */\nasync function createMetaTx (rawTransaction, authData, authFnName, options = {}) {\n if (!authData) throw new Error('authData is required')\n // Check if authData is callData or if it's an object prepare a callData from source and args\n const { authCallData, gas } = await prepareGaParams(this)(authData, authFnName)\n const opt = { ...this.Ae.defaults, ...options }\n const { abiVersion } = await this.getVmVersion(TX_TYPE.contractCall)\n const wrappedTx = wrapInEmptySignedTx(unpackTx(rawTransaction))\n const params = {\n ...opt,\n tx: {\n ...wrappedTx,\n tx: wrappedTx.txObject\n },\n gaId: await this.address(opt),\n abiVersion: abiVersion,\n authData: authCallData,\n gas,\n vsn: 2\n }\n const { fee } = await this.prepareTxParams(TX_TYPE.gaMeta, params)\n const { rlpEncoded: metaTxRlp } = buildTx(\n { ...params, fee: `${fee}` },\n TX_TYPE.gaMeta,\n { vsn: 2 }\n )\n return wrapInEmptySignedTx(metaTxRlp).tx\n}\n"],"file":"index.js"}
@@ -36,7 +36,7 @@ import { required } from '@stamp/required';
36
36
  * @return {Object} Contract instance
37
37
  */
38
38
 
39
- var ContractBase = stampit(required({
39
+ const ContractBase = stampit(required({
40
40
  methods: {
41
41
  contractEncodeCallDataAPI: required,
42
42
  compileContractAPI: required,