@aeternity/aepp-sdk 10.0.0-beta.1 → 10.0.0
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/CHANGELOG.md +1603 -0
- package/dist/aepp-sdk.browser-script.js +1 -1
- package/dist/aepp-sdk.browser-script.js.map +1 -1
- package/dist/aepp-sdk.browser.js +1 -1
- package/dist/aepp-sdk.browser.js.map +1 -1
- package/dist/aepp-sdk.js +1 -1
- package/dist/aepp-sdk.js.map +1 -1
- package/es/account/base.js +3 -1
- package/es/account/base.js.map +1 -1
- package/es/account/multiple.js +4 -2
- package/es/account/multiple.js.map +1 -1
- package/es/ae/aens.js +52 -38
- package/es/ae/aens.js.map +1 -1
- package/es/ae/contract.js +9 -5
- package/es/ae/contract.js.map +1 -1
- package/es/ae/index.js +4 -3
- package/es/ae/index.js.map +1 -1
- package/es/ae/oracle.js +4 -4
- package/es/ae/oracle.js.map +1 -1
- package/es/ae/universal.js.map +1 -1
- package/es/chain/index.js +8 -4
- package/es/chain/index.js.map +1 -1
- package/es/chain/node.js +15 -20
- package/es/chain/node.js.map +1 -1
- package/es/channel/handlers.js.map +1 -1
- package/es/channel/index.js +35 -14
- package/es/channel/index.js.map +1 -1
- package/es/contract/aci/index.js +12 -7
- package/es/contract/aci/index.js.map +1 -1
- package/es/contract/compiler.js +3 -1
- package/es/contract/compiler.js.map +1 -1
- package/es/contract/ga/helpers.js +6 -6
- package/es/contract/ga/helpers.js.map +1 -1
- package/es/contract/ga/index.js +6 -2
- package/es/contract/ga/index.js.map +1 -1
- package/es/contract/index.js +6 -2
- package/es/contract/index.js.map +1 -1
- package/es/index.js +1 -0
- package/es/index.js.map +1 -1
- package/es/node-pool/index.js +4 -2
- package/es/node-pool/index.js.map +1 -1
- package/es/node.js +9 -4
- package/es/node.js.map +1 -1
- package/es/tx/builder/helpers.js +20 -33
- package/es/tx/builder/helpers.js.map +1 -1
- package/es/tx/builder/index.js +13 -6
- package/es/tx/builder/index.js.map +1 -1
- package/es/tx/builder/schema.js +5 -4
- package/es/tx/builder/schema.js.map +1 -1
- package/es/tx/index.js +101 -12
- package/es/tx/index.js.map +1 -1
- package/es/tx/tx-object.js +9 -3
- package/es/tx/tx-object.js.map +1 -1
- package/es/tx/tx.js.map +1 -1
- package/es/utils/aepp-wallet-communication/connection/browser-runtime.js +3 -2
- package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +1 -1
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.js +15 -6
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +1 -1
- package/es/utils/aepp-wallet-communication/connection/index.js +2 -1
- package/es/utils/aepp-wallet-communication/connection/index.js.map +1 -1
- package/es/utils/aepp-wallet-communication/content-script-bridge.js +10 -4
- package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +1 -1
- package/es/utils/aepp-wallet-communication/helpers.js.map +1 -1
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js +13 -5
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +1 -1
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.js +9 -5
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +1 -1
- package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js +57 -40
- package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js.map +1 -1
- package/es/utils/aepp-wallet-communication/wallet-detector.js.map +1 -1
- package/es/utils/crypto.js +1 -40
- package/es/utils/crypto.js.map +1 -1
- package/es/utils/keystore.js.map +1 -1
- package/es/utils/swagger.js +3 -1
- package/es/utils/swagger.js.map +1 -1
- package/package.json +11 -13
- package/src/account/base.js +3 -1
- package/src/account/multiple.js +4 -2
- package/src/ae/aens.js +41 -42
- package/src/ae/contract.js +9 -5
- package/src/ae/index.js +4 -3
- package/src/ae/oracle.js +9 -5
- package/src/ae/universal.js +3 -1
- package/src/chain/index.js +8 -4
- package/src/chain/node.js +17 -14
- package/src/channel/handlers.js +10 -3
- package/src/channel/index.js +40 -15
- package/src/contract/aci/index.js +15 -8
- package/src/contract/compiler.js +6 -2
- package/src/contract/ga/helpers.js +5 -3
- package/src/contract/ga/index.js +6 -2
- package/src/contract/index.js +6 -2
- package/src/index.js +2 -0
- package/src/node-pool/index.js +4 -2
- package/src/node.js +7 -4
- package/src/tx/builder/helpers.js +20 -33
- package/src/tx/builder/index.js +49 -13
- package/src/tx/builder/schema.js +37 -14
- package/src/tx/index.js +101 -12
- package/src/tx/tx-object.js +25 -6
- package/src/tx/tx.js +94 -28
- package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +3 -2
- package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +25 -7
- package/src/utils/aepp-wallet-communication/connection/index.js +2 -1
- package/src/utils/aepp-wallet-communication/content-script-bridge.js +10 -4
- package/src/utils/aepp-wallet-communication/helpers.js +4 -2
- package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +32 -9
- package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +9 -5
- package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +53 -22
- package/src/utils/aepp-wallet-communication/wallet-detector.js +4 -1
- package/src/utils/crypto.js +1 -52
- package/src/utils/keystore.js +10 -2
- package/src/utils/swagger.js +1 -1
package/es/tx/index.js
CHANGED
|
@@ -70,7 +70,15 @@ const Tx = stampit(required({
|
|
|
70
70
|
* @instance
|
|
71
71
|
* @abstract
|
|
72
72
|
* @category async
|
|
73
|
-
* @rtype ({
|
|
73
|
+
* @rtype ({
|
|
74
|
+
* sender?: String,
|
|
75
|
+
* recipientId: String,
|
|
76
|
+
* amount: Number,
|
|
77
|
+
* fee?: Number,
|
|
78
|
+
* ttl?: Number,
|
|
79
|
+
* nonce?: Number,
|
|
80
|
+
* payload?: String
|
|
81
|
+
* }) => tx: Promise[String]
|
|
74
82
|
* @param {Object} options - The object to extract properties from
|
|
75
83
|
* @return {String} `spend_tx` transaction
|
|
76
84
|
*/
|
|
@@ -81,7 +89,9 @@ const Tx = stampit(required({
|
|
|
81
89
|
* @instance
|
|
82
90
|
* @abstract
|
|
83
91
|
* @category async
|
|
84
|
-
* @rtype ({
|
|
92
|
+
* @rtype ({
|
|
93
|
+
* account?: String, commitment: String, fee?: Number, ttl?: Number, nonce?: Number
|
|
94
|
+
* }) => tx: Promise[String]
|
|
85
95
|
* @param {Object} options - The object to extract properties from
|
|
86
96
|
* @return {String} `name_preclaim_tx` transaction
|
|
87
97
|
*/
|
|
@@ -92,7 +102,9 @@ const Tx = stampit(required({
|
|
|
92
102
|
* @instance
|
|
93
103
|
* @abstract
|
|
94
104
|
* @category async
|
|
95
|
-
* @rtype ({
|
|
105
|
+
* @rtype ({
|
|
106
|
+
* account?: String, name: String, nameSalt: String, fee?: Number, ttl?: Number, nonce?: Number
|
|
107
|
+
* }) => tx: Promise[String]
|
|
96
108
|
* @param {Object} options - The object to extract properties from
|
|
97
109
|
* @return {String} `name_claim_tx` transaction
|
|
98
110
|
*/
|
|
@@ -103,7 +115,14 @@ const Tx = stampit(required({
|
|
|
103
115
|
* @instance
|
|
104
116
|
* @abstract
|
|
105
117
|
* @category async
|
|
106
|
-
* @rtype ({
|
|
118
|
+
* @rtype ({
|
|
119
|
+
* account?: String,
|
|
120
|
+
* nameId: String,
|
|
121
|
+
* recipientId: String,
|
|
122
|
+
* fee?: Number,
|
|
123
|
+
* ttl?: Number,
|
|
124
|
+
* nonce?: Number
|
|
125
|
+
* }) => tx: Promise[String]
|
|
107
126
|
* @param {Object} options - The object to extract properties from
|
|
108
127
|
* @return {String} `name_transfer_tx` transaction
|
|
109
128
|
*/
|
|
@@ -114,7 +133,16 @@ const Tx = stampit(required({
|
|
|
114
133
|
* @instance
|
|
115
134
|
* @abstract
|
|
116
135
|
* @category async
|
|
117
|
-
* @rtype ({
|
|
136
|
+
* @rtype ({
|
|
137
|
+
* account?: String,
|
|
138
|
+
* nameId: String,
|
|
139
|
+
* pointers: Object,
|
|
140
|
+
* nameTtl: Number,
|
|
141
|
+
* clientTtl: Number,
|
|
142
|
+
* fee?: Number,
|
|
143
|
+
* ttl?: Number,
|
|
144
|
+
* nonce?: Number
|
|
145
|
+
* }) => tx: Promise[String]
|
|
118
146
|
* @param {Object} options - The object to extract properties from
|
|
119
147
|
* @return {String} `name_update_tx` transaction
|
|
120
148
|
*/
|
|
@@ -125,7 +153,9 @@ const Tx = stampit(required({
|
|
|
125
153
|
* @instance
|
|
126
154
|
* @abstract
|
|
127
155
|
* @category async
|
|
128
|
-
* @rtype ({
|
|
156
|
+
* @rtype ({
|
|
157
|
+
* account?: String, nameId: String, fee?: Number, ttl?: Number, nonce?: Number
|
|
158
|
+
* }) => tx: Promise[String]
|
|
129
159
|
* @param {Object} options - The object to extract properties from
|
|
130
160
|
* @return {String} `name_revoke_tx` transaction
|
|
131
161
|
*/
|
|
@@ -136,7 +166,19 @@ const Tx = stampit(required({
|
|
|
136
166
|
* @instance
|
|
137
167
|
* @abstract
|
|
138
168
|
* @category async
|
|
139
|
-
* @rtype ({
|
|
169
|
+
* @rtype ({
|
|
170
|
+
* owner: String,
|
|
171
|
+
* code: String,
|
|
172
|
+
* callData: String,
|
|
173
|
+
* vmVersion: Number,
|
|
174
|
+
* deposit: Number,
|
|
175
|
+
* amount: Number,
|
|
176
|
+
* gas: Number,
|
|
177
|
+
* gasPrice: Number,
|
|
178
|
+
* fee?: Number,
|
|
179
|
+
* ttl?: Number,
|
|
180
|
+
* nonce?: Number
|
|
181
|
+
* }) => tx: Promise[String]
|
|
140
182
|
* @param {Object} options - The object to extract properties from
|
|
141
183
|
* @return {String} `contract_create_tx` transaction
|
|
142
184
|
*/
|
|
@@ -147,7 +189,18 @@ const Tx = stampit(required({
|
|
|
147
189
|
* @instance
|
|
148
190
|
* @abstract
|
|
149
191
|
* @category async
|
|
150
|
-
* @rtype ({
|
|
192
|
+
* @rtype ({
|
|
193
|
+
* callerId: String,
|
|
194
|
+
* contract: String,
|
|
195
|
+
* callData: String,
|
|
196
|
+
* vmVersion: Number,
|
|
197
|
+
* amount: Number,
|
|
198
|
+
* gas: Number,
|
|
199
|
+
* gasPrice: Number,
|
|
200
|
+
* fee?: Number,
|
|
201
|
+
* ttl?: Number,
|
|
202
|
+
* nonce?: Number
|
|
203
|
+
* }) => tx: Promise[String]
|
|
151
204
|
* @param {Object} options - The object to extract properties from
|
|
152
205
|
* @return {String} `contract_call_tx` transaction
|
|
153
206
|
*/
|
|
@@ -158,7 +211,17 @@ const Tx = stampit(required({
|
|
|
158
211
|
* @instance
|
|
159
212
|
* @abstract
|
|
160
213
|
* @category async
|
|
161
|
-
* @rtype ({
|
|
214
|
+
* @rtype ({
|
|
215
|
+
* accountId: String,
|
|
216
|
+
* queryFormat: String,
|
|
217
|
+
* responseFormat: String,
|
|
218
|
+
* queryFee: String|Number,
|
|
219
|
+
* oracleTtl: Object,
|
|
220
|
+
* vmVersion: Number = ORACLE_VM_VERSION,
|
|
221
|
+
* fee?: Number,
|
|
222
|
+
* ttl?: Number,
|
|
223
|
+
* nonce?: Number
|
|
224
|
+
* }) => tx: Promise[String]
|
|
162
225
|
* @param {Object} options - The object to extract properties from
|
|
163
226
|
* @return {String} `oracle_register_tx` transaction
|
|
164
227
|
*/
|
|
@@ -169,7 +232,14 @@ const Tx = stampit(required({
|
|
|
169
232
|
* @instance
|
|
170
233
|
* @abstract
|
|
171
234
|
* @category async
|
|
172
|
-
* @rtype ({
|
|
235
|
+
* @rtype ({
|
|
236
|
+
* oracleId: String,
|
|
237
|
+
* callerId: String,
|
|
238
|
+
* oracleTtl: Object,
|
|
239
|
+
* fee?: Number,
|
|
240
|
+
* ttl: Number,
|
|
241
|
+
* nonce?: Number
|
|
242
|
+
* }) => tx: Promise[String]
|
|
173
243
|
* @param {Object} options - The object to extract properties from
|
|
174
244
|
* @return {String} `oracle_extend_tx` transaction
|
|
175
245
|
*/
|
|
@@ -180,7 +250,17 @@ const Tx = stampit(required({
|
|
|
180
250
|
* @instance
|
|
181
251
|
* @abstract
|
|
182
252
|
* @category async
|
|
183
|
-
* @rtype ({
|
|
253
|
+
* @rtype ({
|
|
254
|
+
* oracleId: String,
|
|
255
|
+
* responseTtl: Object,
|
|
256
|
+
* query: String,
|
|
257
|
+
* queryTtl: Object,
|
|
258
|
+
* queryFee: String|Number,
|
|
259
|
+
* senderId: String,
|
|
260
|
+
* fee?: Number,
|
|
261
|
+
* ttl: Number,
|
|
262
|
+
* nonce?: Number
|
|
263
|
+
* }) => tx: Promise[String]
|
|
184
264
|
* @param {Object} options - The object to extract properties from
|
|
185
265
|
* @return {String} `oracle_post_query_tx` transaction
|
|
186
266
|
*/
|
|
@@ -191,7 +271,16 @@ const Tx = stampit(required({
|
|
|
191
271
|
* @instance
|
|
192
272
|
* @abstract
|
|
193
273
|
* @category async
|
|
194
|
-
* @rtype ({
|
|
274
|
+
* @rtype ({
|
|
275
|
+
* oracleId: String,
|
|
276
|
+
* callerId: String,
|
|
277
|
+
* responseTtl: Object,
|
|
278
|
+
* queryId: String,
|
|
279
|
+
* response: String,
|
|
280
|
+
* fee?: Number,
|
|
281
|
+
* ttl?: Number,
|
|
282
|
+
* nonce?: Number
|
|
283
|
+
* }) => tx: Promise[String]
|
|
195
284
|
* @param {Object} options - The object to extract properties from
|
|
196
285
|
* @return {String} `oracle_respond_tx` transaction
|
|
197
286
|
*/
|
package/es/tx/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tx/index.js"],"names":["stampit","required","Tx","methods","spendTx","namePreclaimTx","nameClaimTx","nameTransferTx","nameUpdateTx","nameRevokeTx","contractCreateTx","contractCallTx","oracleRegisterTx","oracleExtendTx","oraclePostQueryTx","oracleRespondTx","getAccountNonce","channelCloseSoloTx","channelSlashTx","channelSettleTx","channelSnapshotSoloTx","gaAttachTx","getVmVersion","prepareTxParams"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA,OAAOA,OAAP,MAAoB,WAApB;AACA,SAASC,QAAT,QAAyB,iBAAzB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,EAAE,GAAGF,OAAO,CAACC,QAAQ,CAAC;AAC1BE,EAAAA,OAAO,EAAE;AACPC,IAAAA,OAAO,EAAEH,QADF;AAEPI,IAAAA,cAAc,EAAEJ,QAFT;AAGPK,IAAAA,WAAW,EAAEL,QAHN;AAIPM,IAAAA,cAAc,EAAEN,QAJT;AAKPO,IAAAA,YAAY,EAAEP,QALP;AAMPQ,IAAAA,YAAY,EAAER,QANP;AAOPS,IAAAA,gBAAgB,EAAET,QAPX;AAQPU,IAAAA,cAAc,EAAEV,QART;AASPW,IAAAA,gBAAgB,EAAEX,QATX;AAUPY,IAAAA,cAAc,EAAEZ,QAVT;AAWPa,IAAAA,iBAAiB,EAAEb,QAXZ;AAYPc,IAAAA,eAAe,EAAEd,QAZV;AAaPe,IAAAA,eAAe,EAAEf,QAbV;AAcPgB,IAAAA,kBAAkB,EAAEhB,QAdb;AAePiB,IAAAA,cAAc,EAAEjB,QAfT;AAgBPkB,IAAAA,eAAe,EAAElB,QAhBV;AAiBPmB,IAAAA,qBAAqB,EAAEnB,QAjBhB;AAkBPoB,IAAAA,UAAU,EAAEpB,QAlBL;AAmBPqB,IAAAA,YAAY,EAAErB,QAnBP;AAoBPsB,IAAAA,eAAe,EAAEtB;AApBV;AADiB,CAAD,CAAT,CAAlB;AAyBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAeC,EAAf","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 * Tx module\n * @module @aeternity/aepp-sdk/es/tx\n * @export Tx\n * @example import { Tx } from '@aeternity/aepp-sdk'\n */\n\nimport stampit from '@stamp/it'\nimport { required } from '@stamp/required'\n\n/**\n * Basic Tx Stamp\n *\n * Attempting to create instances from the Stamp without overwriting all\n * abstract methods using composition will result in an exception.\n *\n * Tx is one of the three basic building blocks of an\n * {@link module:@aeternity/aepp-sdk/es/ae--Ae} client and provides methods to\n * create aeternity transactions.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @return {Object} Tx instance\n * @example Tx()\n */\nconst Tx = stampit(required({\n methods: {\n spendTx: required,\n namePreclaimTx: required,\n nameClaimTx: required,\n nameTransferTx: required,\n nameUpdateTx: required,\n nameRevokeTx: required,\n contractCreateTx: required,\n contractCallTx: required,\n oracleRegisterTx: required,\n oracleExtendTx: required,\n oraclePostQueryTx: required,\n oracleRespondTx: required,\n getAccountNonce: required,\n channelCloseSoloTx: required,\n channelSlashTx: required,\n channelSettleTx: required,\n channelSnapshotSoloTx: required,\n gaAttachTx: required,\n getVmVersion: required,\n prepareTxParams: required\n }\n}))\n\n/**\n * Create a `spend_tx` transaction\n * @function spendTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({sender?: String, recipientId: String, amount: Number, fee?: Number, ttl?: Number, nonce?: Number, payload?: String}) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `spend_tx` transaction\n */\n\n/**\n * Create a `name_preclaim_tx` transaction\n * @function namePreclaimTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({account?: String, commitment: String, fee?: Number, ttl?: Number, nonce?: Number}) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `name_preclaim_tx` transaction\n */\n\n/**\n * Create a `name_claim_tx` transaction\n * @function nameClaimTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({account?: String, name: String, nameSalt: String, fee?: Number, ttl?: Number, nonce?: Number}) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `name_claim_tx` transaction\n */\n\n/**\n * Create a `name_transfer_tx` transaction\n * @function nameTransferTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({account?: String, nameId: String, recipientId: String, fee?: Number, ttl?: Number, nonce?: Number}) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `name_transfer_tx` transaction\n */\n\n/**\n * Create a `name_update_tx` transaction\n * @function nameUpdateTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({account?: String, nameId: String, pointers: Object, nameTtl: Number, clientTtl: Number, fee?: Number, ttl?: Number, nonce?: Number}) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `name_update_tx` transaction\n */\n\n/**\n * Create a `name_revoke_tx` transaction\n * @function nameRevokeTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({account?: String, nameId: String, fee?: Number, ttl?: Number, nonce?: Number}) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `name_revoke_tx` transaction\n */\n\n/**\n * Create a `contract_create_tx` transaction\n * @function contractCreateTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({owner: String, code: String, callData: String, vmVersion: Number, deposit: Number, amount: Number, gas: Number, gasPrice: Number, fee?: Number, ttl?: Number, nonce?: Number}) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `contract_create_tx` transaction\n */\n\n/**\n * Create a `contract_call_tx` transaction\n * @function contractCallTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({callerId: String, contract: String, callData: String, vmVersion: Number, amount: Number, gas: Number, gasPrice: Number, fee?: Number, ttl?: Number, nonce?: Number}) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `contract_call_tx` transaction\n */\n\n/**\n * Create a `oracle_register_tx` transaction\n * @function oracleRegisterTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({ accountId: String, queryFormat: String, responseFormat: String, queryFee: String|Number, oracleTtl: Object, vmVersion: Number = ORACLE_VM_VERSION, fee?: Number, ttl?: Number, nonce?: Number }) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `oracle_register_tx` transaction\n */\n\n/**\n * Create a `oracle_extend_tx` transaction\n * @function oracleExtendTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({ oracleId: String, callerId: String, oracleTtl: Object, fee?: Number, ttl: Number, nonce?: Number}) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `oracle_extend_tx` transaction\n */\n\n/**\n * Create a `oracle_post_query_tx` transaction\n * @function oraclePostQuery\n * @instance\n * @abstract\n * @category async\n * @rtype ({ oracleId: String, responseTtl: Object, query: String, queryTtl: Object, queryFee: String|Number, senderId: String, fee?: Number, ttl: Number, nonce?: Number}) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `oracle_post_query_tx` transaction\n */\n\n/**\n * Create a `oracle_respond_tx` transaction\n * @function oracleRespondTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({ oracleId: String, callerId: String, responseTtl: Object, queryId: String, response: String, fee?: Number, ttl?: Number, nonce?: Number}) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `oracle_respond_tx` transaction\n */\n\n/**\n * Get Account Nonce\n * @function getAccountNonce\n * @instance\n * @abstract\n * @category async\n * @rtype (address) => result: Number\n * @param {String} address - Account public key\n * @return {Number} Result\n */\n\nexport default Tx\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/tx/index.js"],"names":["stampit","required","Tx","methods","spendTx","namePreclaimTx","nameClaimTx","nameTransferTx","nameUpdateTx","nameRevokeTx","contractCreateTx","contractCallTx","oracleRegisterTx","oracleExtendTx","oraclePostQueryTx","oracleRespondTx","getAccountNonce","channelCloseSoloTx","channelSlashTx","channelSettleTx","channelSnapshotSoloTx","gaAttachTx","getVmVersion","prepareTxParams"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA,OAAOA,OAAP,MAAoB,WAApB;AACA,SAASC,QAAT,QAAyB,iBAAzB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,EAAE,GAAGF,OAAO,CAACC,QAAQ,CAAC;AAC1BE,EAAAA,OAAO,EAAE;AACPC,IAAAA,OAAO,EAAEH,QADF;AAEPI,IAAAA,cAAc,EAAEJ,QAFT;AAGPK,IAAAA,WAAW,EAAEL,QAHN;AAIPM,IAAAA,cAAc,EAAEN,QAJT;AAKPO,IAAAA,YAAY,EAAEP,QALP;AAMPQ,IAAAA,YAAY,EAAER,QANP;AAOPS,IAAAA,gBAAgB,EAAET,QAPX;AAQPU,IAAAA,cAAc,EAAEV,QART;AASPW,IAAAA,gBAAgB,EAAEX,QATX;AAUPY,IAAAA,cAAc,EAAEZ,QAVT;AAWPa,IAAAA,iBAAiB,EAAEb,QAXZ;AAYPc,IAAAA,eAAe,EAAEd,QAZV;AAaPe,IAAAA,eAAe,EAAEf,QAbV;AAcPgB,IAAAA,kBAAkB,EAAEhB,QAdb;AAePiB,IAAAA,cAAc,EAAEjB,QAfT;AAgBPkB,IAAAA,eAAe,EAAElB,QAhBV;AAiBPmB,IAAAA,qBAAqB,EAAEnB,QAjBhB;AAkBPoB,IAAAA,UAAU,EAAEpB,QAlBL;AAmBPqB,IAAAA,YAAY,EAAErB,QAnBP;AAoBPsB,IAAAA,eAAe,EAAEtB;AApBV;AADiB,CAAD,CAAT,CAAlB;AAyBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAeC,EAAf","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 * Tx module\n * @module @aeternity/aepp-sdk/es/tx\n * @export Tx\n * @example import { Tx } from '@aeternity/aepp-sdk'\n */\n\nimport stampit from '@stamp/it'\nimport { required } from '@stamp/required'\n\n/**\n * Basic Tx Stamp\n *\n * Attempting to create instances from the Stamp without overwriting all\n * abstract methods using composition will result in an exception.\n *\n * Tx is one of the three basic building blocks of an\n * {@link module:@aeternity/aepp-sdk/es/ae--Ae} client and provides methods to\n * create aeternity transactions.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @return {Object} Tx instance\n * @example Tx()\n */\nconst Tx = stampit(required({\n methods: {\n spendTx: required,\n namePreclaimTx: required,\n nameClaimTx: required,\n nameTransferTx: required,\n nameUpdateTx: required,\n nameRevokeTx: required,\n contractCreateTx: required,\n contractCallTx: required,\n oracleRegisterTx: required,\n oracleExtendTx: required,\n oraclePostQueryTx: required,\n oracleRespondTx: required,\n getAccountNonce: required,\n channelCloseSoloTx: required,\n channelSlashTx: required,\n channelSettleTx: required,\n channelSnapshotSoloTx: required,\n gaAttachTx: required,\n getVmVersion: required,\n prepareTxParams: required\n }\n}))\n\n/**\n * Create a `spend_tx` transaction\n * @function spendTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({\n * sender?: String,\n * recipientId: String,\n * amount: Number,\n * fee?: Number,\n * ttl?: Number,\n * nonce?: Number,\n * payload?: String\n * }) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `spend_tx` transaction\n */\n\n/**\n * Create a `name_preclaim_tx` transaction\n * @function namePreclaimTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({\n * account?: String, commitment: String, fee?: Number, ttl?: Number, nonce?: Number\n * }) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `name_preclaim_tx` transaction\n */\n\n/**\n * Create a `name_claim_tx` transaction\n * @function nameClaimTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({\n * account?: String, name: String, nameSalt: String, fee?: Number, ttl?: Number, nonce?: Number\n * }) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `name_claim_tx` transaction\n */\n\n/**\n * Create a `name_transfer_tx` transaction\n * @function nameTransferTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({\n * account?: String,\n * nameId: String,\n * recipientId: String,\n * fee?: Number,\n * ttl?: Number,\n * nonce?: Number\n * }) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `name_transfer_tx` transaction\n */\n\n/**\n * Create a `name_update_tx` transaction\n * @function nameUpdateTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({\n * account?: String,\n * nameId: String,\n * pointers: Object,\n * nameTtl: Number,\n * clientTtl: Number,\n * fee?: Number,\n * ttl?: Number,\n * nonce?: Number\n * }) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `name_update_tx` transaction\n */\n\n/**\n * Create a `name_revoke_tx` transaction\n * @function nameRevokeTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({\n * account?: String, nameId: String, fee?: Number, ttl?: Number, nonce?: Number\n * }) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `name_revoke_tx` transaction\n */\n\n/**\n * Create a `contract_create_tx` transaction\n * @function contractCreateTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({\n * owner: String,\n * code: String,\n * callData: String,\n * vmVersion: Number,\n * deposit: Number,\n * amount: Number,\n * gas: Number,\n * gasPrice: Number,\n * fee?: Number,\n * ttl?: Number,\n * nonce?: Number\n * }) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `contract_create_tx` transaction\n */\n\n/**\n * Create a `contract_call_tx` transaction\n * @function contractCallTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({\n * callerId: String,\n * contract: String,\n * callData: String,\n * vmVersion: Number,\n * amount: Number,\n * gas: Number,\n * gasPrice: Number,\n * fee?: Number,\n * ttl?: Number,\n * nonce?: Number\n * }) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `contract_call_tx` transaction\n */\n\n/**\n * Create a `oracle_register_tx` transaction\n * @function oracleRegisterTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({\n * accountId: String,\n * queryFormat: String,\n * responseFormat: String,\n * queryFee: String|Number,\n * oracleTtl: Object,\n * vmVersion: Number = ORACLE_VM_VERSION,\n * fee?: Number,\n * ttl?: Number,\n * nonce?: Number\n * }) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `oracle_register_tx` transaction\n */\n\n/**\n * Create a `oracle_extend_tx` transaction\n * @function oracleExtendTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({\n * oracleId: String,\n * callerId: String,\n * oracleTtl: Object,\n * fee?: Number,\n * ttl: Number,\n * nonce?: Number\n * }) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `oracle_extend_tx` transaction\n */\n\n/**\n * Create a `oracle_post_query_tx` transaction\n * @function oraclePostQuery\n * @instance\n * @abstract\n * @category async\n * @rtype ({\n * oracleId: String,\n * responseTtl: Object,\n * query: String,\n * queryTtl: Object,\n * queryFee: String|Number,\n * senderId: String,\n * fee?: Number,\n * ttl: Number,\n * nonce?: Number\n * }) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `oracle_post_query_tx` transaction\n */\n\n/**\n * Create a `oracle_respond_tx` transaction\n * @function oracleRespondTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({\n * oracleId: String,\n * callerId: String,\n * responseTtl: Object,\n * queryId: String,\n * response: String,\n * fee?: Number,\n * ttl?: Number,\n * nonce?: Number\n * }) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `oracle_respond_tx` transaction\n */\n\n/**\n * Get Account Nonce\n * @function getAccountNonce\n * @instance\n * @abstract\n * @category async\n * @rtype (address) => result: Number\n * @param {String} address - Account public key\n * @return {Number} Result\n */\n\nexport default Tx\n"],"file":"index.js"}
|
package/es/tx/tx-object.js
CHANGED
|
@@ -16,7 +16,9 @@ import { isHex } from '../utils/string';
|
|
|
16
16
|
* @param {Object} params Transaction params
|
|
17
17
|
* @param {Object} [options={}] Options
|
|
18
18
|
* @throws {Error} Arguments validation error's
|
|
19
|
-
* @return {{
|
|
19
|
+
* @return {{
|
|
20
|
+
* encodedTx: String, binary: Array<Buffer>, rlpEncoded: Buffer, params: Object, type: String
|
|
21
|
+
* }}
|
|
20
22
|
*/
|
|
21
23
|
|
|
22
24
|
const buildTransaction = function (type, params) {
|
|
@@ -52,7 +54,9 @@ const buildTransaction = function (type, params) {
|
|
|
52
54
|
* @alias module:@aeternity/aepp-sdk/es/tx/tx-object
|
|
53
55
|
* @param {Buffer|String} tx RLP encoded binary or base64c(rlpBinary) string
|
|
54
56
|
* @throws {Error} Arguments validation error's
|
|
55
|
-
* @return {{
|
|
57
|
+
* @return {{
|
|
58
|
+
* encodedTx: String, binary: Array<Buffer>, rlpEncoded: Buffer, type: String, params: Object
|
|
59
|
+
* }}
|
|
56
60
|
*/
|
|
57
61
|
|
|
58
62
|
|
|
@@ -100,7 +104,9 @@ const unpackTransaction = tx => {
|
|
|
100
104
|
* @param {String} type Transaction type
|
|
101
105
|
* @param {Object} [options={}] Options
|
|
102
106
|
* @throws {Error} Arguments validation error's
|
|
103
|
-
* @return {{
|
|
107
|
+
* @return {{
|
|
108
|
+
* encodedTx: String, binary: Array<Buffer>, rlpEncoded: Buffer, type: String, params: Object
|
|
109
|
+
* }}
|
|
104
110
|
*/
|
|
105
111
|
|
|
106
112
|
|
package/es/tx/tx-object.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tx/tx-object.js"],"names":["stampit","buildTx","calculateFee","unpackTx","TX_TYPE","encode","isHex","buildTransaction","type","params","options","Error","Object","values","includes","fee","gas","vsn","rlpEncoded","binary","tx","encodedTx","txObject","unpackTransaction","txType","Buffer","isBuffer","initTransaction","TxObject","init","signatures","assign","signed","isSigned","statics","fromString","fromRlp","methods","setProp","props","getSignatures","addSignature","signature","from","Uint8Array","calculateMinFee"],"mappings":"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","sourcesContent":["/**\n * TxObject module\n * @module @aeternity/aepp-sdk/es/tx/tx-object\n * @export TxObject\n * @example import TxObject from '@aeternity/aepp-sdk/es/tx/tx-object'\n */\nimport stampit from '@stamp/it'\nimport { buildTx, calculateFee, unpackTx } from './builder'\nimport { TX_TYPE } from './builder/schema'\nimport { encode } from './builder/helpers'\nimport { isHex } from '../utils/string'\n\n/**\n * Build transaction from object\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @param {String} type Transaction type\n * @param {Object} params Transaction params\n * @param {Object} [options={}] Options\n * @throws {Error} Arguments validation error's\n * @return {{ encodedTx: String, binary: Array<Buffer>, rlpEncoded: Buffer, params: Object, type: String }}\n */\nconst buildTransaction = (type, params, options = {}) => {\n if (typeof params !== 'object') throw new Error('\"params\" should be an object')\n if (typeof type !== 'string' || !Object.values(TX_TYPE).includes(type)) throw new Error(`Unknown transaction type ${type}`)\n const fee = calculateFee(params.fee, type, { gas: params.gas, params, vsn: params.vsn })\n const { rlpEncoded, binary, tx: encodedTx, txObject } = buildTx({ ...params, fee }, type, { vsn: params.vsn, ...options })\n return { rlpEncoded, binary, encodedTx, params: txObject, type }\n}\n\n/**\n * Unpack transaction from RLP encoded binary or base64c string\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @param {Buffer|String} tx RLP encoded binary or base64c(rlpBinary) string\n * @throws {Error} Arguments validation error's\n * @return {{ encodedTx: String, binary: Array<Buffer>, rlpEncoded: Buffer, type: String, params: Object }}\n */\nconst unpackTransaction = (tx) => {\n if (!tx) throw new Error(`Invalid transaction: ${tx}`)\n if (typeof tx === 'string') {\n const { txType: type, tx: params, rlpEncoded, binary } = unpackTx(tx)\n return { encodedTx: tx, type, params, rlpEncoded, binary }\n }\n if (Buffer.isBuffer(tx)) {\n const { txType: type, tx: params, rlpEncoded, binary } = unpackTx(tx, true)\n return { encodedTx: encode(tx, 'tx'), type, params, rlpEncoded, binary }\n }\n}\n\n/**\n * Helper which build or unpack transaction base on constructor arguments\n * Need to provide one of arguments: [tx] -> unpack flow or [params, type] -> build flow\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @param {Buffer|String} [tx] Transaction rlp binary or vase64c string\n * @param {Object} params Transaction params\n * @param {String} type Transaction type\n * @param {Object} [options={}] Options\n * @throws {Error} Arguments validation error's\n * @return {{encodedTx: String, binary: Array<Buffer>, rlpEncoded: Buffer, type: String, params: Object}}\n */\nconst initTransaction = ({ tx, params, type, options = {} } = {}) => {\n if (params && type) return buildTransaction(type, params, options)\n if (tx) return unpackTransaction(tx)\n throw new Error('Invalid TxObject arguments. Please provide one of { tx: \"tx_asdasd23...\" } or { type: \"spendTx\", params: {...} }')\n}\n\n/**\n * Transaction Validator Stamp\n * This stamp give us possibility to unpack and validate some of transaction properties,\n * to make sure we can post it to the chain\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @param {Buffer|String} [options.tx] - Rlp binary or base64c transaction\n * @param {Object} [options.params] - Transaction params\n * @param {String} [options.type] - Transaction type\n * @param {Object} [options.options] - Build options\n * @return {Object} TxObject instance\n * @example TxObject({ params: {...}, type: 'spendTx' })\n */\nexport const TxObject = stampit({\n init ({ tx, params, type, options = {} } = {}) {\n this.options = options\n this.signatures = []\n Object.assign(this, initTransaction({ tx, params, type, options }))\n\n if (this.type === TX_TYPE.signed) {\n const { signatures, encodedTx: { txType, tx } } = this.params\n this.signatures = signatures\n this.params = tx\n this.type = txType\n this.isSigned = true\n }\n },\n statics: {\n /**\n * Create txObject from base64c RLP encoded transaction string with 'tx_' prefix\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @static\n * @param {String} tx Transaction string (tx_23fsdgsdfg...)\n * @return {TxObject}\n */\n fromString: (tx) => TxObject({ tx }),\n /**\n * Create txObject from transaction RLP binary\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @static\n * @param {Buffer} tx Transaction RLP binary\n * @return {TxObject}\n */\n fromRlp: (tx) => TxObject({ tx })\n },\n methods: {\n /**\n * Rebuild transaction with new params and recalculate fee\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @param {Object} props Transaction properties for update\n * @param options\n * @return {TxObject}\n */\n setProp (props = {}, options = {}) {\n if (typeof props !== 'object') throw new Error('Props should be an object')\n this.isSigned = false\n this.signatures = []\n Object.assign(this, buildTransaction(this.type, { ...this.params, ...props, fee: null }, { ...this.options, ...options }))\n return this\n },\n /**\n * Get signatures\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @return {Array} Array of signatures\n */\n getSignatures () {\n if (!this.isSigned) throw new Error('Signature not found, transaction is not signed')\n return this.signatures\n },\n /**\n * Add signature\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @param {Buffer|String} signature Signature to add ( Can be: Buffer | Uint8Array | HexString )\n * @return {void}\n */\n addSignature (signature) {\n signature = isHex(signature) ? Buffer.from(signature, 'hex') : signature\n if (!Buffer.isBuffer(signature) && !(signature instanceof Uint8Array)) throw new Error('Invalid signature, signature must be of type Buffer or Uint8Array')\n Object.assign(this, buildTransaction(TX_TYPE.signed, { encodedTx: this.rlpEncoded, signatures: [[...this.signatures, signature]] }))\n\n const { signatures, encodedTx: { txType, tx } } = this.params\n this.signatures = signatures\n this.params = tx\n this.type = txType\n this.isSigned = true\n },\n /**\n * Calculate fee\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @param {Object} props\n * @return {String} fee\n */\n calculateMinFee (props = {}) {\n const params = { ...this.params, ...props }\n return calculateFee(0, this.type, { gas: params.gas, params, vsn: params.vsn })\n }\n }\n})\n\nexport default TxObject\n"],"file":"tx-object.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/tx/tx-object.js"],"names":["stampit","buildTx","calculateFee","unpackTx","TX_TYPE","encode","isHex","buildTransaction","type","params","options","Error","Object","values","includes","fee","gas","vsn","rlpEncoded","binary","tx","encodedTx","txObject","unpackTransaction","txType","Buffer","isBuffer","initTransaction","TxObject","init","signatures","assign","signed","isSigned","statics","fromString","fromRlp","methods","setProp","props","getSignatures","addSignature","signature","from","Uint8Array","calculateMinFee"],"mappings":"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","sourcesContent":["/**\n * TxObject module\n * @module @aeternity/aepp-sdk/es/tx/tx-object\n * @export TxObject\n * @example import TxObject from '@aeternity/aepp-sdk/es/tx/tx-object'\n */\nimport stampit from '@stamp/it'\nimport { buildTx, calculateFee, unpackTx } from './builder'\nimport { TX_TYPE } from './builder/schema'\nimport { encode } from './builder/helpers'\nimport { isHex } from '../utils/string'\n\n/**\n * Build transaction from object\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @param {String} type Transaction type\n * @param {Object} params Transaction params\n * @param {Object} [options={}] Options\n * @throws {Error} Arguments validation error's\n * @return {{\n * encodedTx: String, binary: Array<Buffer>, rlpEncoded: Buffer, params: Object, type: String\n * }}\n */\nconst buildTransaction = (type, params, options = {}) => {\n if (typeof params !== 'object') throw new Error('\"params\" should be an object')\n if (typeof type !== 'string' || !Object.values(TX_TYPE).includes(type)) throw new Error(`Unknown transaction type ${type}`)\n const fee = calculateFee(params.fee, type, { gas: params.gas, params, vsn: params.vsn })\n const { rlpEncoded, binary, tx: encodedTx, txObject } = buildTx(\n { ...params, fee }, type, { vsn: params.vsn, ...options }\n )\n return { rlpEncoded, binary, encodedTx, params: txObject, type }\n}\n\n/**\n * Unpack transaction from RLP encoded binary or base64c string\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @param {Buffer|String} tx RLP encoded binary or base64c(rlpBinary) string\n * @throws {Error} Arguments validation error's\n * @return {{\n * encodedTx: String, binary: Array<Buffer>, rlpEncoded: Buffer, type: String, params: Object\n * }}\n */\nconst unpackTransaction = (tx) => {\n if (!tx) throw new Error(`Invalid transaction: ${tx}`)\n if (typeof tx === 'string') {\n const { txType: type, tx: params, rlpEncoded, binary } = unpackTx(tx)\n return { encodedTx: tx, type, params, rlpEncoded, binary }\n }\n if (Buffer.isBuffer(tx)) {\n const { txType: type, tx: params, rlpEncoded, binary } = unpackTx(tx, true)\n return { encodedTx: encode(tx, 'tx'), type, params, rlpEncoded, binary }\n }\n}\n\n/**\n * Helper which build or unpack transaction base on constructor arguments\n * Need to provide one of arguments: [tx] -> unpack flow or [params, type] -> build flow\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @param {Buffer|String} [tx] Transaction rlp binary or vase64c string\n * @param {Object} params Transaction params\n * @param {String} type Transaction type\n * @param {Object} [options={}] Options\n * @throws {Error} Arguments validation error's\n * @return {{\n * encodedTx: String, binary: Array<Buffer>, rlpEncoded: Buffer, type: String, params: Object\n * }}\n */\nconst initTransaction = ({ tx, params, type, options = {} } = {}) => {\n if (params && type) return buildTransaction(type, params, options)\n if (tx) return unpackTransaction(tx)\n throw new Error('Invalid TxObject arguments. Please provide one of { tx: \"tx_asdasd23...\" } or { type: \"spendTx\", params: {...} }')\n}\n\n/**\n * Transaction Validator Stamp\n * This stamp give us possibility to unpack and validate some of transaction properties,\n * to make sure we can post it to the chain\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @param {Buffer|String} [options.tx] - Rlp binary or base64c transaction\n * @param {Object} [options.params] - Transaction params\n * @param {String} [options.type] - Transaction type\n * @param {Object} [options.options] - Build options\n * @return {Object} TxObject instance\n * @example TxObject({ params: {...}, type: 'spendTx' })\n */\nexport const TxObject = stampit({\n init ({ tx, params, type, options = {} } = {}) {\n this.options = options\n this.signatures = []\n Object.assign(this, initTransaction({ tx, params, type, options }))\n\n if (this.type === TX_TYPE.signed) {\n const { signatures, encodedTx: { txType, tx } } = this.params\n this.signatures = signatures\n this.params = tx\n this.type = txType\n this.isSigned = true\n }\n },\n statics: {\n /**\n * Create txObject from base64c RLP encoded transaction string with 'tx_' prefix\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @static\n * @param {String} tx Transaction string (tx_23fsdgsdfg...)\n * @return {TxObject}\n */\n fromString: (tx) => TxObject({ tx }),\n /**\n * Create txObject from transaction RLP binary\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @static\n * @param {Buffer} tx Transaction RLP binary\n * @return {TxObject}\n */\n fromRlp: (tx) => TxObject({ tx })\n },\n methods: {\n /**\n * Rebuild transaction with new params and recalculate fee\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @param {Object} props Transaction properties for update\n * @param options\n * @return {TxObject}\n */\n setProp (props = {}, options = {}) {\n if (typeof props !== 'object') throw new Error('Props should be an object')\n this.isSigned = false\n this.signatures = []\n Object.assign(\n this,\n buildTransaction(\n this.type, { ...this.params, ...props, fee: null }, { ...this.options, ...options }\n )\n )\n return this\n },\n /**\n * Get signatures\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @return {Array} Array of signatures\n */\n getSignatures () {\n if (!this.isSigned) throw new Error('Signature not found, transaction is not signed')\n return this.signatures\n },\n /**\n * Add signature\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @param {Buffer|String} signature Signature to add ( Can be: Buffer | Uint8Array | HexString )\n * @return {void}\n */\n addSignature (signature) {\n signature = isHex(signature) ? Buffer.from(signature, 'hex') : signature\n if (!Buffer.isBuffer(signature) && !(signature instanceof Uint8Array)) throw new Error('Invalid signature, signature must be of type Buffer or Uint8Array')\n Object.assign(\n this,\n buildTransaction(\n TX_TYPE.signed,\n { encodedTx: this.rlpEncoded, signatures: [[...this.signatures, signature]] }\n )\n )\n\n const { signatures, encodedTx: { txType, tx } } = this.params\n this.signatures = signatures\n this.params = tx\n this.type = txType\n this.isSigned = true\n },\n /**\n * Calculate fee\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @param {Object} props\n * @return {String} fee\n */\n calculateMinFee (props = {}) {\n const params = { ...this.params, ...props }\n return calculateFee(0, this.type, { gas: params.gas, params, vsn: params.vsn })\n }\n }\n})\n\nexport default TxObject\n"],"file":"tx-object.js"}
|
package/es/tx/tx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tx/tx.js"],"names":["ChainNode","Tx","buildTx","calculateFee","unpackTx","ABI_VERSIONS","MIN_GAS_PRICE","PROTOCOL_VM_ABI","TX_TYPE","TX_TTL","buildContractId","TxObject","spendTx","senderId","recipientId","amount","payload","fee","ttl","nonce","prepareTxParams","spend","arguments","tx","nativeMode","params","type","encodedTx","api","postSpend","parseInt","namePreclaimTx","accountId","commitmentId","namePreClaim","postNamePreclaim","nameClaimTx","name","nameSalt","vsn","nameClaim","postNameClaim","nameTransferTx","nameId","nameTransfer","postNameTransfer","nameUpdateTx","nameTtl","pointers","clientTtl","nameUpdate","postNameUpdate","nameRevokeTx","nameRevoke","postNameRevoke","contractCreateTx","ownerId","code","vmVersion","abiVersion","deposit","gas","gasPrice","callData","ctVersion","getVmVersion","contractCreate","contractId","postContractCreate","contractCallTx","callerId","contractCall","postContractCall","oracleRegisterTx","queryFormat","responseFormat","queryFee","oracleTtl","NO_ABI","oracleRegister","postOracleRegister","oracleExtendTx","oracleId","oracleExtend","postOracleExtend","oraclePostQueryTx","responseTtl","query","queryTtl","oracleQuery","postOracleQuery","oracleRespondTx","queryId","response","oracleResponse","postOracleRespond","channelCloseSoloTx","channelId","fromId","poi","channelCloseSolo","postChannelCloseSolo","channelSlashTx","channelSlash","postChannelSlash","channelSettleTx","initiatorAmountFinal","responderAmountFinal","channelSettle","postChannelSettle","channelSnapshotSoloTx","channelSnapshotSolo","postChannelSnapshotSolo","gaAttachTx","authFun","gaAttach","payingForTx","payerId","args","payingFor","txType","consensusProtocolVersion","getNodeInfo","supportedProtocol","Error","protocolForTX","includes","calculateTtl","relative","height","getCurrentKeyBlock","getAccountNonce","accountNonce","getAccountByPubkey","catch","n","t","f","absoluteTtl","strategy","getAccountNextNonce","e","nextNonce","call","showWarning","Transaction","compose","init","props","methods"],"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 * Transaction module\n * @module @aeternity/aepp-sdk/es/tx/tx\n * @export Transaction\n * @example import { Transaction } from '@aeternity/aepp-sdk'\n */\n\nimport ChainNode from '../chain/node'\nimport Tx from './'\nimport { buildTx, calculateFee, unpackTx } from './builder'\nimport { ABI_VERSIONS, MIN_GAS_PRICE, PROTOCOL_VM_ABI, TX_TYPE, TX_TTL } from './builder/schema'\nimport { buildContractId } from './builder/helpers'\nimport { TxObject } from './tx-object'\n\nasync function spendTx ({ senderId, recipientId, amount, payload = '' }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.spend, { senderId, ...arguments[0], payload })\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: {\n ...arguments[0],\n recipientId,\n senderId,\n nonce,\n ttl,\n payload\n },\n type: TX_TYPE.spend\n }).encodedTx\n }\n : await this.api.postSpend({\n ...arguments[0],\n amount: parseInt(amount),\n recipientId,\n senderId,\n nonce,\n ttl,\n fee: parseInt(fee),\n payload\n })\n\n return tx\n}\n\nasync function namePreclaimTx ({ accountId, commitmentId }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.namePreClaim, { senderId: accountId, ...arguments[0] })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee },\n type: TX_TYPE.namePreClaim\n }).encodedTx\n }\n : await this.api.postNamePreclaim({ ...arguments[0], nonce, ttl, fee: parseInt(fee) })\n\n return tx\n}\n\nasync function nameClaimTx ({ accountId, name, nameSalt, vsn = 2 }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.nameClaim, { senderId: accountId, ...arguments[0], vsn })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee, vsn },\n type: TX_TYPE.nameClaim\n }).encodedTx\n }\n : await this.api.postNameClaim({ ...arguments[0], nonce, ttl, fee: parseInt(fee) })\n\n return tx\n}\n\nasync function nameTransferTx ({ accountId, nameId, recipientId }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.nameTransfer, { senderId: accountId, ...arguments[0] })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], recipientId, nonce, ttl, fee },\n type: TX_TYPE.nameTransfer\n }).encodedTx\n }\n : await this.api.postNameTransfer({ ...arguments[0], recipientId, nonce, ttl, fee: parseInt(fee) })\n\n return tx\n}\n\nasync function nameUpdateTx ({ accountId, nameId, nameTtl, pointers, clientTtl }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.nameUpdate, { senderId: accountId, ...arguments[0] })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee },\n type: TX_TYPE.nameUpdate\n }).encodedTx\n }\n : await this.api.postNameUpdate({ ...arguments[0], nonce, ttl, fee: parseInt(fee) })\n\n return tx\n}\n\nasync function nameRevokeTx ({ accountId, nameId }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.nameRevoke, { senderId: accountId, ...arguments[0] })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee },\n type: TX_TYPE.nameRevoke\n }).encodedTx\n }\n : await this.api.postNameRevoke({ ...arguments[0], nonce, ttl, fee: parseInt(fee) })\n\n return tx\n}\n\nasync function contractCreateTx ({ ownerId, code, vmVersion, abiVersion, deposit, amount, gas, gasPrice = MIN_GAS_PRICE, callData }) {\n // Get VM_ABI version\n const ctVersion = this.getVmVersion(TX_TYPE.contractCreate, arguments[0])\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.contractCreate, { senderId: ownerId, ...arguments[0], ctVersion, gasPrice })\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n return this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee, ctVersion, gasPrice },\n type: TX_TYPE.contractCreate\n }).encodedTx,\n contractId: buildContractId(ownerId, nonce)\n }\n : this.api.postContractCreate({ ...arguments[0], nonce, ttl, fee: parseInt(fee), gas: parseInt(gas), gasPrice, vmVersion: ctVersion.vmVersion, abiVersion: ctVersion.abiVersion })\n}\n\nasync function contractCallTx ({ callerId, contractId, abiVersion, amount, gas, gasPrice = MIN_GAS_PRICE, callData }) {\n const ctVersion = this.getVmVersion(TX_TYPE.contractCall, arguments[0])\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.contractCall, { senderId: callerId, ...arguments[0], gasPrice, abiVersion: ctVersion.abiVersion })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee, abiVersion: ctVersion.abiVersion, gasPrice },\n type: TX_TYPE.contractCall\n }).encodedTx\n }\n : await this.api.postContractCall({\n ...arguments[0],\n nonce,\n ttl,\n fee: parseInt(fee),\n gas: parseInt(gas),\n gasPrice,\n abiVersion: ctVersion.abiVersion\n })\n\n return tx\n}\n\nasync function oracleRegisterTx ({ accountId, queryFormat, responseFormat, queryFee, oracleTtl, abiVersion = ABI_VERSIONS.NO_ABI }) {\n // const { abiVersion: abi } = this.getVmVersion(TX_TYPE.oracleRegister, arguments[0])\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.oracleRegister, { senderId: accountId, ...arguments[0], abiVersion })\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: {\n accountId,\n queryFee,\n abiVersion,\n fee,\n oracleTtl,\n nonce,\n ttl,\n queryFormat,\n responseFormat\n },\n type: TX_TYPE.oracleRegister\n }).encodedTx\n }\n : await this.api.postOracleRegister({\n accountId,\n queryFee,\n abiVersion,\n fee: parseInt(fee),\n oracleTtl,\n nonce,\n ttl,\n queryFormat,\n responseFormat\n })\n\n return tx\n}\n\nasync function oracleExtendTx ({ oracleId, callerId, oracleTtl }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.oracleExtend, { senderId: callerId, ...arguments[0] })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { oracleId, fee, oracleTtl, nonce, ttl },\n type: TX_TYPE.oracleExtend\n }).encodedTx\n }\n : await this.api.postOracleExtend({ oracleId, fee: parseInt(fee), oracleTtl, nonce, ttl })\n\n return tx\n}\n\nasync function oraclePostQueryTx ({ oracleId, responseTtl, query, queryTtl, queryFee, senderId }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.oracleQuery, { senderId, ...arguments[0] })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { oracleId, responseTtl, query, queryTtl, fee, queryFee, ttl, nonce, senderId },\n type: TX_TYPE.oracleQuery\n }).encodedTx\n }\n : await this.api.postOracleQuery({\n oracleId,\n responseTtl,\n query,\n queryTtl,\n fee: parseInt(fee),\n queryFee,\n ttl,\n nonce,\n senderId\n })\n\n return tx\n}\n\nasync function oracleRespondTx ({ oracleId, callerId, responseTtl, queryId, response }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.oracleResponse, { senderId: callerId, ...arguments[0] })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { oracleId, responseTtl, queryId, response, fee, ttl, nonce },\n type: TX_TYPE.oracleResponse\n }).encodedTx\n }\n : await this.api.postOracleRespond({ oracleId, responseTtl, queryId, response, fee: parseInt(fee), ttl, nonce })\n return tx\n}\n\nasync function channelCloseSoloTx ({ channelId, fromId, payload, poi }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.channelCloseSolo, { senderId: fromId, ...arguments[0], payload })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? buildTx({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n poi,\n ttl,\n fee,\n nonce\n }, TX_TYPE.channelCloseSolo)\n : await this.api.postChannelCloseSolo({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n poi,\n ttl,\n fee: parseInt(fee),\n nonce\n })\n\n return tx\n}\n\nasync function channelSlashTx ({ channelId, fromId, payload, poi }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.channelSlash, { senderId: fromId, ...arguments[0], payload })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? buildTx({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n poi,\n ttl,\n fee,\n nonce\n }, TX_TYPE.channelSlash)\n : await this.api.postChannelSlash({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n poi,\n ttl,\n fee: parseInt(fee),\n nonce\n })\n\n return tx\n}\n\nasync function channelSettleTx ({ channelId, fromId, initiatorAmountFinal, responderAmountFinal }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.channelSettle, { senderId: fromId, ...arguments[0] })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? buildTx({\n ...arguments[0],\n channelId,\n fromId,\n initiatorAmountFinal,\n responderAmountFinal,\n ttl,\n fee,\n nonce\n }, TX_TYPE.channelSettle)\n : await this.api.postChannelSettle({\n ...arguments[0],\n channelId,\n fromId,\n initiatorAmountFinal: parseInt(initiatorAmountFinal),\n responderAmountFinal: parseInt(responderAmountFinal),\n ttl,\n fee: parseInt(fee),\n nonce\n })\n\n return tx\n}\n\nasync function channelSnapshotSoloTx ({ channelId, fromId, payload }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.channelSnapshotSolo, { senderId: fromId, ...arguments[0], payload })\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? buildTx({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n ttl,\n fee,\n nonce\n }, TX_TYPE.channelSnapshotSolo)\n : await this.api.postChannelSnapshotSolo({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n ttl,\n fee: parseInt(fee),\n nonce\n })\n\n return tx\n}\n\nasync function gaAttachTx ({ ownerId, code, vmVersion, abiVersion, authFun, gas, gasPrice = MIN_GAS_PRICE, callData }) {\n // Get VM_ABI version\n const ctVersion = this.getVmVersion(TX_TYPE.contractCreate, arguments[0])\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(TX_TYPE.gaAttach, { senderId: ownerId, ...arguments[0], ctVersion, gasPrice })\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n return {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee, ctVersion, gasPrice },\n type: TX_TYPE.gaAttach\n }).encodedTx,\n contractId: buildContractId(ownerId, nonce)\n }\n}\n\nasync function payingForTx ({ tx, payerId, ...args }) {\n const params = { tx: unpackTx(tx), payerId }\n const { fee, nonce } = await this.prepareTxParams(TX_TYPE.payingFor, {\n ...params, ...args, senderId: payerId\n })\n return buildTx({ ...params, ...args, fee, nonce }, TX_TYPE.payingFor).tx\n}\n\n/**\n * Validated vm/abi version or get default based on transaction type and NODE version\n *\n * @param {string} txType Type of transaction\n * @param {object} vmAbi Object with vm and abi version fields\n * @return {object} Object with vm/abi version ({ vmVersion: number, abiVersion: number })\n */\nfunction getVmVersion (txType, { vmVersion, abiVersion } = {}) {\n const { consensusProtocolVersion } = this.getNodeInfo()\n const supportedProtocol = PROTOCOL_VM_ABI[consensusProtocolVersion]\n if (!supportedProtocol) throw new Error('Not supported consensus protocol version')\n const protocolForTX = supportedProtocol[txType]\n if (!protocolForTX) throw new Error('Not supported tx type')\n\n abiVersion = abiVersion || protocolForTX.abiVersion[0]\n vmVersion = vmVersion || protocolForTX.vmVersion[0]\n if (!protocolForTX.vmVersion.includes(vmVersion)) {\n throw new Error(`VM VERSION ${vmVersion} do not support by this node. Supported: [${protocolForTX.vmVersion}]`)\n }\n if (!protocolForTX.abiVersion.includes(abiVersion)) {\n throw new Error(`ABI VERSION ${abiVersion} do not support by this node. Supported: [${protocolForTX.abiVersion}]`)\n }\n\n return { vmVersion, abiVersion }\n}\n\n/**\n * Compute the absolute ttl by adding the ttl to the current height of the chain\n *\n * @param {number} ttl\n * @param {boolean} relative ttl is absolute or relative(default: true(relative))\n * @return {number} Absolute Ttl\n */\nasync function calculateTtl (ttl = TX_TTL, relative = true) {\n if (ttl === 0) return 0\n if (ttl < 0) throw new Error('ttl must be greater than 0')\n\n if (relative) {\n const { height } = await this.api.getCurrentKeyBlock()\n return +(height) + ttl\n }\n return ttl\n}\n\n/**\n * Get the next nonce to be used for a transaction for an account\n *\n * @param {string} accountId\n * @param {number} nonce\n * @return {number} Next Nonce\n */\nasync function getAccountNonce (accountId, nonce) {\n if (nonce) return nonce\n const { nonce: accountNonce } = await this.api.getAccountByPubkey(accountId).catch(() => ({ nonce: 0 }))\n return accountNonce + 1\n}\n\n/**\n * Calculate fee, get absolute ttl (ttl + height), get account nonce\n *\n * @param {String} txType Type of transaction\n * @param {Object} params Object which contains all tx data\n * @return {Object} { ttl, nonce, fee } Object with account nonce, absolute ttl and transaction fee\n */\nasync function prepareTxParams (txType, { senderId, nonce: n, ttl: t, fee: f, gas, absoluteTtl, vsn, strategy }) {\n n = n || (await this.api.getAccountNextNonce(senderId, { strategy }).catch(e => ({ nextNonce: 1 }))).nextNonce\n const ttl = await calculateTtl.call(this, t, !absoluteTtl)\n const fee = calculateFee(f, txType, { showWarning: this.showWarning, gas, params: { ...arguments[1], nonce: n, ttl }, vsn })\n return { fee, ttl, nonce: n }\n}\n\n/**\n * Transaction Stamp\n *\n * This is implementation of [Tx](api/tx.md) relays\n * the creation of transactions to {@link module:@aeternity/aepp-sdk/es/Node}.\n * This stamp provide ability to create native transaction's,\n * or transaction's using Node API.\n * As there is no built-in security between Node and client communication,\n * creating transaction using {@link module:@aeternity/aepp-sdk/es/Node} API\n * must never be used for production but can be very useful to verify other\n * implementations.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/tx\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @param {Boolean} [options.nativeMode=true] options.nativeMode - Use Native build of transaction's\n * @param {String} options.url - Node url\n * @param {String} options.internalUrl - Node internal url\n * @return {Object} Transaction instance\n * @example Transaction({url: 'https://testnet.aeternity.io/'})\n */\nconst Transaction = ChainNode.compose(Tx, {\n init ({ nativeMode = true, showWarning = false }) {\n this.nativeMode = nativeMode\n this.showWarning = showWarning\n },\n props: {\n nativeMode: true,\n showWarning: false\n },\n methods: {\n spendTx,\n namePreclaimTx,\n nameClaimTx,\n nameTransferTx,\n nameUpdateTx,\n nameRevokeTx,\n contractCreateTx,\n contractCallTx,\n prepareTxParams,\n oracleRegisterTx,\n oracleExtendTx,\n oraclePostQueryTx,\n oracleRespondTx,\n channelCloseSoloTx,\n channelSlashTx,\n channelSettleTx,\n channelSnapshotSoloTx,\n gaAttachTx,\n payingForTx,\n getAccountNonce,\n getVmVersion\n }\n})\n\nexport default Transaction\n"],"file":"tx.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/tx/tx.js"],"names":["ChainNode","Tx","buildTx","calculateFee","unpackTx","ABI_VERSIONS","MIN_GAS_PRICE","PROTOCOL_VM_ABI","TX_TYPE","TX_TTL","buildContractId","TxObject","spendTx","senderId","recipientId","amount","payload","fee","ttl","nonce","prepareTxParams","spend","arguments","tx","nativeMode","params","type","encodedTx","api","postSpend","parseInt","namePreclaimTx","accountId","commitmentId","namePreClaim","postNamePreclaim","nameClaimTx","name","nameSalt","vsn","nameClaim","postNameClaim","nameTransferTx","nameId","nameTransfer","postNameTransfer","nameUpdateTx","nameTtl","pointers","clientTtl","nameUpdate","postNameUpdate","nameRevokeTx","nameRevoke","postNameRevoke","contractCreateTx","ownerId","code","vmVersion","abiVersion","deposit","gas","gasPrice","callData","ctVersion","getVmVersion","contractCreate","contractId","postContractCreate","contractCallTx","callerId","contractCall","postContractCall","oracleRegisterTx","queryFormat","responseFormat","queryFee","oracleTtl","NO_ABI","oracleRegister","postOracleRegister","oracleExtendTx","oracleId","oracleExtend","postOracleExtend","oraclePostQueryTx","responseTtl","query","queryTtl","oracleQuery","postOracleQuery","oracleRespondTx","queryId","response","oracleResponse","postOracleRespond","channelCloseSoloTx","channelId","fromId","poi","channelCloseSolo","postChannelCloseSolo","channelSlashTx","channelSlash","postChannelSlash","channelSettleTx","initiatorAmountFinal","responderAmountFinal","channelSettle","postChannelSettle","channelSnapshotSoloTx","channelSnapshotSolo","postChannelSnapshotSolo","gaAttachTx","authFun","gaAttach","payingForTx","payerId","args","payingFor","txType","consensusProtocolVersion","getNodeInfo","supportedProtocol","Error","protocolForTX","includes","calculateTtl","relative","height","getCurrentKeyBlock","getAccountNonce","accountNonce","getAccountByPubkey","catch","n","t","f","absoluteTtl","strategy","getAccountNextNonce","e","nextNonce","call","showWarning","Transaction","compose","init","props","methods"],"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 * Transaction module\n * @module @aeternity/aepp-sdk/es/tx/tx\n * @export Transaction\n * @example import { Transaction } from '@aeternity/aepp-sdk'\n */\n\nimport ChainNode from '../chain/node'\nimport Tx from './'\nimport { buildTx, calculateFee, unpackTx } from './builder'\nimport { ABI_VERSIONS, MIN_GAS_PRICE, PROTOCOL_VM_ABI, TX_TYPE, TX_TTL } from './builder/schema'\nimport { buildContractId } from './builder/helpers'\nimport { TxObject } from './tx-object'\n\nasync function spendTx ({ senderId, recipientId, amount, payload = '' }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.spend, { senderId, ...arguments[0], payload }\n )\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: {\n ...arguments[0],\n recipientId,\n senderId,\n nonce,\n ttl,\n payload\n },\n type: TX_TYPE.spend\n }).encodedTx\n }\n : await this.api.postSpend({\n ...arguments[0],\n amount: parseInt(amount),\n recipientId,\n senderId,\n nonce,\n ttl,\n fee: parseInt(fee),\n payload\n })\n\n return tx\n}\n\nasync function namePreclaimTx ({ accountId, commitmentId }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.namePreClaim, { senderId: accountId, ...arguments[0] }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee },\n type: TX_TYPE.namePreClaim\n }).encodedTx\n }\n : await this.api.postNamePreclaim({ ...arguments[0], nonce, ttl, fee: parseInt(fee) })\n\n return tx\n}\n\nasync function nameClaimTx ({ accountId, name, nameSalt, vsn = 2 }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.nameClaim, { senderId: accountId, ...arguments[0], vsn }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee, vsn },\n type: TX_TYPE.nameClaim\n }).encodedTx\n }\n : await this.api.postNameClaim({ ...arguments[0], nonce, ttl, fee: parseInt(fee) })\n\n return tx\n}\n\nasync function nameTransferTx ({ accountId, nameId, recipientId }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.nameTransfer, { senderId: accountId, ...arguments[0] }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], recipientId, nonce, ttl, fee },\n type: TX_TYPE.nameTransfer\n }).encodedTx\n }\n : await this.api.postNameTransfer({\n ...arguments[0], recipientId, nonce, ttl, fee: parseInt(fee)\n })\n\n return tx\n}\n\nasync function nameUpdateTx ({ accountId, nameId, nameTtl, pointers, clientTtl }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.nameUpdate, { senderId: accountId, ...arguments[0] }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee },\n type: TX_TYPE.nameUpdate\n }).encodedTx\n }\n : await this.api.postNameUpdate({ ...arguments[0], nonce, ttl, fee: parseInt(fee) })\n\n return tx\n}\n\nasync function nameRevokeTx ({ accountId, nameId }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.nameRevoke, { senderId: accountId, ...arguments[0] }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee },\n type: TX_TYPE.nameRevoke\n }).encodedTx\n }\n : await this.api.postNameRevoke({ ...arguments[0], nonce, ttl, fee: parseInt(fee) })\n\n return tx\n}\n\nasync function contractCreateTx ({\n ownerId, code, vmVersion, abiVersion, deposit, amount, gas, gasPrice = MIN_GAS_PRICE, callData\n}) {\n // Get VM_ABI version\n const ctVersion = this.getVmVersion(TX_TYPE.contractCreate, arguments[0])\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.contractCreate, { senderId: ownerId, ...arguments[0], ctVersion, gasPrice }\n )\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n return this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee, ctVersion, gasPrice },\n type: TX_TYPE.contractCreate\n }).encodedTx,\n contractId: buildContractId(ownerId, nonce)\n }\n : this.api.postContractCreate({\n ...arguments[0],\n nonce,\n ttl,\n fee: parseInt(fee),\n gas: parseInt(gas),\n gasPrice,\n vmVersion: ctVersion.vmVersion,\n abiVersion: ctVersion.abiVersion\n })\n}\n\nasync function contractCallTx ({\n callerId, contractId, abiVersion, amount, gas, gasPrice = MIN_GAS_PRICE, callData\n}) {\n const ctVersion = this.getVmVersion(TX_TYPE.contractCall, arguments[0])\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.contractCall,\n { senderId: callerId, ...arguments[0], gasPrice, abiVersion: ctVersion.abiVersion }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee, abiVersion: ctVersion.abiVersion, gasPrice },\n type: TX_TYPE.contractCall\n }).encodedTx\n }\n : await this.api.postContractCall({\n ...arguments[0],\n nonce,\n ttl,\n fee: parseInt(fee),\n gas: parseInt(gas),\n gasPrice,\n abiVersion: ctVersion.abiVersion\n })\n\n return tx\n}\n\nasync function oracleRegisterTx ({\n accountId, queryFormat, responseFormat, queryFee, oracleTtl, abiVersion = ABI_VERSIONS.NO_ABI\n}) {\n // const { abiVersion: abi } = this.getVmVersion(TX_TYPE.oracleRegister, arguments[0])\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.oracleRegister, { senderId: accountId, ...arguments[0], abiVersion }\n )\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: {\n accountId,\n queryFee,\n abiVersion,\n fee,\n oracleTtl,\n nonce,\n ttl,\n queryFormat,\n responseFormat\n },\n type: TX_TYPE.oracleRegister\n }).encodedTx\n }\n : await this.api.postOracleRegister({\n accountId,\n queryFee,\n abiVersion,\n fee: parseInt(fee),\n oracleTtl,\n nonce,\n ttl,\n queryFormat,\n responseFormat\n })\n\n return tx\n}\n\nasync function oracleExtendTx ({ oracleId, callerId, oracleTtl }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.oracleExtend, { senderId: callerId, ...arguments[0] }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { oracleId, fee, oracleTtl, nonce, ttl },\n type: TX_TYPE.oracleExtend\n }).encodedTx\n }\n : await this.api.postOracleExtend({ oracleId, fee: parseInt(fee), oracleTtl, nonce, ttl })\n\n return tx\n}\n\nasync function oraclePostQueryTx ({ oracleId, responseTtl, query, queryTtl, queryFee, senderId }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.oracleQuery, { senderId, ...arguments[0] }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { oracleId, responseTtl, query, queryTtl, fee, queryFee, ttl, nonce, senderId },\n type: TX_TYPE.oracleQuery\n }).encodedTx\n }\n : await this.api.postOracleQuery({\n oracleId,\n responseTtl,\n query,\n queryTtl,\n fee: parseInt(fee),\n queryFee,\n ttl,\n nonce,\n senderId\n })\n\n return tx\n}\n\nasync function oracleRespondTx ({ oracleId, callerId, responseTtl, queryId, response }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.oracleResponse, { senderId: callerId, ...arguments[0] }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { oracleId, responseTtl, queryId, response, fee, ttl, nonce },\n type: TX_TYPE.oracleResponse\n }).encodedTx\n }\n : await this.api.postOracleRespond({\n oracleId, responseTtl, queryId, response, fee: parseInt(fee), ttl, nonce\n })\n return tx\n}\n\nasync function channelCloseSoloTx ({ channelId, fromId, payload, poi }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.channelCloseSolo, { senderId: fromId, ...arguments[0], payload }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? buildTx({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n poi,\n ttl,\n fee,\n nonce\n }, TX_TYPE.channelCloseSolo)\n : await this.api.postChannelCloseSolo({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n poi,\n ttl,\n fee: parseInt(fee),\n nonce\n })\n\n return tx\n}\n\nasync function channelSlashTx ({ channelId, fromId, payload, poi }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.channelSlash, { senderId: fromId, ...arguments[0], payload }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? buildTx({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n poi,\n ttl,\n fee,\n nonce\n }, TX_TYPE.channelSlash)\n : await this.api.postChannelSlash({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n poi,\n ttl,\n fee: parseInt(fee),\n nonce\n })\n\n return tx\n}\n\nasync function channelSettleTx ({ channelId, fromId, initiatorAmountFinal, responderAmountFinal }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.channelSettle, { senderId: fromId, ...arguments[0] }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? buildTx({\n ...arguments[0],\n channelId,\n fromId,\n initiatorAmountFinal,\n responderAmountFinal,\n ttl,\n fee,\n nonce\n }, TX_TYPE.channelSettle)\n : await this.api.postChannelSettle({\n ...arguments[0],\n channelId,\n fromId,\n initiatorAmountFinal: parseInt(initiatorAmountFinal),\n responderAmountFinal: parseInt(responderAmountFinal),\n ttl,\n fee: parseInt(fee),\n nonce\n })\n\n return tx\n}\n\nasync function channelSnapshotSoloTx ({ channelId, fromId, payload }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.channelSnapshotSolo, { senderId: fromId, ...arguments[0], payload }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? buildTx({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n ttl,\n fee,\n nonce\n }, TX_TYPE.channelSnapshotSolo)\n : await this.api.postChannelSnapshotSolo({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n ttl,\n fee: parseInt(fee),\n nonce\n })\n\n return tx\n}\n\nasync function gaAttachTx ({\n ownerId, code, vmVersion, abiVersion, authFun, gas, gasPrice = MIN_GAS_PRICE, callData\n}) {\n // Get VM_ABI version\n const ctVersion = this.getVmVersion(TX_TYPE.contractCreate, arguments[0])\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.gaAttach, { senderId: ownerId, ...arguments[0], ctVersion, gasPrice }\n )\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n return {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee, ctVersion, gasPrice },\n type: TX_TYPE.gaAttach\n }).encodedTx,\n contractId: buildContractId(ownerId, nonce)\n }\n}\n\nasync function payingForTx ({ tx, payerId, ...args }) {\n const params = { tx: unpackTx(tx), payerId }\n const { fee, nonce } = await this.prepareTxParams(TX_TYPE.payingFor, {\n ...params, ...args, senderId: payerId\n })\n return buildTx({ ...params, ...args, fee, nonce }, TX_TYPE.payingFor).tx\n}\n\n/**\n * Validated vm/abi version or get default based on transaction type and NODE version\n *\n * @param {string} txType Type of transaction\n * @param {object} vmAbi Object with vm and abi version fields\n * @return {object} Object with vm/abi version ({ vmVersion: number, abiVersion: number })\n */\nfunction getVmVersion (txType, { vmVersion, abiVersion } = {}) {\n const { consensusProtocolVersion } = this.getNodeInfo()\n const supportedProtocol = PROTOCOL_VM_ABI[consensusProtocolVersion]\n if (!supportedProtocol) throw new Error('Not supported consensus protocol version')\n const protocolForTX = supportedProtocol[txType]\n if (!protocolForTX) throw new Error('Not supported tx type')\n\n abiVersion = abiVersion || protocolForTX.abiVersion[0]\n vmVersion = vmVersion || protocolForTX.vmVersion[0]\n if (!protocolForTX.vmVersion.includes(vmVersion)) {\n throw new Error(`VM VERSION ${vmVersion} do not support by this node. Supported: [${protocolForTX.vmVersion}]`)\n }\n if (!protocolForTX.abiVersion.includes(abiVersion)) {\n throw new Error(`ABI VERSION ${abiVersion} do not support by this node. Supported: [${protocolForTX.abiVersion}]`)\n }\n\n return { vmVersion, abiVersion }\n}\n\n/**\n * Compute the absolute ttl by adding the ttl to the current height of the chain\n *\n * @param {number} ttl\n * @param {boolean} relative ttl is absolute or relative(default: true(relative))\n * @return {number} Absolute Ttl\n */\nasync function calculateTtl (ttl = TX_TTL, relative = true) {\n if (ttl === 0) return 0\n if (ttl < 0) throw new Error('ttl must be greater than 0')\n\n if (relative) {\n const { height } = await this.api.getCurrentKeyBlock()\n return +(height) + ttl\n }\n return ttl\n}\n\n/**\n * Get the next nonce to be used for a transaction for an account\n *\n * @param {string} accountId\n * @param {number} nonce\n * @return {number} Next Nonce\n */\nasync function getAccountNonce (accountId, nonce) {\n if (nonce) return nonce\n const { nonce: accountNonce } = await this.api.getAccountByPubkey(accountId)\n .catch(() => ({ nonce: 0 }))\n return accountNonce + 1\n}\n\n/**\n * Calculate fee, get absolute ttl (ttl + height), get account nonce\n *\n * @param {String} txType Type of transaction\n * @param {Object} params Object which contains all tx data\n * @return {Object} { ttl, nonce, fee } Object with account nonce, absolute ttl and transaction fee\n */\nasync function prepareTxParams (\n txType,\n { senderId, nonce: n, ttl: t, fee: f, gas, absoluteTtl, vsn, strategy }\n) {\n n = n || (\n await this.api.getAccountNextNonce(senderId, { strategy }).catch(e => ({ nextNonce: 1 }))\n ).nextNonce\n const ttl = await calculateTtl.call(this, t, !absoluteTtl)\n const fee = calculateFee(\n f,\n txType,\n { showWarning: this.showWarning, gas, params: { ...arguments[1], nonce: n, ttl }, vsn }\n )\n return { fee, ttl, nonce: n }\n}\n\n/**\n * Transaction Stamp\n *\n * This is implementation of [Tx](api/tx.md) relays\n * the creation of transactions to {@link module:@aeternity/aepp-sdk/es/Node}.\n * This stamp provide ability to create native transaction's,\n * or transaction's using Node API.\n * As there is no built-in security between Node and client communication,\n * creating transaction using {@link module:@aeternity/aepp-sdk/es/Node} API\n * must never be used for production but can be very useful to verify other\n * implementations.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/tx\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @param {Boolean} [options.nativeMode=true] options.nativeMode - Use Native build of transaction's\n * @param {String} options.url - Node url\n * @param {String} options.internalUrl - Node internal url\n * @return {Object} Transaction instance\n * @example Transaction({url: 'https://testnet.aeternity.io/'})\n */\nconst Transaction = ChainNode.compose(Tx, {\n init ({ nativeMode = true, showWarning = false }) {\n this.nativeMode = nativeMode\n this.showWarning = showWarning\n },\n props: {\n nativeMode: true,\n showWarning: false\n },\n methods: {\n spendTx,\n namePreclaimTx,\n nameClaimTx,\n nameTransferTx,\n nameUpdateTx,\n nameRevokeTx,\n contractCreateTx,\n contractCallTx,\n prepareTxParams,\n oracleRegisterTx,\n oracleExtendTx,\n oraclePostQueryTx,\n oracleRespondTx,\n channelCloseSoloTx,\n channelSlashTx,\n channelSettleTx,\n channelSnapshotSoloTx,\n gaAttachTx,\n payingForTx,\n getAccountNonce,\n getVmVersion\n }\n})\n\nexport default Transaction\n"],"file":"tx.js"}
|
|
@@ -18,10 +18,11 @@
|
|
|
18
18
|
/**
|
|
19
19
|
* Browser runtime connector module
|
|
20
20
|
*
|
|
21
|
-
* This is the complement to
|
|
21
|
+
* This is the complement to
|
|
22
|
+
* {@link module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection}.
|
|
22
23
|
* @module @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/browser-runtime
|
|
23
24
|
* @export BrowserRuntimeConnection
|
|
24
|
-
* @example import BrowserRuntimeConnection from '@aeternity/aepp-sdk
|
|
25
|
+
* @example import { BrowserRuntimeConnection } from '@aeternity/aepp-sdk'
|
|
25
26
|
*/
|
|
26
27
|
import stampit from '@stamp/it';
|
|
27
28
|
import WalletConnection from '.';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/utils/aepp-wallet-communication/connection/browser-runtime.js"],"names":["stampit","WalletConnection","getBrowserAPI","disconnect","port","e","console","warning","connect","onMessage","onDisconnect","isConnected","Error","handler","msg","source","debug","log","addListener","sendMessage","postMessage","hasListeners","hasListener","init","connectionInfo","runtime","id","undefined","methods"],"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 * Browser runtime connector module\n *\n * This is the complement to {@link module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection}.\n * @module @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/browser-runtime\n * @export BrowserRuntimeConnection\n * @example import BrowserRuntimeConnection from '@aeternity/aepp-sdk
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/aepp-wallet-communication/connection/browser-runtime.js"],"names":["stampit","WalletConnection","getBrowserAPI","disconnect","port","e","console","warning","connect","onMessage","onDisconnect","isConnected","Error","handler","msg","source","debug","log","addListener","sendMessage","postMessage","hasListeners","hasListener","init","connectionInfo","runtime","id","undefined","methods"],"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 * Browser runtime connector module\n *\n * This is the complement to\n * {@link module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection}.\n * @module @aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/browser-runtime\n * @export BrowserRuntimeConnection\n * @example import { BrowserRuntimeConnection } from '@aeternity/aepp-sdk'\n */\nimport stampit from '@stamp/it'\n\nimport WalletConnection from '.'\nimport { getBrowserAPI } from '../helpers'\n\n/**\n * Disconnect\n * @function disconnect\n * @instance\n * @rtype () => void\n * @return {void}\n */\nfunction disconnect () {\n try {\n this.port.disconnect()\n } catch (e) {\n console.warning('From BrowserRuntimeConnection: ', e)\n }\n}\n\n/**\n * Connect\n * @function connect\n * @instance\n * @rtype (onMessage: Function, onDisconnect: Function) => void\n * @param {Function} onMessage - Message handler\n * @param {Function} onDisconnect - trigger when runtime connection in closed\n * @return {void}\n */\nfunction connect (onMessage, onDisconnect) {\n if (this.isConnected()) throw new Error('You already connected')\n this.handler = (msg, source) => {\n if (this.debug) console.log('Receive message: ', msg)\n onMessage(msg, source)\n }\n this.port.onMessage.addListener(this.handler)\n this.port.onDisconnect.addListener(() => {\n typeof onDisconnect === 'function' && onDisconnect({}, this)\n this.port.disconnect()\n })\n}\n\n/**\n * Send message\n * @function sendMessage\n * @instance\n * @rtype (msg: Object) => void\n * @param {Object} msg - Message\n * @return {void}\n */\nfunction sendMessage (msg) {\n if (!this.port) throw new Error('You dont have connection. Please connect before')\n if (this.debug) console.log('Send message: ', msg)\n this.port.postMessage(msg)\n}\n\n/**\n * Check if connected\n * @function isConnected\n * @instance\n * @rtype () => Boolean\n * @return {Boolean} Is connected\n */\nfunction isConnected () {\n return typeof this.port.onMessage.hasListeners === 'function' ? this.port.onMessage.hasListeners() : this.port.onMessage.hasListener(this.handler)\n}\n\n/**\n * BrowserRuntimeConnection stamp\n * Handle browser runtime communication\n * @function\n * @alias module:@aeternity/aepp-sdk/es/utils/aepp-wallet-communication/connection/browser-runtime\n * @rtype Stamp\n * @param {Object} params={} - Initializer object\n * @param {Object} params.port - Runtime `port` object\n * @param {Object} [params.connectionInfo={}] - Connection info object\n * @param {Boolean} [params.debug=false] - Debug flag\n * @return {Object}\n */\nexport default stampit({\n init ({ connectionInfo = {}, port, debug = false }) {\n if (!getBrowserAPI().runtime) throw new Error('Runtime is not accessible in your environment')\n this.debug = debug\n this.connectionInfo = connectionInfo\n this.port = port || getBrowserAPI().runtime.connect(...[connectionInfo.id || undefined])\n },\n methods: { connect, sendMessage, disconnect, isConnected }\n}, WalletConnection)\n"],"file":"browser-runtime.js"}
|