@aeternity/aepp-sdk 10.0.0 → 11.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/README.md +15 -14
- package/dist/aepp-sdk.browser-script.js +1 -1
- package/dist/aepp-sdk.browser-script.js.LICENSE.txt +7 -27
- 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 → base.mjs} +20 -10
- package/es/account/base.mjs.map +1 -0
- package/es/account/{memory.js → memory.mjs} +29 -14
- package/es/account/memory.mjs.map +1 -0
- package/es/account/{multiple.js → multiple.mjs} +10 -9
- package/es/account/multiple.mjs.map +1 -0
- package/es/ae/{aens.js → aens.mjs} +18 -22
- package/es/ae/aens.mjs.map +1 -0
- package/es/ae/{aepp.js → aepp.mjs} +9 -9
- package/es/ae/aepp.mjs.map +1 -0
- package/es/ae/contract.mjs +159 -0
- package/es/ae/contract.mjs.map +1 -0
- package/es/ae/{index.js → index.mjs} +8 -7
- package/es/ae/index.mjs.map +1 -0
- package/es/ae/{oracle.js → oracle.mjs} +33 -16
- package/es/ae/oracle.mjs.map +1 -0
- package/es/ae/{universal.js → universal.mjs} +10 -10
- package/es/ae/universal.mjs.map +1 -0
- package/es/ae/{wallet.js → wallet.mjs} +10 -10
- package/es/ae/wallet.mjs.map +1 -0
- package/es/aepp-wallet-communication/schema.d.ts +74 -0
- package/es/bignumber.d.ts +1 -7
- package/es/chain/{index.js → index.mjs} +20 -4
- package/es/chain/index.mjs.map +1 -0
- package/es/chain/{node.js → node.mjs} +121 -73
- package/es/chain/node.mjs.map +1 -0
- package/es/channel/{handlers.js → handlers.mjs} +18 -20
- package/es/channel/handlers.mjs.map +1 -0
- package/es/channel/{index.js → index.mjs} +7 -7
- package/es/channel/index.mjs.map +1 -0
- package/es/channel/{internal.js → internal.mjs} +49 -32
- package/es/channel/internal.mjs.map +1 -0
- package/es/contract/aci.mjs +477 -0
- package/es/contract/aci.mjs.map +1 -0
- package/es/contract/compiler.mjs +115 -0
- package/es/contract/compiler.mjs.map +1 -0
- package/es/contract/ga/helpers.mjs +30 -0
- package/es/contract/ga/helpers.mjs.map +1 -0
- package/es/contract/ga/{index.js → index.mjs} +36 -28
- package/es/contract/ga/index.mjs.map +1 -0
- package/es/errors.d.ts +284 -0
- package/es/index.mjs +57 -0
- package/es/index.mjs.map +1 -0
- package/es/node-pool/{index.js → index.mjs} +11 -10
- package/es/node-pool/index.mjs.map +1 -0
- package/es/{node.js → node.mjs} +9 -8
- package/es/node.mjs.map +1 -0
- package/es/tx/builder/field-types.mjs +74 -0
- package/es/tx/builder/field-types.mjs.map +1 -0
- package/es/tx/builder/{helpers.js → helpers.mjs} +114 -56
- package/es/tx/builder/helpers.mjs.map +1 -0
- package/es/tx/builder/{index.js → index.mjs} +79 -68
- package/es/tx/builder/index.mjs.map +1 -0
- package/es/tx/builder/{schema.js → schema.mjs} +11 -65
- package/es/tx/builder/schema.mjs.map +1 -0
- package/es/tx/{index.js → index.mjs} +5 -2
- package/es/tx/index.mjs.map +1 -0
- package/es/tx/{tx-object.js → tx-object.mjs} +22 -15
- package/es/tx/tx-object.mjs.map +1 -0
- package/es/tx/{tx.js → tx.mjs} +15 -14
- package/es/tx/tx.mjs.map +1 -0
- package/es/tx/{validator.js → validator.mjs} +72 -33
- package/es/tx/validator.mjs.map +1 -0
- package/es/typings/blakejs/index.d.mjs +2 -0
- package/es/typings/blakejs/{index.d.js.map → index.d.mjs.map} +1 -1
- package/es/utils/aepp-wallet-communication/connection/{browser-runtime.js → browser-runtime.mjs} +7 -6
- package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/connection/{browser-window-message.js → browser-window-message.mjs} +10 -11
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/connection/{index.js → index.mjs} +5 -2
- package/es/utils/aepp-wallet-communication/connection/index.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/{content-script-bridge.js → content-script-bridge.mjs} +6 -5
- package/es/utils/aepp-wallet-communication/content-script-bridge.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/{helpers.js → helpers.mjs} +3 -14
- package/es/utils/aepp-wallet-communication/helpers.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/rpc/{aepp-rpc.js → aepp-rpc.mjs} +113 -67
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/rpc/{rpc-client.js → rpc-client.mjs} +14 -9
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/rpc/{wallet-rpc.js → wallet-rpc.mjs} +71 -63
- package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/schema.mjs +102 -0
- package/es/utils/aepp-wallet-communication/schema.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/{wallet-detector.js → wallet-detector.mjs} +6 -5
- package/es/utils/aepp-wallet-communication/wallet-detector.mjs.map +1 -0
- package/es/utils/{amount-formatter.js → amount-formatter.mjs} +14 -7
- package/es/utils/amount-formatter.mjs.map +1 -0
- package/es/utils/{async-init.js → async-init.mjs} +8 -11
- package/es/utils/async-init.mjs.map +1 -0
- package/es/utils/{bignumber.js → bignumber.mjs} +2 -9
- package/es/utils/bignumber.mjs.map +1 -0
- package/es/utils/{bytes.js → bytes.mjs} +16 -8
- package/es/utils/bytes.mjs.map +1 -0
- package/es/utils/{crypto-ts.js → crypto-ts.mjs} +11 -3
- package/es/utils/crypto-ts.mjs.map +1 -0
- package/es/utils/{crypto.js → crypto.mjs} +40 -105
- package/es/utils/crypto.mjs.map +1 -0
- package/es/utils/errors.mjs +689 -0
- package/es/utils/errors.mjs.map +1 -0
- package/es/utils/{hd-wallet.js → hd-wallet.mjs} +33 -34
- package/es/utils/hd-wallet.mjs.map +1 -0
- package/es/utils/{json-big.js → json-big.mjs} +1 -1
- package/es/utils/{json-big.js.map → json-big.mjs.map} +1 -1
- package/es/utils/{keystore.js → keystore.mjs} +63 -51
- package/es/utils/keystore.mjs.map +1 -0
- package/es/utils/{mptree.js → mptree.mjs} +21 -12
- package/es/utils/mptree.mjs.map +1 -0
- package/es/utils/{other.js → other.mjs} +2 -2
- package/es/utils/other.mjs.map +1 -0
- package/es/utils/{semver-satisfies.js → semver-satisfies.mjs} +1 -1
- package/es/utils/{semver-satisfies.js.map → semver-satisfies.mjs.map} +1 -1
- package/es/utils/{string.js → string.mjs} +1 -1
- package/es/utils/{string.js.map → string.mjs.map} +1 -1
- package/es/utils/{swagger.js → swagger.mjs} +46 -14
- package/es/utils/swagger.mjs.map +1 -0
- package/package.json +46 -55
- package/src/account/memory.js +13 -8
- package/src/account/multiple.js +12 -4
- package/src/ae/aens.js +12 -17
- package/src/ae/aepp.js +2 -2
- package/src/ae/contract.js +15 -152
- package/src/ae/index.js +2 -1
- package/src/ae/oracle.js +25 -10
- package/src/ae/universal.js +2 -2
- package/src/ae/wallet.js +2 -2
- package/src/chain/index.js +21 -2
- package/src/chain/node.js +80 -53
- package/src/channel/handlers.js +20 -17
- package/src/channel/internal.js +30 -24
- package/src/contract/{aci/index.js → aci.js} +152 -93
- package/src/contract/compiler.js +22 -117
- package/src/contract/ga/helpers.js +7 -5
- package/src/contract/ga/index.js +27 -24
- package/src/index.js +7 -8
- package/src/node-pool/index.js +9 -8
- package/src/node.js +5 -7
- package/src/tx/builder/field-types.js +61 -0
- package/src/tx/builder/helpers.js +113 -58
- package/src/tx/builder/index.js +39 -34
- package/src/tx/builder/schema.js +11 -25
- package/src/tx/tx-object.js +10 -9
- package/src/tx/tx.js +17 -8
- package/src/tx/validator.js +25 -5
- package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +8 -3
- package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +10 -6
- package/src/utils/aepp-wallet-communication/content-script-bridge.js +5 -4
- package/src/utils/aepp-wallet-communication/helpers.js +2 -12
- package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +81 -55
- package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +15 -6
- package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +60 -49
- package/src/utils/aepp-wallet-communication/schema.ts +80 -0
- package/src/utils/aepp-wallet-communication/wallet-detector.js +3 -2
- package/src/utils/amount-formatter.ts +4 -3
- package/src/utils/async-init.js +10 -6
- package/src/utils/bignumber.ts +1 -9
- package/src/utils/bytes.ts +3 -2
- package/src/utils/crypto-ts.ts +2 -2
- package/src/utils/crypto.js +9 -92
- package/src/utils/errors.ts +683 -0
- package/src/utils/hd-wallet.js +11 -26
- package/src/utils/keystore.js +47 -51
- package/src/utils/mptree.ts +12 -6
- package/src/utils/swagger.js +67 -44
- package/CHANGELOG.md +0 -1603
- package/es/account/base.js.map +0 -1
- package/es/account/memory.js.map +0 -1
- package/es/account/multiple.js.map +0 -1
- package/es/ae/aens.js.map +0 -1
- package/es/ae/aepp.js.map +0 -1
- package/es/ae/contract.js +0 -312
- package/es/ae/contract.js.map +0 -1
- package/es/ae/index.js.map +0 -1
- package/es/ae/oracle.js.map +0 -1
- package/es/ae/universal.js.map +0 -1
- package/es/ae/wallet.js.map +0 -1
- package/es/chain/index.js.map +0 -1
- package/es/chain/node.js.map +0 -1
- package/es/channel/handlers.js.map +0 -1
- package/es/channel/index.js.map +0 -1
- package/es/channel/internal.js.map +0 -1
- package/es/contract/aci/helpers.js +0 -298
- package/es/contract/aci/helpers.js.map +0 -1
- package/es/contract/aci/index.js +0 -361
- package/es/contract/aci/index.js.map +0 -1
- package/es/contract/aci/transformation.js +0 -66
- package/es/contract/aci/transformation.js.map +0 -1
- package/es/contract/compiler.js +0 -244
- package/es/contract/compiler.js.map +0 -1
- package/es/contract/ga/helpers.js +0 -22
- package/es/contract/ga/helpers.js.map +0 -1
- package/es/contract/ga/index.js.map +0 -1
- package/es/contract/index.js +0 -162
- package/es/contract/index.js.map +0 -1
- package/es/index.js +0 -57
- package/es/index.js.map +0 -1
- package/es/node-pool/index.js.map +0 -1
- package/es/node.js.map +0 -1
- package/es/tx/builder/helpers.js.map +0 -1
- package/es/tx/builder/index.js.map +0 -1
- package/es/tx/builder/schema.js.map +0 -1
- package/es/tx/index.js.map +0 -1
- package/es/tx/tx-object.js.map +0 -1
- package/es/tx/tx.js.map +0 -1
- package/es/tx/validator.js.map +0 -1
- package/es/typings/blakejs/index.d.js +0 -2
- package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +0 -1
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +0 -1
- package/es/utils/aepp-wallet-communication/connection/index.js.map +0 -1
- package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +0 -1
- package/es/utils/aepp-wallet-communication/helpers.js.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js.map +0 -1
- package/es/utils/aepp-wallet-communication/schema.js +0 -107
- package/es/utils/aepp-wallet-communication/schema.js.map +0 -1
- package/es/utils/aepp-wallet-communication/wallet-detector.js.map +0 -1
- package/es/utils/amount-formatter.js.map +0 -1
- package/es/utils/async-init.js.map +0 -1
- package/es/utils/bignumber.js.map +0 -1
- package/es/utils/bytes.js.map +0 -1
- package/es/utils/crypto-ts.js.map +0 -1
- package/es/utils/crypto.js.map +0 -1
- package/es/utils/hd-wallet.js.map +0 -1
- package/es/utils/keystore.js.map +0 -1
- package/es/utils/mptree.js.map +0 -1
- package/es/utils/other.js.map +0 -1
- package/es/utils/swagger.js.map +0 -1
- package/src/contract/aci/transformation.js +0 -72
- package/src/contract/index.js +0 -163
- package/src/utils/aepp-wallet-communication/schema.js +0 -108
|
@@ -1,11 +1,21 @@
|
|
|
1
|
+
import _buffer from "buffer";
|
|
2
|
+
const {
|
|
3
|
+
Buffer: _Buffer
|
|
4
|
+
} = _buffer;
|
|
1
5
|
import BigNumber from 'bignumber.js';
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import {
|
|
8
|
-
import
|
|
6
|
+
import _rlp from 'rlp';
|
|
7
|
+
const {
|
|
8
|
+
decode: rlpDecode,
|
|
9
|
+
encode: rlpEncode
|
|
10
|
+
} = _rlp;
|
|
11
|
+
import { AE_AMOUNT_FORMATS, formatAmount } from "../../utils/amount-formatter.mjs";
|
|
12
|
+
import { hash } from "../../utils/crypto.mjs";
|
|
13
|
+
import { Field } from "./field-types.mjs";
|
|
14
|
+
import { DEFAULT_FEE, FIELD_TYPES, OBJECT_ID_TX_TYPE, TX_DESERIALIZATION_SCHEMA, TX_FEE_BASE_GAS, TX_FEE_OTHER_GAS, TX_SERIALIZATION_SCHEMA, TX_TYPE, VSN } from "./schema.mjs";
|
|
15
|
+
import { readInt, readId, readPointers, writeId, writeInt, buildPointers, encode, decode } from "./helpers.mjs";
|
|
16
|
+
import { toBytes } from "../../utils/bytes.mjs";
|
|
17
|
+
import MPTree from "../../utils/mptree.mjs";
|
|
18
|
+
import { InvalidTxParamsError, SchemaNotFoundError } from "../../utils/errors.mjs";
|
|
9
19
|
/**
|
|
10
20
|
* JavaScript-based Transaction builder
|
|
11
21
|
* @module @aeternity/aepp-sdk/es/tx/builder
|
|
@@ -26,14 +36,12 @@ function deserializeField(value, type, prefix) {
|
|
|
26
36
|
{
|
|
27
37
|
const [vm,, abi] = value;
|
|
28
38
|
return {
|
|
29
|
-
vmVersion: readInt(
|
|
30
|
-
abiVersion: readInt(
|
|
39
|
+
vmVersion: readInt(_Buffer.from([vm])),
|
|
40
|
+
abiVersion: readInt(_Buffer.from([abi]))
|
|
31
41
|
};
|
|
32
42
|
}
|
|
33
43
|
|
|
34
44
|
case FIELD_TYPES.amount:
|
|
35
|
-
return readInt(value);
|
|
36
|
-
|
|
37
45
|
case FIELD_TYPES.int:
|
|
38
46
|
return readInt(value);
|
|
39
47
|
|
|
@@ -111,11 +119,14 @@ function deserializeField(value, type, prefix) {
|
|
|
111
119
|
}, {});
|
|
112
120
|
|
|
113
121
|
default:
|
|
122
|
+
if (type.prototype instanceof Field) return type.deserialize(value);
|
|
114
123
|
return value;
|
|
115
124
|
}
|
|
116
125
|
}
|
|
117
126
|
|
|
118
|
-
function serializeField(value, type, prefix) {
|
|
127
|
+
function serializeField(value, type, prefix, params) {
|
|
128
|
+
var _value$rlpEncoded;
|
|
129
|
+
|
|
119
130
|
switch (type) {
|
|
120
131
|
case FIELD_TYPES.amount:
|
|
121
132
|
case FIELD_TYPES.int:
|
|
@@ -128,7 +139,7 @@ function serializeField(value, type, prefix) {
|
|
|
128
139
|
return value.map(writeId);
|
|
129
140
|
|
|
130
141
|
case FIELD_TYPES.bool:
|
|
131
|
-
return
|
|
142
|
+
return _Buffer.from([value ? 1 : 0]);
|
|
132
143
|
|
|
133
144
|
case FIELD_TYPES.binary:
|
|
134
145
|
return decode(value, prefix);
|
|
@@ -137,10 +148,10 @@ function serializeField(value, type, prefix) {
|
|
|
137
148
|
return decode(value, 'ss');
|
|
138
149
|
|
|
139
150
|
case FIELD_TYPES.hex:
|
|
140
|
-
return
|
|
151
|
+
return _Buffer.from(value, 'hex');
|
|
141
152
|
|
|
142
153
|
case FIELD_TYPES.signatures:
|
|
143
|
-
return value.map(
|
|
154
|
+
return value.map(_Buffer.from);
|
|
144
155
|
|
|
145
156
|
case FIELD_TYPES.payload:
|
|
146
157
|
return typeof value === 'string' && value.split('_')[0] === 'ba' ? decode(value, 'ba') : toBytes(value);
|
|
@@ -152,13 +163,13 @@ function serializeField(value, type, prefix) {
|
|
|
152
163
|
return buildPointers(value);
|
|
153
164
|
|
|
154
165
|
case FIELD_TYPES.rlpBinary:
|
|
155
|
-
return value.rlpEncoded
|
|
166
|
+
return (_value$rlpEncoded = value.rlpEncoded) !== null && _value$rlpEncoded !== void 0 ? _value$rlpEncoded : value;
|
|
156
167
|
|
|
157
168
|
case FIELD_TYPES.mptrees:
|
|
158
169
|
return value.map(t => t.serialize());
|
|
159
170
|
|
|
160
171
|
case FIELD_TYPES.ctVersion:
|
|
161
|
-
return
|
|
172
|
+
return _Buffer.from([...toBytes(value.vmVersion), 0, ...toBytes(value.abiVersion)]);
|
|
162
173
|
|
|
163
174
|
case FIELD_TYPES.callReturnType:
|
|
164
175
|
switch (value) {
|
|
@@ -176,60 +187,56 @@ function serializeField(value, type, prefix) {
|
|
|
176
187
|
}
|
|
177
188
|
|
|
178
189
|
default:
|
|
190
|
+
if (type.prototype instanceof Field) return type.serialize(value, params);
|
|
179
191
|
return value;
|
|
180
192
|
}
|
|
181
193
|
}
|
|
182
194
|
|
|
183
|
-
function validateField(value,
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
}; // All fields are required
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
if (value === undefined || value === null) return {
|
|
190
|
-
[key]: 'Field is required'
|
|
191
|
-
}; // Validate type of value
|
|
195
|
+
function validateField(value, type, prefix) {
|
|
196
|
+
// All fields are required
|
|
197
|
+
if (value === undefined || value === null) return 'Field is required'; // Validate type of value
|
|
192
198
|
|
|
193
199
|
switch (type) {
|
|
194
200
|
case FIELD_TYPES.amount:
|
|
195
201
|
case FIELD_TYPES.int:
|
|
196
202
|
{
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
}
|
|
203
|
+
if (isNaN(value) && !BigNumber.isBigNumber(value)) {
|
|
204
|
+
return `${value} is not of type Number or BigNumber`;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
if (new BigNumber(value).lt(0)) return `${value} must be >= 0`;
|
|
208
|
+
return;
|
|
202
209
|
}
|
|
203
210
|
|
|
204
211
|
case FIELD_TYPES.id:
|
|
205
212
|
{
|
|
206
213
|
const prefixes = Array.isArray(prefix) ? prefix : [prefix];
|
|
207
|
-
const p = prefixes.find(p => p === value.split('_')[0]);
|
|
208
|
-
return assert(p && PREFIX_ID_TAG[value.split('_')[0]], {
|
|
209
|
-
value,
|
|
210
|
-
prefix
|
|
211
|
-
});
|
|
212
|
-
}
|
|
213
214
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
value
|
|
218
|
-
});
|
|
215
|
+
if (!prefixes.includes(value.split('_')[0])) {
|
|
216
|
+
return `'${value}' prefix doesn't match expected prefix '${prefix}'`;
|
|
217
|
+
}
|
|
219
218
|
|
|
220
|
-
|
|
221
|
-
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
222
221
|
|
|
223
222
|
case FIELD_TYPES.ctVersion:
|
|
224
|
-
|
|
223
|
+
if (!(value !== null && value !== void 0 && value.abiVersion) || !(value !== null && value !== void 0 && value.vmVersion)) {
|
|
224
|
+
return 'Value must be an object with "vmVersion" and "abiVersion" fields';
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
return;
|
|
225
228
|
|
|
226
229
|
case FIELD_TYPES.pointers:
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
+
if (!Array.isArray(value)) return 'Value must be of type Array';
|
|
231
|
+
|
|
232
|
+
if (value.some(p => !(p !== null && p !== void 0 && p.key) || !(p !== null && p !== void 0 && p.id))) {
|
|
233
|
+
return 'Value must contains only object\'s like \'{key: "account_pubkey", id: "ak_lkamsflkalsdalksdlasdlasdlamd"}\'';
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
if (value.length > 32) {
|
|
237
|
+
return `Expected 32 pointers or less, got ${value.length} instead`;
|
|
238
|
+
}
|
|
230
239
|
|
|
231
|
-
default:
|
|
232
|
-
return {};
|
|
233
240
|
}
|
|
234
241
|
}
|
|
235
242
|
|
|
@@ -401,13 +408,17 @@ export function validateParams(params, schema, _ref8) {
|
|
|
401
408
|
let {
|
|
402
409
|
excludeKeys = []
|
|
403
410
|
} = _ref8;
|
|
404
|
-
return
|
|
411
|
+
return Object.fromEntries(schema // TODO: allow optional keys in schema
|
|
412
|
+
.filter(_ref9 => {
|
|
405
413
|
let [key] = _ref9;
|
|
406
|
-
return !excludeKeys.includes(key) &&
|
|
407
|
-
}).
|
|
414
|
+
return !excludeKeys.includes(key) && !['payload', 'nameFee', 'deposit'].includes(key);
|
|
415
|
+
}).map(_ref10 => {
|
|
408
416
|
let [key, type, prefix] = _ref10;
|
|
409
|
-
return
|
|
410
|
-
}
|
|
417
|
+
return [key, validateField(params[key], type, prefix)];
|
|
418
|
+
}).filter(_ref11 => {
|
|
419
|
+
let [, message] = _ref11;
|
|
420
|
+
return message;
|
|
421
|
+
}));
|
|
411
422
|
}
|
|
412
423
|
/**
|
|
413
424
|
* Build binary transaction
|
|
@@ -427,8 +438,8 @@ export function buildRawTx(params, schema) {
|
|
|
427
438
|
excludeKeys = [],
|
|
428
439
|
denomination = AE_AMOUNT_FORMATS.AETTOS
|
|
429
440
|
} = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
430
|
-
const filteredSchema = schema.filter(
|
|
431
|
-
let [key] =
|
|
441
|
+
const filteredSchema = schema.filter(_ref12 => {
|
|
442
|
+
let [key] = _ref12;
|
|
432
443
|
return !excludeKeys.includes(key);
|
|
433
444
|
}); // Transform `amount` type fields to `aettos`
|
|
434
445
|
|
|
@@ -441,12 +452,12 @@ export function buildRawTx(params, schema) {
|
|
|
441
452
|
});
|
|
442
453
|
|
|
443
454
|
if (Object.keys(valid).length) {
|
|
444
|
-
throw new
|
|
455
|
+
throw new InvalidTxParamsError('Transaction build error. ' + JSON.stringify(valid));
|
|
445
456
|
}
|
|
446
457
|
|
|
447
|
-
return filteredSchema.map(
|
|
448
|
-
let [key, fieldType, prefix] =
|
|
449
|
-
return serializeField(params[key], fieldType, prefix);
|
|
458
|
+
return filteredSchema.map(_ref13 => {
|
|
459
|
+
let [key, fieldType, prefix] = _ref13;
|
|
460
|
+
return serializeField(params[key], fieldType, prefix, params);
|
|
450
461
|
});
|
|
451
462
|
}
|
|
452
463
|
/**
|
|
@@ -459,8 +470,8 @@ export function buildRawTx(params, schema) {
|
|
|
459
470
|
*/
|
|
460
471
|
|
|
461
472
|
export function unpackRawTx(binary, schema) {
|
|
462
|
-
return schema.reduce((acc,
|
|
463
|
-
let [key, fieldType, prefix] =
|
|
473
|
+
return schema.reduce((acc, _ref14, index) => {
|
|
474
|
+
let [key, fieldType, prefix] = _ref14;
|
|
464
475
|
return Object.assign(acc, {
|
|
465
476
|
[key]: deserializeField(binary[index], fieldType, prefix)
|
|
466
477
|
});
|
|
@@ -474,22 +485,22 @@ export function unpackRawTx(binary, schema) {
|
|
|
474
485
|
* @return {Object} Schema
|
|
475
486
|
*/
|
|
476
487
|
|
|
477
|
-
const getSchema =
|
|
488
|
+
const getSchema = _ref15 => {
|
|
478
489
|
let {
|
|
479
490
|
vsn,
|
|
480
491
|
objId,
|
|
481
492
|
type
|
|
482
|
-
} =
|
|
493
|
+
} = _ref15;
|
|
483
494
|
const isDeserialize = !!objId;
|
|
484
495
|
const firstKey = isDeserialize ? objId : type;
|
|
485
496
|
const schema = isDeserialize ? TX_DESERIALIZATION_SCHEMA : TX_SERIALIZATION_SCHEMA;
|
|
486
497
|
|
|
487
498
|
if (!schema[firstKey]) {
|
|
488
|
-
throw new
|
|
499
|
+
throw new SchemaNotFoundError(`Transaction ${isDeserialize ? 'deserialization' : 'serialization'} not implemented for ${isDeserialize ? 'tag ' + objId : type}`);
|
|
489
500
|
}
|
|
490
501
|
|
|
491
502
|
if (!schema[firstKey][vsn]) {
|
|
492
|
-
throw new
|
|
503
|
+
throw new SchemaNotFoundError(`Transaction ${isDeserialize ? 'deserialization' : 'serialization'} not implemented for ${isDeserialize ? 'tag ' + objId : type} version ${vsn}`);
|
|
493
504
|
}
|
|
494
505
|
|
|
495
506
|
return schema[firstKey][vsn];
|
|
@@ -592,4 +603,4 @@ export default {
|
|
|
592
603
|
validateParams,
|
|
593
604
|
buildTxHash
|
|
594
605
|
};
|
|
595
|
-
//# sourceMappingURL=index.
|
|
606
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/tx/builder/index.js"],"names":["BigNumber","AE_AMOUNT_FORMATS","formatAmount","hash","Field","DEFAULT_FEE","FIELD_TYPES","OBJECT_ID_TX_TYPE","TX_DESERIALIZATION_SCHEMA","TX_FEE_BASE_GAS","TX_FEE_OTHER_GAS","TX_SERIALIZATION_SCHEMA","TX_TYPE","VSN","readInt","readId","readPointers","writeId","writeInt","buildPointers","encode","decode","toBytes","MPTree","InvalidTxParamsError","SchemaNotFoundError","ORACLE_TTL_TYPES","delta","block","deserializeField","value","type","prefix","ctVersion","vm","abi","vmVersion","from","abiVersion","amount","int","id","ids","map","bool","binary","stateTree","string","toString","payload","pointers","rlpBinary","unpackTx","rlpBinaries","v","rawBinary","hex","offChainUpdates","callStack","mptrees","t","callReturnType","sophiaCodeTypeInfo","reduce","acc","funHash","fnName","argType","outType","prototype","deserialize","serializeField","params","signatures","split","rlpEncoded","serialize","validateField","undefined","isNaN","isBigNumber","lt","prefixes","Array","isArray","includes","some","p","key","length","transformParams","schema","denomination","filter","_","schemaKeys","k","Object","entries","getOracleRelativeTtl","txType","ttlKey","oracleRegister","oracleExtend","oracleQuery","oracleResponse","calculateMinFee","gas","vsn","multiplier","times","actualFee","buildFee","fee","expected","eq","txWithOutFee","buildTx","txSize","plus","relativeTtl","innerTxSize","gaMeta","payingFor","tx","encodedTx","calculateFee","showWarning","console","warn","validateParams","excludeKeys","fromEntries","message","buildRawTx","AETTOS","filteredSchema","valid","keys","JSON","stringify","fieldType","unpackRawTx","index","assign","getSchema","objId","isDeserialize","firstKey","tag","e","rlpEncode","txObject","fromRlpBinary","rlpDecode","buildTxHash","rawTx","data","startsWith"],"mappings":"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","sourcesContent":["import BigNumber from 'bignumber.js'\nimport { decode as rlpDecode, encode as rlpEncode } from 'rlp'\nimport { AE_AMOUNT_FORMATS, formatAmount } from '../../utils/amount-formatter'\nimport { hash } from '../../utils/crypto'\nimport { Field } from './field-types'\n\nimport {\n DEFAULT_FEE,\n FIELD_TYPES,\n OBJECT_ID_TX_TYPE,\n TX_DESERIALIZATION_SCHEMA,\n TX_FEE_BASE_GAS,\n TX_FEE_OTHER_GAS,\n TX_SERIALIZATION_SCHEMA,\n TX_TYPE,\n VSN\n} from './schema'\nimport {\n readInt,\n readId,\n readPointers,\n writeId,\n writeInt,\n buildPointers,\n encode,\n decode\n} from './helpers'\nimport { toBytes } from '../../utils/bytes'\nimport MPTree from '../../utils/mptree'\nimport { InvalidTxParamsError, SchemaNotFoundError } from '../../utils/errors'\n\n/**\n * JavaScript-based Transaction builder\n * @module @aeternity/aepp-sdk/es/tx/builder\n * @export TxBuilder\n * @example import { TxBuilder } from '@aeternity/aepp-sdk'\n */\n\nconst ORACLE_TTL_TYPES = {\n delta: 'delta',\n block: 'block'\n}\n\n// SERIALIZE AND DESERIALIZE PART\nfunction deserializeField (value, type, prefix) {\n if (!value) return ''\n switch (type) {\n case FIELD_TYPES.ctVersion: {\n const [vm, , abi] = value\n return { vmVersion: readInt(Buffer.from([vm])), abiVersion: readInt(Buffer.from([abi])) }\n }\n case FIELD_TYPES.amount:\n case FIELD_TYPES.int:\n return readInt(value)\n case FIELD_TYPES.id:\n return readId(value)\n case FIELD_TYPES.ids:\n return value.map(readId)\n case FIELD_TYPES.bool:\n return value[0] === 1\n case FIELD_TYPES.binary:\n return encode(value, prefix)\n case FIELD_TYPES.stateTree:\n return encode(value, 'ss')\n case FIELD_TYPES.string:\n return value.toString()\n case FIELD_TYPES.payload:\n return encode(value, 'ba')\n case FIELD_TYPES.pointers:\n return readPointers(value)\n case FIELD_TYPES.rlpBinary:\n return unpackTx(value, true)\n case FIELD_TYPES.rlpBinaries:\n return value.map(v => unpackTx(v, true))\n case FIELD_TYPES.rawBinary:\n return value\n case FIELD_TYPES.hex:\n return value.toString('hex')\n case FIELD_TYPES.offChainUpdates:\n return value.map(v => unpackTx(v, true))\n case FIELD_TYPES.callStack:\n // TODO: fix this\n return [readInt(value)]\n case FIELD_TYPES.mptrees:\n return value.map(t => new MPTree(t))\n case FIELD_TYPES.callReturnType:\n switch (readInt(value)) {\n case '0': return 'ok'\n case '1': return 'error'\n case '2': return 'revert'\n default: return value\n }\n case FIELD_TYPES.sophiaCodeTypeInfo:\n return value\n .reduce(\n (acc, [funHash, fnName, argType, outType]) =>\n ({ ...acc, [fnName.toString()]: { funHash, argType, outType } }),\n {}\n )\n default:\n if (type.prototype instanceof Field) return type.deserialize(value)\n return value\n }\n}\n\nfunction serializeField (value, type, prefix, params) {\n switch (type) {\n case FIELD_TYPES.amount:\n case FIELD_TYPES.int:\n return writeInt(value)\n case FIELD_TYPES.id:\n return writeId(value)\n case FIELD_TYPES.ids:\n return value.map(writeId)\n case FIELD_TYPES.bool:\n return Buffer.from([value ? 1 : 0])\n case FIELD_TYPES.binary:\n return decode(value, prefix)\n case FIELD_TYPES.stateTree:\n return decode(value, 'ss')\n case FIELD_TYPES.hex:\n return Buffer.from(value, 'hex')\n case FIELD_TYPES.signatures:\n return value.map(Buffer.from)\n case FIELD_TYPES.payload:\n return typeof value === 'string' && value.split('_')[0] === 'ba'\n ? decode(value, 'ba')\n : toBytes(value)\n case FIELD_TYPES.string:\n return toBytes(value)\n case FIELD_TYPES.pointers:\n return buildPointers(value)\n case FIELD_TYPES.rlpBinary:\n return value.rlpEncoded ?? value\n case FIELD_TYPES.mptrees:\n return value.map(t => t.serialize())\n case FIELD_TYPES.ctVersion:\n return Buffer.from([...toBytes(value.vmVersion), 0, ...toBytes(value.abiVersion)])\n case FIELD_TYPES.callReturnType:\n switch (value) {\n case 'ok': return writeInt(0)\n case 'error': return writeInt(1)\n case 'revert': return writeInt(2)\n default: return value\n }\n default:\n if (type.prototype instanceof Field) return type.serialize(value, params)\n return value\n }\n}\n\nfunction validateField (value, type, prefix) {\n // All fields are required\n if (value === undefined || value === null) return 'Field is required'\n\n // Validate type of value\n switch (type) {\n case FIELD_TYPES.amount:\n case FIELD_TYPES.int: {\n if (isNaN(value) && !BigNumber.isBigNumber(value)) {\n return `${value} is not of type Number or BigNumber`\n }\n if (new BigNumber(value).lt(0)) return `${value} must be >= 0`\n return\n }\n case FIELD_TYPES.id: {\n const prefixes = Array.isArray(prefix) ? prefix : [prefix]\n if (!prefixes.includes(value.split('_')[0])) {\n return `'${value}' prefix doesn't match expected prefix '${prefix}'`\n }\n return\n }\n case FIELD_TYPES.ctVersion:\n if (!value?.abiVersion || !value?.vmVersion) {\n return 'Value must be an object with \"vmVersion\" and \"abiVersion\" fields'\n }\n return\n case FIELD_TYPES.pointers:\n if (!Array.isArray(value)) return 'Value must be of type Array'\n if (value.some(p => !p?.key || !p?.id)) {\n return 'Value must contains only object\\'s like \\'{key: \"account_pubkey\", id: \"ak_lkamsflkalsdalksdlasdlasdlamd\"}\\''\n }\n if (value.length > 32) {\n return `Expected 32 pointers or less, got ${value.length} instead`\n }\n }\n}\n\nfunction transformParams (params, schema, { denomination } = {}) {\n params = schema\n .filter(([_, t]) => t === FIELD_TYPES.amount)\n .reduce(\n (acc, [key]) => ({ ...params, [key]: formatAmount(params[key], { denomination }) }),\n params\n )\n const schemaKeys = schema.map(([k]) => k)\n return Object\n .entries(params)\n .reduce(\n (acc, [key, value]) => {\n if (schemaKeys.includes(key)) acc[key] = value\n if (['oracleTtl', 'queryTtl', 'responseTtl'].includes(key)) {\n acc[`${key}Type`] = value.type === ORACLE_TTL_TYPES.delta ? 0 : 1\n acc[`${key}Value`] = value.value\n }\n return acc\n },\n {}\n )\n}\n\n// INTERFACE\n\nfunction getOracleRelativeTtl (params, txType) {\n const ttlKey = {\n [TX_TYPE.oracleRegister]: 'oracleTtl',\n [TX_TYPE.oracleExtend]: 'oracleTtl',\n [TX_TYPE.oracleQuery]: 'queryTtl',\n [TX_TYPE.oracleResponse]: 'responseTtl'\n }[txType]\n\n if (params[ttlKey] || params[`${ttlKey}Value`]) {\n return params[`${ttlKey}Value`] || params[ttlKey].value\n }\n return 1\n}\n\n/**\n * Calculate min fee\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder/index\n * @rtype (txType, { gas = 0, params }) => String\n * @param {String} txType - Transaction type\n * @param {Options} options - Options object\n * @param {String|Number} options.gas - Gas amount\n * @param {Object} options.params - Tx params\n * @return {String|Number}\n * @example calculateMinFee('spendTx', { gas, params })\n */\nexport function calculateMinFee (txType, { gas = 0, params, vsn }) {\n const multiplier = BigNumber(1e9) // 10^9 GAS_PRICE\n if (!params) return BigNumber(DEFAULT_FEE).times(multiplier).toString(10)\n\n let actualFee = buildFee(txType, { params: { ...params, fee: 0 }, multiplier, gas, vsn })\n let expected = BigNumber(0)\n\n while (!actualFee.eq(expected)) {\n actualFee = buildFee(txType, { params: { ...params, fee: actualFee }, multiplier, gas, vsn })\n expected = actualFee\n }\n return expected.toString(10)\n}\n\n/**\n * Calculate fee based on tx type and params\n * @param txType\n * @param params\n * @param gas\n * @param multiplier\n * @param vsn\n * @return {BigNumber}\n */\nfunction buildFee (txType, { params, gas = 0, multiplier, vsn }) {\n const { rlpEncoded: txWithOutFee } = buildTx({ ...params }, txType, { vsn })\n const txSize = txWithOutFee.length\n return TX_FEE_BASE_GAS(txType)\n .plus(TX_FEE_OTHER_GAS(txType, txSize, {\n relativeTtl: getOracleRelativeTtl(params, txType),\n innerTxSize: [TX_TYPE.gaMeta, TX_TYPE.payingFor].includes(txType)\n ? params.tx.tx.encodedTx.rlpEncoded.length\n : 0\n }))\n .times(multiplier)\n}\n\n/**\n * Calculate fee\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @rtype (fee, txType, gas = 0) => String\n * @param {String|Number} fee - fee\n * @param {String} txType - Transaction type\n * @param {Options} options - Options object\n * @param {String|Number} options.gas - Gas amount\n * @param {Object} options.params - Tx params\n * @return {String|Number}\n * @example calculateFee(null, 'spendTx', { gas, params })\n */\nexport function calculateFee (fee = 0, txType, { gas = 0, params, showWarning = true, vsn } = {}) {\n if (!params && showWarning) console.warn(`Can't build transaction fee, we will use DEFAULT_FEE(${DEFAULT_FEE})`)\n\n return fee || calculateMinFee(txType, { params, gas, vsn })\n}\n\n/**\n * Validate transaction params\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @param {Object} params Object with tx params\n * @param {Array} schema Transaction schema\n * @param {Array} excludeKeys Array of keys to exclude for validation\n * @return {Object} Object with validation errors\n */\nexport function validateParams (params, schema, { excludeKeys = [] }) {\n return Object.fromEntries(\n schema\n // TODO: allow optional keys in schema\n .filter(([key]) => !excludeKeys.includes(key) &&\n !['payload', 'nameFee', 'deposit'].includes(key))\n .map(([key, type, prefix]) => [key, validateField(params[key], type, prefix)])\n .filter(([, message]) => message)\n )\n}\n\n/**\n * Build binary transaction\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @param {Object} params Object with tx params\n * @param {Array} schema Transaction schema\n * @param {Object} [options={}] options\n * @param {String[]} [options.excludeKeys=[]] Array of keys to exclude for validation and build\n * @param {String} [options.denomination='aettos'] Denomination of amounts\n * @throws {Error} Validation error\n * @return {Array} Array with binary fields of transaction\n */\nexport function buildRawTx (\n params,\n schema,\n { excludeKeys = [], denomination = AE_AMOUNT_FORMATS.AETTOS } = {}\n) {\n const filteredSchema = schema.filter(([key]) => !excludeKeys.includes(key))\n\n // Transform `amount` type fields to `aettos`\n params = transformParams(params, filteredSchema, { denomination })\n // Validation\n const valid = validateParams(params, schema, { excludeKeys })\n if (Object.keys(valid).length) {\n throw new InvalidTxParamsError('Transaction build error. ' + JSON.stringify(valid))\n }\n\n return filteredSchema\n .map(([key, fieldType, prefix]) => serializeField(params[key], fieldType, prefix, params))\n}\n\n/**\n * Unpack binary transaction\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @param {Array} binary Array with binary transaction field's\n * @param {Array} schema Transaction schema\n * @return {Object} Object with transaction field's\n */\nexport function unpackRawTx (binary, schema) {\n return schema\n .reduce(\n (\n acc,\n [key, fieldType, prefix],\n index\n ) => Object.assign(acc, { [key]: deserializeField(binary[index], fieldType, prefix) }),\n {}\n )\n}\n\n/**\n * Get transaction serialization/deserialization schema\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @param {{ vsn: String, objId: Number, type: String }}\n * @throws {Error} Schema not found error\n * @return {Object} Schema\n */\nconst getSchema = ({ vsn, objId, type }) => {\n const isDeserialize = !!objId\n const firstKey = isDeserialize ? objId : type\n const schema = isDeserialize ? TX_DESERIALIZATION_SCHEMA : TX_SERIALIZATION_SCHEMA\n\n if (!schema[firstKey]) {\n throw new SchemaNotFoundError(`Transaction ${isDeserialize ? 'deserialization' : 'serialization'} not implemented for ${isDeserialize ? 'tag ' + objId : type}`)\n }\n if (!schema[firstKey][vsn]) {\n throw new SchemaNotFoundError(`Transaction ${isDeserialize ? 'deserialization' : 'serialization'} not implemented for ${isDeserialize ? 'tag ' + objId : type} version ${vsn}`)\n }\n return schema[firstKey][vsn]\n}\n\n/**\n * Build transaction hash\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @param {Object} params Object with tx params\n * @param {String} type Transaction type\n * @param {Object} [options={}] options\n * @param {String[]} [options.excludeKeys] Array of keys to exclude for validation and build\n * @param {String} [options.prefix] Prefix of transaction\n * @throws {Error} Validation error\n * @returns {Object} object\n * @returns {String} object.tx Base64Check transaction hash with 'tx_' prefix\n * @returns {Buffer} object.rlpEncoded rlp encoded transaction\n * @returns {Array<Buffer>} object.binary binary transaction\n */\nexport function buildTx (\n params,\n type,\n { excludeKeys = [], prefix = 'tx', vsn = VSN, denomination = AE_AMOUNT_FORMATS.AETTOS } = {}\n) {\n const [schema, tag] = getSchema({ type, vsn })\n const binary = buildRawTx(\n { ...params, VSN: vsn, tag },\n schema,\n { excludeKeys, denomination: params.denomination || denomination }\n ).filter(e => e !== undefined)\n\n const rlpEncoded = rlpEncode(binary)\n const tx = encode(rlpEncoded, prefix)\n\n return { tx, rlpEncoded, binary, txObject: unpackRawTx(binary, schema) }\n}\n\n/**\n * Unpack transaction hash\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @param {String|Buffer} encodedTx String or RLP encoded transaction array\n * (if fromRlpBinary flag is true)\n * @param {Boolean} fromRlpBinary Unpack from RLP encoded transaction (default: false)\n * @param {String} prefix - Prefix of data\n * @returns {Object} object\n * @returns {Object} object.tx Object with transaction param's\n * @returns {Buffer} object.rlpEncoded rlp encoded transaction\n * @returns {Array<Buffer>} object.binary binary transaction\n */\nexport function unpackTx (encodedTx, fromRlpBinary = false, prefix = 'tx') {\n const rlpEncoded = fromRlpBinary ? encodedTx : decode(encodedTx, prefix)\n const binary = rlpDecode(rlpEncoded)\n\n const objId = readInt(binary[0])\n const vsn = readInt(binary[1])\n const [schema] = getSchema({ objId, vsn })\n\n return { txType: OBJECT_ID_TX_TYPE[objId], tx: unpackRawTx(binary, schema), rlpEncoded, binary }\n}\n\n/**\n * Build a transaction hash\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @param {String | Buffer} rawTx base64 or rlp encoded transaction\n * @return {String} Transaction hash\n */\nexport function buildTxHash (rawTx) {\n const data = typeof rawTx === 'string' && rawTx.startsWith('tx_') ? decode(rawTx, 'tx') : rawTx\n return encode(hash(data), 'th')\n}\n\nexport default {\n calculateMinFee,\n calculateFee,\n unpackTx,\n unpackRawTx,\n buildTx,\n buildRawTx,\n validateParams,\n buildTxHash\n}\n"],"file":"index.mjs"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
// # RLP version number
|
|
8
8
|
// # https://github.com/aeternity/protocol/blob/master/serializations.md#binary-serialization
|
|
9
9
|
import BigNumber from 'bignumber.js';
|
|
10
|
+
import { Name, NameId, NameFee, Deposit } from "./field-types.mjs";
|
|
10
11
|
export const VSN = 1;
|
|
11
12
|
export const VSN_2 = 2; // # TRANSACTION DEFAULT TTL
|
|
12
13
|
|
|
@@ -26,9 +27,8 @@ export const RESPONSE_TTL = {
|
|
|
26
27
|
value: 10
|
|
27
28
|
}; // # CONTRACT
|
|
28
29
|
|
|
29
|
-
export const DEPOSIT = 0;
|
|
30
30
|
export const AMOUNT = 0;
|
|
31
|
-
export const
|
|
31
|
+
export const GAS_MAX = 1600000 - 21000;
|
|
32
32
|
export const MIN_GAS_PRICE = 1e9;
|
|
33
33
|
export const MAX_AUTH_FUN_GAS = 50000;
|
|
34
34
|
export const DRY_RUN_ACCOUNT = {
|
|
@@ -42,8 +42,7 @@ export const NAME_TTL = 180000; // # max number of block into the future that th
|
|
|
42
42
|
|
|
43
43
|
export const NAME_MAX_TTL = 36000;
|
|
44
44
|
export const NAME_MAX_CLIENT_TTL = 84600;
|
|
45
|
-
export const CLIENT_TTL = NAME_MAX_CLIENT_TTL;
|
|
46
|
-
export const NAME_FEE = 0; // # see https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L67
|
|
45
|
+
export const CLIENT_TTL = NAME_MAX_CLIENT_TTL; // # see https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L67
|
|
47
46
|
|
|
48
47
|
export const NAME_FEE_MULTIPLIER = 1e14; // 100000000000000
|
|
49
48
|
|
|
@@ -244,7 +243,6 @@ export const TX_TYPE = {
|
|
|
244
243
|
nameserviceTree: 'nameserviceTree',
|
|
245
244
|
oraclesTree: 'oraclesTree',
|
|
246
245
|
accountsTree: 'accountsTree',
|
|
247
|
-
// GA ACCOUNTS
|
|
248
246
|
gaAttach: 'gaAttach',
|
|
249
247
|
gaMeta: 'gaMeta',
|
|
250
248
|
payingFor: 'payingFor',
|
|
@@ -335,7 +333,6 @@ export const OBJECT_ID_TX_TYPE = {
|
|
|
335
333
|
[OBJECT_TAG_NAMESERVICE_TREE]: TX_TYPE.nameserviceTree,
|
|
336
334
|
[OBJECT_TAG_ORACLES_TREE]: TX_TYPE.oraclesTree,
|
|
337
335
|
[OBJECT_TAG_ACCOUNTS_TREE]: TX_TYPE.accountsTree,
|
|
338
|
-
// GA Accounts
|
|
339
336
|
[OBJECT_TAG_GA_ATTACH]: TX_TYPE.gaAttach,
|
|
340
337
|
[OBJECT_TAG_GA_META]: TX_TYPE.gaMeta,
|
|
341
338
|
[OBJECT_TAG_PAYING_FOR]: TX_TYPE.payingFor,
|
|
@@ -427,72 +424,21 @@ export const PREFIX_ID_TAG = {
|
|
|
427
424
|
ch: ID_TAG.channel
|
|
428
425
|
};
|
|
429
426
|
export const ID_TAG_PREFIX = revertObject(PREFIX_ID_TAG);
|
|
430
|
-
|
|
431
|
-
const VALIDATION_ERROR = msg => msg;
|
|
432
|
-
|
|
433
|
-
export const VALIDATION_MESSAGE = {
|
|
434
|
-
[FIELD_TYPES.int]: _ref3 => {
|
|
435
|
-
let {
|
|
436
|
-
value,
|
|
437
|
-
isMinusValue
|
|
438
|
-
} = _ref3;
|
|
439
|
-
return isMinusValue ? VALIDATION_ERROR(`${value} must be >= 0`) : VALIDATION_ERROR(`${value} is not of type Number or BigNumber`);
|
|
440
|
-
},
|
|
441
|
-
[FIELD_TYPES.amount]: _ref4 => {
|
|
442
|
-
let {
|
|
443
|
-
value,
|
|
444
|
-
isMinusValue
|
|
445
|
-
} = _ref4;
|
|
446
|
-
return isMinusValue ? VALIDATION_ERROR(`${value} must be >= 0`) : VALIDATION_ERROR(`${value} is not of type Number or BigNumber`);
|
|
447
|
-
},
|
|
448
|
-
[FIELD_TYPES.id]: _ref5 => {
|
|
449
|
-
let {
|
|
450
|
-
value,
|
|
451
|
-
prefix
|
|
452
|
-
} = _ref5;
|
|
453
|
-
return VALIDATION_ERROR(`'${value}' prefix doesn't match expected prefix '${prefix}' or ID_TAG for prefix not found`);
|
|
454
|
-
},
|
|
455
|
-
[FIELD_TYPES.binary]: _ref6 => {
|
|
456
|
-
let {
|
|
457
|
-
prefix,
|
|
458
|
-
value
|
|
459
|
-
} = _ref6;
|
|
460
|
-
return VALIDATION_ERROR(`'${value}' prefix doesn't match expected prefix '${prefix}'`);
|
|
461
|
-
},
|
|
462
|
-
[FIELD_TYPES.string]: _ref7 => {
|
|
463
|
-
let {
|
|
464
|
-
value
|
|
465
|
-
} = _ref7;
|
|
466
|
-
return VALIDATION_ERROR('Not a string');
|
|
467
|
-
},
|
|
468
|
-
[FIELD_TYPES.pointers]: _ref8 => {
|
|
469
|
-
let {
|
|
470
|
-
value
|
|
471
|
-
} = _ref8;
|
|
472
|
-
return VALIDATION_ERROR('Value must be of type Array and contains only object\'s like \'{key: "account_pubkey", id: "ak_lkamsflkalsdalksdlasdlasdlamd"}\'');
|
|
473
|
-
},
|
|
474
|
-
[FIELD_TYPES.ctVersion]: _ref9 => {
|
|
475
|
-
let {
|
|
476
|
-
value
|
|
477
|
-
} = _ref9;
|
|
478
|
-
return VALIDATION_ERROR('Value must be an object with "vmVersion" and "abiVersion" fields');
|
|
479
|
-
}
|
|
480
|
-
};
|
|
481
427
|
const BASE_TX = [TX_FIELD('tag', FIELD_TYPES.int), TX_FIELD('VSN', FIELD_TYPES.int)];
|
|
482
428
|
export const CONTRACT_BYTE_CODE_LIMA = [...BASE_TX, TX_FIELD('sourceCodeHash', FIELD_TYPES.rawBinary), TX_FIELD('typeInfo', FIELD_TYPES.sophiaCodeTypeInfo), TX_FIELD('byteCode', FIELD_TYPES.rawBinary), TX_FIELD('compilerVersion', FIELD_TYPES.string), TX_FIELD('payable', FIELD_TYPES.bool)];
|
|
483
429
|
const ACCOUNT_TX_2 = [...BASE_TX, TX_FIELD('flags', FIELD_TYPES.int), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('balance', FIELD_TYPES.int), TX_FIELD('gaContract', FIELD_TYPES.id, ['ct', 'nm']), TX_FIELD('gaAuthFun', FIELD_TYPES.binary, 'cb')];
|
|
484
430
|
const SPEND_TX = [...BASE_TX, TX_FIELD('senderId', FIELD_TYPES.id, 'ak'), TX_FIELD('recipientId', FIELD_TYPES.id, ['ak', 'nm']), TX_FIELD('amount', FIELD_TYPES.amount), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('payload', FIELD_TYPES.payload)];
|
|
485
431
|
const SIGNED_TX = [...BASE_TX, TX_FIELD('signatures', FIELD_TYPES.signatures), TX_FIELD('encodedTx', FIELD_TYPES.rlpBinary)];
|
|
486
432
|
const NAME_PRE_CLAIM_TX = [...BASE_TX, TX_FIELD('accountId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('commitmentId', FIELD_TYPES.id, 'cm'), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int)];
|
|
487
|
-
const NAME_CLAIM_TX_2 = [...BASE_TX, TX_FIELD('accountId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('name',
|
|
488
|
-
const NAME_UPDATE_TX = [...BASE_TX, TX_FIELD('accountId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('nameId',
|
|
489
|
-
const NAME_TRANSFER_TX = [...BASE_TX, TX_FIELD('accountId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('nameId',
|
|
490
|
-
const NAME_REVOKE_TX = [...BASE_TX, TX_FIELD('accountId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('nameId',
|
|
491
|
-
const CONTRACT_TX = [...BASE_TX, TX_FIELD('owner', FIELD_TYPES.id, 'ak'), TX_FIELD('ctVersion', FIELD_TYPES.int), TX_FIELD('code', FIELD_TYPES.binary, 'cb'), TX_FIELD('log', FIELD_TYPES.binary, 'cb'), TX_FIELD('active', FIELD_TYPES.bool), TX_FIELD('referers', FIELD_TYPES.ids, 'ak'), TX_FIELD('deposit',
|
|
433
|
+
const NAME_CLAIM_TX_2 = [...BASE_TX, TX_FIELD('accountId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('name', Name), TX_FIELD('nameSalt', FIELD_TYPES.int), TX_FIELD('nameFee', NameFee), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int)];
|
|
434
|
+
const NAME_UPDATE_TX = [...BASE_TX, TX_FIELD('accountId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('nameId', NameId), TX_FIELD('nameTtl', FIELD_TYPES.int), TX_FIELD('pointers', FIELD_TYPES.pointers), TX_FIELD('clientTtl', FIELD_TYPES.int), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int)];
|
|
435
|
+
const NAME_TRANSFER_TX = [...BASE_TX, TX_FIELD('accountId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('nameId', NameId), TX_FIELD('recipientId', FIELD_TYPES.id, ['ak', 'nm']), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int)];
|
|
436
|
+
const NAME_REVOKE_TX = [...BASE_TX, TX_FIELD('accountId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('nameId', NameId), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int)];
|
|
437
|
+
const CONTRACT_TX = [...BASE_TX, TX_FIELD('owner', FIELD_TYPES.id, 'ak'), TX_FIELD('ctVersion', FIELD_TYPES.int), TX_FIELD('code', FIELD_TYPES.binary, 'cb'), TX_FIELD('log', FIELD_TYPES.binary, 'cb'), TX_FIELD('active', FIELD_TYPES.bool), TX_FIELD('referers', FIELD_TYPES.ids, 'ak'), TX_FIELD('deposit', Deposit)];
|
|
492
438
|
const GA_ATTACH_TX = [...BASE_TX, TX_FIELD('ownerId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('code', FIELD_TYPES.binary, 'cb'), TX_FIELD('authFun', FIELD_TYPES.rawBinary), TX_FIELD('ctVersion', FIELD_TYPES.ctVersion), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int), TX_FIELD('gas', FIELD_TYPES.int), TX_FIELD('gasPrice', FIELD_TYPES.int), TX_FIELD('callData', FIELD_TYPES.binary, 'cb')];
|
|
493
439
|
const GA_META_TX_2 = [...BASE_TX, TX_FIELD('gaId', FIELD_TYPES.id, 'ak'), TX_FIELD('authData', FIELD_TYPES.binary, 'cb'), TX_FIELD('abiVersion', FIELD_TYPES.int), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('gas', FIELD_TYPES.int), TX_FIELD('gasPrice', FIELD_TYPES.int), TX_FIELD('tx', FIELD_TYPES.rlpBinary)];
|
|
494
440
|
const PAYING_FOR_TX = [...BASE_TX, TX_FIELD('payerId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('tx', FIELD_TYPES.rlpBinary)];
|
|
495
|
-
const CONTRACT_CREATE_TX = [...BASE_TX, TX_FIELD('ownerId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('code', FIELD_TYPES.binary, 'cb'), TX_FIELD('ctVersion', FIELD_TYPES.ctVersion), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int), TX_FIELD('deposit',
|
|
441
|
+
const CONTRACT_CREATE_TX = [...BASE_TX, TX_FIELD('ownerId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('code', FIELD_TYPES.binary, 'cb'), TX_FIELD('ctVersion', FIELD_TYPES.ctVersion), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int), TX_FIELD('deposit', Deposit), TX_FIELD('amount', FIELD_TYPES.amount), TX_FIELD('gas', FIELD_TYPES.int), TX_FIELD('gasPrice', FIELD_TYPES.int), TX_FIELD('callData', FIELD_TYPES.binary, 'cb')];
|
|
496
442
|
const CONTRACT_CALL_TX = [...BASE_TX, TX_FIELD('callerId', FIELD_TYPES.id, 'ak'), TX_FIELD('nonce', FIELD_TYPES.int), TX_FIELD('contractId', FIELD_TYPES.id, ['ct', 'nm']), TX_FIELD('abiVersion', FIELD_TYPES.int), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int), TX_FIELD('amount', FIELD_TYPES.amount), TX_FIELD('gas', FIELD_TYPES.int), TX_FIELD('gasPrice', FIELD_TYPES.int), TX_FIELD('callData', FIELD_TYPES.binary, 'cb')];
|
|
497
443
|
const CONTRACT_CALL_RESULT_TX = [...BASE_TX, TX_FIELD('callerId', FIELD_TYPES.id, 'ak'), TX_FIELD('callerNonce', FIELD_TYPES.int), TX_FIELD('height', FIELD_TYPES.int), TX_FIELD('contractId', FIELD_TYPES.id, 'ct'), TX_FIELD('gasPrice', FIELD_TYPES.int), TX_FIELD('gasUsed', FIELD_TYPES.int), TX_FIELD('returnValue', FIELD_TYPES.binary, 'cb'), TX_FIELD('returnType', FIELD_TYPES.callReturnType), // TODO: add serialization for
|
|
498
444
|
// <log> :: [ { <address> :: id, [ <topics> :: binary() ], <data> :: binary() } ]
|
|
@@ -508,7 +454,7 @@ const CHANNEL_CLOSE_MUTUAL_TX = [...BASE_TX, TX_FIELD('channelId', FIELD_TYPES.i
|
|
|
508
454
|
const CHANNEL_CLOSE_SOLO_TX = [...BASE_TX, TX_FIELD('channelId', FIELD_TYPES.id, 'ch'), TX_FIELD('fromId', FIELD_TYPES.id, 'ak'), TX_FIELD('payload', FIELD_TYPES.binary, 'tx'), TX_FIELD('poi', FIELD_TYPES.binary, 'pi'), TX_FIELD('ttl', FIELD_TYPES.int), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('nonce', FIELD_TYPES.int)];
|
|
509
455
|
const CHANNEL_SLASH_TX = [...BASE_TX, TX_FIELD('channelId', FIELD_TYPES.id, 'ch'), TX_FIELD('fromId', FIELD_TYPES.id, 'ak'), TX_FIELD('payload', FIELD_TYPES.binary, 'tx'), TX_FIELD('poi', FIELD_TYPES.binary, 'pi'), TX_FIELD('ttl', FIELD_TYPES.int), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('nonce', FIELD_TYPES.int)];
|
|
510
456
|
const CHANNEL_SETTLE_TX = [...BASE_TX, TX_FIELD('channelId', FIELD_TYPES.id, 'ch'), TX_FIELD('fromId', FIELD_TYPES.id, 'ak'), TX_FIELD('initiatorAmountFinal', FIELD_TYPES.int), TX_FIELD('responderAmountFinal', FIELD_TYPES.int), TX_FIELD('ttl', FIELD_TYPES.int), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('nonce', FIELD_TYPES.int)];
|
|
511
|
-
const CHANNEL_FORCE_PROGRESS_TX = [...BASE_TX, TX_FIELD('channelId', FIELD_TYPES.id, 'ch'), TX_FIELD('fromId', FIELD_TYPES.id, 'ak'), TX_FIELD('payload', FIELD_TYPES.binary, 'tx'), TX_FIELD('round', FIELD_TYPES.int), TX_FIELD('update', FIELD_TYPES.binary), TX_FIELD('stateHash', FIELD_TYPES.binary), TX_FIELD('offChainTrees', FIELD_TYPES.stateTree), TX_FIELD('ttl', FIELD_TYPES.int), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('nonce', FIELD_TYPES.int)];
|
|
457
|
+
const CHANNEL_FORCE_PROGRESS_TX = [...BASE_TX, TX_FIELD('channelId', FIELD_TYPES.id, 'ch'), TX_FIELD('fromId', FIELD_TYPES.id, 'ak'), TX_FIELD('payload', FIELD_TYPES.binary, 'tx'), TX_FIELD('round', FIELD_TYPES.int), TX_FIELD('update', FIELD_TYPES.binary, 'cb'), TX_FIELD('stateHash', FIELD_TYPES.binary, 'st'), TX_FIELD('offChainTrees', FIELD_TYPES.stateTree), TX_FIELD('ttl', FIELD_TYPES.int), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('nonce', FIELD_TYPES.int)];
|
|
512
458
|
const CHANNEL_OFFCHAIN_TX_2 = [...BASE_TX, TX_FIELD('channelId', FIELD_TYPES.id, 'ch'), TX_FIELD('round', FIELD_TYPES.int), TX_FIELD('stateHash', FIELD_TYPES.binary, 'st')];
|
|
513
459
|
const CHANNEL_TX_3 = [...BASE_TX, TX_FIELD('initiator', FIELD_TYPES.id, 'ak'), TX_FIELD('responder', FIELD_TYPES.id, 'ak'), TX_FIELD('channelAmount', FIELD_TYPES.int), TX_FIELD('initiatorAmount', FIELD_TYPES.int), TX_FIELD('responderAmount', FIELD_TYPES.int), TX_FIELD('channelReserve', FIELD_TYPES.int), TX_FIELD('initiatorDelegateIds', FIELD_TYPES.ids), TX_FIELD('responderDelegateIds', FIELD_TYPES.ids), TX_FIELD('stateHash', FIELD_TYPES.hex), TX_FIELD('round', FIELD_TYPES.int), TX_FIELD('soloRound', FIELD_TYPES.int), TX_FIELD('lockPeriod', FIELD_TYPES.int), TX_FIELD('lockedUntil', FIELD_TYPES.int), TX_FIELD('initiatorAuth', FIELD_TYPES.binary, 'cb'), TX_FIELD('responderAuth', FIELD_TYPES.binary, 'cb')];
|
|
514
460
|
const CHANNEL_SNAPSHOT_SOLO_TX = [...BASE_TX, TX_FIELD('channelId', FIELD_TYPES.id, 'ch'), TX_FIELD('fromId', FIELD_TYPES.id, 'ak'), TX_FIELD('payload', FIELD_TYPES.binary, 'tx'), TX_FIELD('ttl', FIELD_TYPES.int), TX_FIELD('fee', FIELD_TYPES.int), TX_FIELD('nonce', FIELD_TYPES.int)];
|
|
@@ -811,4 +757,4 @@ export const TX_DESERIALIZATION_SCHEMA = {
|
|
|
811
757
|
3: TX_SCHEMA_FIELD(CONTRACT_BYTE_CODE_LIMA, OBJECT_TAG_SOPHIA_BYTE_CODE)
|
|
812
758
|
}
|
|
813
759
|
};
|
|
814
|
-
//# sourceMappingURL=schema.
|
|
760
|
+
//# sourceMappingURL=schema.mjs.map
|