@aeternity/aepp-sdk 11.0.1 → 12.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/LICENSE +1 -1
- package/dist/aepp-sdk.browser-script.js +1 -1
- package/dist/aepp-sdk.browser-script.js.LICENSE.txt +12 -19
- 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/AeSdk.d.ts +37 -0
- package/es/AeSdk.mjs +81 -0
- package/es/AeSdk.mjs.map +1 -0
- package/es/AeSdkAepp.d.ts +69 -0
- package/es/AeSdkAepp.mjs +175 -0
- package/es/AeSdkAepp.mjs.map +1 -0
- package/es/AeSdkBase.d.ts +212 -0
- package/es/AeSdkBase.mjs +310 -0
- package/es/AeSdkBase.mjs.map +1 -0
- package/es/AeSdkWallet.d.ts +103 -0
- package/es/AeSdkWallet.mjs +322 -0
- package/es/AeSdkWallet.mjs.map +1 -0
- package/es/Node.d.ts +44 -0
- package/es/Node.mjs +141 -0
- package/es/Node.mjs.map +1 -0
- package/es/account/Base.d.ts +65 -0
- package/es/account/Base.mjs +123 -0
- package/es/account/Base.mjs.map +1 -0
- package/es/account/Memory.d.ts +25 -0
- package/es/account/Memory.mjs +81 -0
- package/es/account/Memory.mjs.map +1 -0
- package/es/account/Rpc.d.ts +27 -0
- package/es/account/Rpc.mjs +79 -0
- package/es/account/Rpc.mjs.map +1 -0
- package/es/aens.d.ts +209 -0
- package/es/aens.mjs +332 -0
- package/es/aens.mjs.map +1 -0
- package/es/aepp-wallet-communication/connection/Browser.d.ts +32 -0
- package/es/aepp-wallet-communication/connection/Browser.mjs +70 -0
- package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -0
- package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +17 -0
- package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +57 -0
- package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -0
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +35 -0
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +142 -0
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -0
- package/es/aepp-wallet-communication/connection-proxy.d.ts +10 -0
- package/{src/utils/crypto-ts.ts → es/aepp-wallet-communication/connection-proxy.mjs} +15 -11
- package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -0
- package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +33 -0
- package/es/aepp-wallet-communication/rpc/RpcClient.mjs +169 -0
- package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -0
- package/es/aepp-wallet-communication/rpc/types.d.ts +77 -0
- package/es/aepp-wallet-communication/rpc/types.mjs +3 -0
- package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -0
- package/es/aepp-wallet-communication/schema.d.ts +90 -46
- package/es/aepp-wallet-communication/schema.mjs +214 -0
- package/es/aepp-wallet-communication/schema.mjs.map +1 -0
- package/es/aepp-wallet-communication/wallet-detector.d.ts +24 -0
- package/es/aepp-wallet-communication/wallet-detector.mjs +63 -0
- package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -0
- package/es/apis/compiler/compiler.d.ts +92 -0
- package/es/apis/compiler/compiler.mjs +576 -0
- package/es/apis/compiler/compiler.mjs.map +1 -0
- package/es/apis/compiler/index.d.ts +2 -0
- package/es/apis/compiler/index.mjs +3 -0
- package/es/apis/compiler/index.mjs.map +1 -0
- package/es/apis/compiler/models/index.d.ts +248 -0
- package/es/apis/compiler/models/index.mjs +48 -0
- package/es/apis/compiler/models/index.mjs.map +1 -0
- package/es/apis/compiler/models/mappers.d.ts +23 -0
- package/es/apis/compiler/models/mappers.mjs +585 -0
- package/es/apis/compiler/models/mappers.mjs.map +1 -0
- package/es/apis/compiler/models/parameters.d.ts +13 -0
- package/es/apis/compiler/models/parameters.mjs +71 -0
- package/es/apis/compiler/models/parameters.mjs.map +1 -0
- package/es/apis/node/index.d.ts +2 -0
- package/es/apis/node/index.mjs +3 -0
- package/es/apis/node/index.mjs.map +1 -0
- package/es/apis/node/models/index.d.ts +1061 -0
- package/es/apis/node/models/index.mjs +2 -0
- package/es/apis/node/models/index.mjs.map +1 -0
- package/es/apis/node/models/mappers.d.ts +95 -0
- package/es/apis/node/models/mappers.mjs +4164 -0
- package/es/apis/node/models/mappers.mjs.map +1 -0
- package/es/apis/node/models/parameters.d.ts +17 -0
- package/es/apis/node/models/parameters.mjs +165 -0
- package/es/apis/node/models/parameters.mjs.map +1 -0
- package/es/apis/node/node.d.ts +215 -0
- package/es/apis/node/node.mjs +1165 -0
- package/es/apis/node/node.mjs.map +1 -0
- package/es/chain.d.ts +220 -0
- package/es/chain.mjs +524 -0
- package/es/chain.mjs.map +1 -0
- package/es/channel/handlers.d.ts +34 -0
- package/es/channel/handlers.mjs +147 -112
- package/es/channel/handlers.mjs.map +1 -1
- package/es/channel/index.d.ts +634 -0
- package/es/channel/index.mjs +898 -900
- package/es/channel/index.mjs.map +1 -1
- package/es/channel/internal.d.ts +100 -0
- package/es/channel/internal.mjs +97 -51
- package/es/channel/internal.mjs.map +1 -1
- package/es/contract/Compiler.d.ts +17 -0
- package/es/contract/Compiler.mjs +67 -0
- package/es/contract/Compiler.mjs.map +1 -0
- package/es/contract/aci.d.ts +125 -0
- package/es/contract/aci.mjs +199 -180
- package/es/contract/aci.mjs.map +1 -1
- package/es/contract/ga.d.ts +68 -0
- package/es/contract/ga.mjs +190 -0
- package/es/contract/ga.mjs.map +1 -0
- package/es/contract/methods.d.ts +68 -0
- package/es/contract/methods.mjs +101 -0
- package/es/contract/methods.mjs.map +1 -0
- package/es/index.d.ts +32 -0
- package/es/index.mjs +32 -40
- package/es/index.mjs.map +1 -1
- package/es/oracle.d.ts +154 -0
- package/es/oracle.mjs +288 -0
- package/es/oracle.mjs.map +1 -0
- package/es/spend.d.ts +61 -0
- package/es/spend.mjs +122 -0
- package/es/spend.mjs.map +1 -0
- package/es/tx/builder/constants.d.ts +41 -0
- package/es/tx/builder/constants.mjs +11 -19
- package/es/tx/builder/constants.mjs.map +1 -1
- package/es/tx/builder/field-types.d.ts +62 -0
- package/es/tx/builder/field-types.mjs +62 -10
- package/es/tx/builder/field-types.mjs.map +1 -1
- package/es/tx/builder/helpers.d.ts +131 -0
- package/es/tx/builder/helpers.mjs +71 -169
- package/es/tx/builder/helpers.mjs.map +1 -1
- package/es/tx/builder/index.d.ts +75 -0
- package/es/tx/builder/index.mjs +141 -323
- package/es/tx/builder/index.mjs.map +1 -1
- package/es/tx/builder/schema.d.ts +350 -0
- package/es/tx/builder/schema.mjs +173 -510
- package/es/tx/builder/schema.mjs.map +1 -1
- package/es/tx/index.d.ts +63 -0
- package/es/tx/index.mjs +171 -265
- package/es/tx/index.mjs.map +1 -1
- package/es/tx/min-fee.d.ts +20 -0
- package/es/tx/min-fee.mjs +148 -0
- package/es/tx/min-fee.mjs.map +1 -0
- package/es/tx/validator.d.ts +19 -0
- package/es/tx/validator.mjs +64 -71
- package/es/tx/validator.mjs.map +1 -1
- package/es/typings/@aeternity__argon2-browser/index.d.mjs +2 -0
- package/es/typings/@aeternity__argon2-browser/index.d.mjs.map +1 -0
- package/es/typings/@aeternity__uuid/index.d.mjs +2 -0
- package/es/typings/@aeternity__uuid/index.d.mjs.map +1 -0
- package/es/typings/bip32-path/index.d.mjs +2 -0
- package/es/typings/bip32-path/index.d.mjs.map +1 -0
- package/es/typings/blakejs/index.d.mjs.map +1 -1
- package/es/typings/tweetnacl-auth/index.d.mjs +2 -0
- package/es/typings/tweetnacl-auth/index.d.mjs.map +1 -0
- package/es/utils/amount-formatter.d.ts +42 -0
- package/es/utils/amount-formatter.mjs +28 -41
- package/es/utils/amount-formatter.mjs.map +1 -1
- package/es/utils/autorest.d.ts +6 -0
- package/es/utils/autorest.mjs +97 -0
- package/es/utils/autorest.mjs.map +1 -0
- package/es/utils/bignumber.d.ts +13 -0
- package/es/utils/bignumber.mjs +10 -8
- package/es/utils/bignumber.mjs.map +1 -1
- package/es/{bytes.d.ts → utils/bytes.d.ts} +10 -13
- package/es/utils/bytes.mjs +10 -14
- package/es/utils/bytes.mjs.map +1 -1
- package/es/utils/crypto.d.ts +103 -0
- package/es/utils/crypto.mjs +60 -68
- package/es/utils/crypto.mjs.map +1 -1
- package/es/utils/encoder.d.ts +26 -0
- package/es/utils/encoder.mjs +47 -51
- package/es/utils/encoder.mjs.map +1 -1
- package/es/{errors.d.ts → utils/errors.d.ts} +254 -57
- package/es/utils/errors.mjs +318 -125
- package/es/utils/errors.mjs.map +1 -1
- package/es/utils/hd-wallet.d.ts +34 -0
- package/es/utils/hd-wallet.mjs +27 -16
- package/es/utils/hd-wallet.mjs.map +1 -1
- package/es/utils/json-big.d.ts +5 -0
- package/es/utils/json-big.mjs +10 -14
- package/es/utils/json-big.mjs.map +1 -1
- package/es/utils/keystore.d.ts +51 -0
- package/es/utils/keystore.mjs +98 -193
- package/es/utils/keystore.mjs.map +1 -1
- package/es/{mptree.d.ts → utils/mptree.d.ts} +5 -8
- package/es/utils/mptree.mjs +13 -14
- package/es/utils/mptree.mjs.map +1 -1
- package/es/utils/other.d.ts +14 -0
- package/es/utils/other.mjs +21 -36
- package/es/utils/other.mjs.map +1 -1
- package/es/{semver-satisfies.d.ts → utils/semver-satisfies.d.ts} +0 -0
- package/es/utils/semver-satisfies.mjs.map +1 -1
- package/es/utils/string.d.ts +24 -0
- package/es/utils/string.mjs +8 -10
- package/es/utils/string.mjs.map +1 -1
- package/package.json +49 -39
- package/src/AeSdk.ts +65 -0
- package/src/AeSdkAepp.ts +167 -0
- package/src/AeSdkBase.ts +320 -0
- package/src/AeSdkWallet.ts +332 -0
- package/src/Node.ts +167 -0
- package/src/account/Base.ts +114 -0
- package/src/account/Memory.ts +83 -0
- package/src/account/Rpc.ts +67 -0
- package/src/aens.ts +391 -0
- package/src/aepp-wallet-communication/connection/Browser.ts +68 -0
- package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +58 -0
- package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +111 -0
- package/{es/utils/crypto-ts.mjs → src/aepp-wallet-communication/connection-proxy.ts} +16 -17
- package/src/aepp-wallet-communication/rpc/RpcClient.ts +137 -0
- package/src/aepp-wallet-communication/rpc/types.ts +66 -0
- package/src/aepp-wallet-communication/schema.ts +181 -0
- package/src/aepp-wallet-communication/wallet-detector.ts +71 -0
- package/src/apis/compiler/code-model-v4.yaml +2649 -0
- package/src/apis/compiler/compiler.ts +585 -0
- package/src/apis/compiler/index.ts +2 -0
- package/src/apis/compiler/models/index.ts +301 -0
- package/src/apis/compiler/models/mappers.ts +583 -0
- package/src/apis/compiler/models/parameters.ts +93 -0
- package/src/apis/node/code-model-v4.yaml +10046 -0
- package/src/apis/node/index.ts +2 -0
- package/src/apis/node/models/index.ts +1253 -0
- package/src/apis/node/models/mappers.ts +4278 -0
- package/src/apis/node/models/parameters.ts +188 -0
- package/src/apis/node/node.ts +1299 -0
- package/src/chain.ts +444 -0
- package/src/channel/{handlers.js → handlers.ts} +220 -128
- package/src/channel/index.ts +991 -0
- package/src/channel/internal.ts +345 -0
- package/src/contract/Compiler.ts +66 -0
- package/src/contract/aci.ts +529 -0
- package/src/contract/ga.ts +178 -0
- package/src/contract/methods.ts +118 -0
- package/src/index.ts +51 -0
- package/src/oracle.ts +342 -0
- package/src/spend.ts +152 -0
- package/src/tx/builder/{constants.js → constants.ts} +12 -16
- package/src/tx/builder/field-types.ts +111 -0
- package/src/tx/builder/helpers.ts +253 -0
- package/src/tx/builder/index.ts +394 -0
- package/src/tx/builder/schema.ts +771 -0
- package/src/tx/index.ts +199 -0
- package/src/tx/min-fee.ts +136 -0
- package/src/tx/validator.ts +226 -0
- package/src/typings/@aeternity__argon2-browser/index.d.ts +3 -0
- package/src/typings/@aeternity__uuid/index.d.ts +3 -0
- package/src/typings/bip32-path/index.d.ts +33 -0
- package/src/typings/tweetnacl-auth/index.d.ts +14 -0
- package/src/utils/amount-formatter.ts +29 -42
- package/src/utils/autorest.ts +90 -0
- package/src/utils/bignumber.ts +9 -11
- package/src/utils/bytes.ts +12 -14
- package/src/utils/crypto.ts +217 -0
- package/src/utils/encoder.ts +52 -55
- package/src/utils/errors.ts +268 -134
- package/src/utils/hd-wallet.ts +134 -0
- package/src/utils/json-big.ts +26 -0
- package/src/utils/keystore.ts +179 -0
- package/src/utils/mptree.ts +14 -14
- package/src/utils/other.ts +28 -43
- package/src/utils/string.ts +8 -10
- package/es/account/base.mjs +0 -179
- package/es/account/base.mjs.map +0 -1
- package/es/account/memory.mjs +0 -99
- package/es/account/memory.mjs.map +0 -1
- package/es/account/multiple.mjs +0 -179
- package/es/account/multiple.mjs.map +0 -1
- package/es/ae/aens.mjs +0 -404
- package/es/ae/aens.mjs.map +0 -1
- package/es/ae/aepp.mjs +0 -45
- package/es/ae/aepp.mjs.map +0 -1
- package/es/ae/contract.mjs +0 -159
- package/es/ae/contract.mjs.map +0 -1
- package/es/ae/index.mjs +0 -207
- package/es/ae/index.mjs.map +0 -1
- package/es/ae/oracle.mjs +0 -339
- package/es/ae/oracle.mjs.map +0 -1
- package/es/ae/universal.mjs +0 -45
- package/es/ae/universal.mjs.map +0 -1
- package/es/ae/wallet.mjs +0 -50
- package/es/ae/wallet.mjs.map +0 -1
- package/es/amount-formatter.d.ts +0 -58
- package/es/bignumber.d.ts +0 -18
- package/es/chain/index.mjs +0 -272
- package/es/chain/index.mjs.map +0 -1
- package/es/chain/node.mjs +0 -442
- package/es/chain/node.mjs.map +0 -1
- package/es/contract/compiler.mjs +0 -115
- package/es/contract/compiler.mjs.map +0 -1
- package/es/contract/ga/helpers.mjs +0 -30
- package/es/contract/ga/helpers.mjs.map +0 -1
- package/es/contract/ga/index.mjs +0 -178
- package/es/contract/ga/index.mjs.map +0 -1
- package/es/crypto-ts.d.ts +0 -9
- package/es/encoder.d.ts +0 -26
- package/es/node-pool/index.mjs +0 -188
- package/es/node-pool/index.mjs.map +0 -1
- package/es/node.mjs +0 -133
- package/es/node.mjs.map +0 -1
- package/es/other.d.ts +0 -31
- package/es/string.d.ts +0 -26
- package/es/tx/tx-object.mjs +0 -283
- package/es/tx/tx-object.mjs.map +0 -1
- package/es/tx/tx.mjs +0 -938
- package/es/tx/tx.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs +0 -132
- package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs +0 -183
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/connection/index.mjs +0 -87
- package/es/utils/aepp-wallet-communication/connection/index.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/content-script-bridge.mjs +0 -98
- package/es/utils/aepp-wallet-communication/content-script-bridge.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/helpers.mjs +0 -92
- package/es/utils/aepp-wallet-communication/helpers.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs +0 -375
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs +0 -275
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs +0 -541
- package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/schema.mjs +0 -102
- package/es/utils/aepp-wallet-communication/schema.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/wallet-detector.mjs +0 -110
- package/es/utils/aepp-wallet-communication/wallet-detector.mjs.map +0 -1
- package/es/utils/async-init.mjs +0 -64
- package/es/utils/async-init.mjs.map +0 -1
- package/es/utils/crypto-ts.mjs.map +0 -1
- package/es/utils/swagger.mjs +0 -164
- package/es/utils/swagger.mjs.map +0 -1
- package/src/account/base.js +0 -153
- package/src/account/memory.js +0 -83
- package/src/account/multiple.js +0 -162
- package/src/ae/aens.js +0 -361
- package/src/ae/aepp.js +0 -45
- package/src/ae/contract.js +0 -148
- package/src/ae/index.js +0 -168
- package/src/ae/oracle.js +0 -311
- package/src/ae/universal.js +0 -47
- package/src/ae/wallet.js +0 -50
- package/src/chain/index.js +0 -269
- package/src/chain/node.js +0 -320
- package/src/channel/index.js +0 -903
- package/src/channel/internal.js +0 -236
- package/src/contract/aci.js +0 -376
- package/src/contract/compiler.js +0 -100
- package/src/contract/ga/helpers.js +0 -19
- package/src/contract/ga/index.js +0 -150
- package/src/index.js +0 -89
- package/src/node-pool/index.js +0 -172
- package/src/node.js +0 -116
- package/src/tx/builder/field-types.js +0 -61
- package/src/tx/builder/helpers.js +0 -334
- package/src/tx/builder/index.js +0 -465
- package/src/tx/builder/schema.js +0 -1100
- package/src/tx/index.js +0 -301
- package/src/tx/tx-object.js +0 -187
- package/src/tx/tx.js +0 -631
- package/src/tx/validator.js +0 -181
- package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +0 -119
- package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +0 -165
- package/src/utils/aepp-wallet-communication/connection/index.js +0 -85
- package/src/utils/aepp-wallet-communication/content-script-bridge.js +0 -86
- package/src/utils/aepp-wallet-communication/helpers.js +0 -60
- package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +0 -294
- package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +0 -232
- package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +0 -401
- package/src/utils/aepp-wallet-communication/schema.ts +0 -80
- package/src/utils/aepp-wallet-communication/wallet-detector.js +0 -92
- package/src/utils/async-init.js +0 -45
- package/src/utils/crypto.js +0 -219
- package/src/utils/hd-wallet.js +0 -100
- package/src/utils/json-big.js +0 -26
- package/src/utils/keystore.js +0 -219
- package/src/utils/swagger.js +0 -156
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
writeId, readId, isNameValid, produceNameId, ensureNameValid, getMinimumNameFee, readInt, writeInt
|
|
3
|
-
} from './helpers'
|
|
4
|
-
import { InsufficientNameFeeError, IllegalArgumentError } from '../../utils/errors'
|
|
5
|
-
|
|
6
|
-
export class Field {
|
|
7
|
-
static serialize (value) {
|
|
8
|
-
return value
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
static deserialize (value) {
|
|
12
|
-
return value
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export class Name extends Field {
|
|
17
|
-
static serialize (value) {
|
|
18
|
-
ensureNameValid(value)
|
|
19
|
-
return Buffer.from(value)
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
static deserialize (value) {
|
|
23
|
-
return value.toString()
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export class NameId extends Field {
|
|
28
|
-
static serialize (value) {
|
|
29
|
-
return writeId(isNameValid(value) ? produceNameId(value) : value)
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
static deserialize (value) {
|
|
33
|
-
return readId(value)
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export class NameFee extends Field {
|
|
38
|
-
static serialize (value, { name }) {
|
|
39
|
-
const minNameFee = getMinimumNameFee(name)
|
|
40
|
-
value ??= minNameFee
|
|
41
|
-
if (minNameFee.gt(value)) {
|
|
42
|
-
throw new InsufficientNameFeeError(value, minNameFee)
|
|
43
|
-
}
|
|
44
|
-
return writeInt(value)
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
static deserialize (value) {
|
|
48
|
-
return readInt(value)
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export class Deposit extends Field {
|
|
53
|
-
static serialize (value, { name }) {
|
|
54
|
-
if (+value) throw new IllegalArgumentError(`Contract deposit is not refundable, so it should be equal 0, got ${value} instead`)
|
|
55
|
-
return writeInt(0)
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
static deserialize (value) {
|
|
59
|
-
return readInt(value)
|
|
60
|
-
}
|
|
61
|
-
}
|
|
@@ -1,334 +0,0 @@
|
|
|
1
|
-
import BigNumber from 'bignumber.js'
|
|
2
|
-
import { encode as bs58Encode, decode as bs58Decode } from 'bs58'
|
|
3
|
-
import { hash, salt } from '../../utils/crypto'
|
|
4
|
-
import { encode, decode } from '../../utils/encoder'
|
|
5
|
-
import { toBytes } from '../../utils/bytes'
|
|
6
|
-
import {
|
|
7
|
-
ID_TAG_PREFIX,
|
|
8
|
-
PREFIX_ID_TAG,
|
|
9
|
-
NAME_BID_RANGES,
|
|
10
|
-
NAME_FEE_BID_INCREMENT,
|
|
11
|
-
NAME_BID_TIMEOUTS,
|
|
12
|
-
NAME_MAX_LENGTH_FEE,
|
|
13
|
-
POINTER_KEY_BY_PREFIX
|
|
14
|
-
} from './constants'
|
|
15
|
-
import { ceil } from '../../utils/bignumber'
|
|
16
|
-
import {
|
|
17
|
-
TagNotFoundError,
|
|
18
|
-
PrefixNotFoundError,
|
|
19
|
-
InvalidNameError,
|
|
20
|
-
IllegalBidFeeError,
|
|
21
|
-
NoDefaultAensPointerError,
|
|
22
|
-
ArgumentError
|
|
23
|
-
} from '../../utils/errors'
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* JavaScript-based Transaction builder helper function's
|
|
27
|
-
* @module @aeternity/aepp-sdk/es/tx/builder/helpers
|
|
28
|
-
* @export TxBuilderHelper
|
|
29
|
-
* @example import { TxBuilderHelper } from '@aeternity/aepp-sdk'
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
|
-
export const createSalt = salt
|
|
33
|
-
|
|
34
|
-
export { encode, decode }
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Build a contract public key
|
|
38
|
-
* @function
|
|
39
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
40
|
-
* @param {string} ownerId The public key of the owner account
|
|
41
|
-
* @param {number} nonce the nonce of the transaction
|
|
42
|
-
* @return {string} Contract public key
|
|
43
|
-
*/
|
|
44
|
-
export function buildContractId (ownerId, nonce) {
|
|
45
|
-
const ownerIdAndNonce = Buffer.from([...decode(ownerId, 'ak'), ...toBytes(nonce)])
|
|
46
|
-
const b2bHash = hash(ownerIdAndNonce)
|
|
47
|
-
return encode(b2bHash, 'ct')
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Build a oracle query id
|
|
52
|
-
* @function
|
|
53
|
-
* @function* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
54
|
-
* @param {String} senderId The public key of the sender account
|
|
55
|
-
* @param {Number} nonce the nonce of the transaction
|
|
56
|
-
* @param {Number} oracleId The oracle public key
|
|
57
|
-
* @return {string} Contract public key
|
|
58
|
-
*/
|
|
59
|
-
export function oracleQueryId (senderId, nonce, oracleId) {
|
|
60
|
-
function _int32 (val) {
|
|
61
|
-
const nonceBE = toBytes(val, true)
|
|
62
|
-
return Buffer.concat([Buffer.alloc(32 - nonceBE.length), nonceBE])
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
const b2bHash = hash(Buffer.from([...decode(senderId, 'ak'), ..._int32(nonce), ...decode(oracleId, 'ok')]))
|
|
66
|
-
return encode(b2bHash, 'oq')
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Format the salt into a 64-byte hex string
|
|
71
|
-
* @function
|
|
72
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
73
|
-
* @param {number} salt
|
|
74
|
-
* @return {string} Zero-padded hex string of salt
|
|
75
|
-
*/
|
|
76
|
-
export function formatSalt (salt) {
|
|
77
|
-
return Buffer.from(salt.toString(16).padStart(64, '0'), 'hex')
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Encode an AENS name
|
|
82
|
-
* @function
|
|
83
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
84
|
-
* @param {String} name Name to encode
|
|
85
|
-
* @return {String} `nm_` prefixed encoded AENS name
|
|
86
|
-
*/
|
|
87
|
-
export function produceNameId (name) {
|
|
88
|
-
ensureNameValid(name)
|
|
89
|
-
return encode(hash(name.toLowerCase()), 'nm')
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Generate the commitment hash by hashing the formatted salt and
|
|
94
|
-
* name, base 58 encoding the result and prepending 'cm_'
|
|
95
|
-
*
|
|
96
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
97
|
-
* @function commitmentHash
|
|
98
|
-
* @category async
|
|
99
|
-
* @rtype (name: String, salt?: String) => hash: Promise[String]
|
|
100
|
-
* @param {String} name - Name to be registered
|
|
101
|
-
* @param {Number} salt Random salt
|
|
102
|
-
* @return {String} Commitment hash
|
|
103
|
-
*/
|
|
104
|
-
export function commitmentHash (name, salt = createSalt()) {
|
|
105
|
-
ensureNameValid(name)
|
|
106
|
-
return encode(hash(Buffer.concat([Buffer.from(name.toLowerCase()), formatSalt(salt)])), 'cm')
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
// based on https://github.com/aeternity/protocol/blob/master/node/api/api_encoding.md
|
|
110
|
-
const base64Types = ['ba', 'cb', 'or', 'ov', 'pi', 'ss', 'cs', 'ck', 'cv', 'st', 'tx']
|
|
111
|
-
const base58Types = ['ak', 'bf', 'bs', 'bx', 'ch', 'cm', 'ct', 'kh', 'mh', 'nm', 'ok', 'oq', 'pp', 'sg', 'th']
|
|
112
|
-
// TODO: add all types with a fixed length
|
|
113
|
-
const typesLength = {
|
|
114
|
-
ak: 32,
|
|
115
|
-
ct: 32,
|
|
116
|
-
ok: 32
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
function ensureValidLength (data, type) {
|
|
120
|
-
if (!typesLength[type]) return
|
|
121
|
-
if (data.length === typesLength[type]) return
|
|
122
|
-
throw new PayloadLengthError(`Payload should be ${typesLength[type]} bytes, got ${data.length} instead`)
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
const getChecksum = payload => sha256hash(sha256hash(payload)).slice(0, 4)
|
|
126
|
-
|
|
127
|
-
const addChecksum = (input) => {
|
|
128
|
-
const payload = Buffer.from(input)
|
|
129
|
-
return Buffer.concat([payload, getChecksum(payload)])
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
function getPayload (buffer) {
|
|
133
|
-
const payload = buffer.slice(0, -4)
|
|
134
|
-
if (!getChecksum(payload).equals(buffer.slice(-4))) throw new InvalidChecksumError()
|
|
135
|
-
return payload
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
const base64 = {
|
|
139
|
-
encode: buffer => addChecksum(buffer).toString('base64'),
|
|
140
|
-
decode: string => getPayload(Buffer.from(string, 'base64'))
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
const base58 = {
|
|
144
|
-
encode: buffer => bs58.encode(addChecksum(buffer)),
|
|
145
|
-
decode: string => getPayload(bs58.decode(string))
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
* Utility function to create and _id type
|
|
150
|
-
* @function
|
|
151
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
152
|
-
* @param {string} hashId Encoded hash
|
|
153
|
-
* @return {Buffer} Buffer Buffer with ID tag and decoded HASh
|
|
154
|
-
*/
|
|
155
|
-
export function writeId (hashId) {
|
|
156
|
-
if (typeof hashId !== 'string') throw new ArgumentError('hashId', 'a string', hashId)
|
|
157
|
-
const prefix = hashId.slice(0, 2)
|
|
158
|
-
const idTag = PREFIX_ID_TAG[prefix]
|
|
159
|
-
if (!idTag) throw new TagNotFoundError(prefix)
|
|
160
|
-
return Buffer.from([...toBytes(idTag), ...decode(hashId, prefix)])
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
/**
|
|
164
|
-
* Utility function to read and _id type
|
|
165
|
-
* @function
|
|
166
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
167
|
-
* @param {Buffer} buf Data
|
|
168
|
-
* @return {String} Encoided hash string with prefix
|
|
169
|
-
*/
|
|
170
|
-
export function readId (buf) {
|
|
171
|
-
const tag = Buffer.from(buf).readUIntBE(0, 1)
|
|
172
|
-
const prefix = ID_TAG_PREFIX[tag]
|
|
173
|
-
if (!prefix) throw new PrefixNotFoundError(tag)
|
|
174
|
-
return encode(buf.slice(1, buf.length), prefix)
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
* Utility function to convert int to bytes
|
|
179
|
-
* @function
|
|
180
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
181
|
-
* @param {Number|String|BigNumber} val Value
|
|
182
|
-
* @return {Buffer} Buffer Buffer from number(BigEndian)
|
|
183
|
-
*/
|
|
184
|
-
export function writeInt (val) {
|
|
185
|
-
return toBytes(val, true)
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
/**
|
|
189
|
-
* Utility function to convert bytes to int
|
|
190
|
-
* @function
|
|
191
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
192
|
-
* @param {Buffer} buf Value
|
|
193
|
-
* @return {String} Buffer Buffer from number(BigEndian)
|
|
194
|
-
*/
|
|
195
|
-
export function readInt (buf = Buffer.from([])) {
|
|
196
|
-
return new BigNumber(Buffer.from(buf).toString('hex'), 16).toString(10)
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
/**
|
|
200
|
-
* Helper function to build pointers for name update TX
|
|
201
|
-
* @function
|
|
202
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
203
|
-
* @param {Array} pointers - Array of pointers
|
|
204
|
-
* ([ { key: 'account_pubkey', id: 'ak_32klj5j23k23j5423l434l2j3423'} ])
|
|
205
|
-
* @return {Array} Serialized pointers array
|
|
206
|
-
*/
|
|
207
|
-
export function buildPointers (pointers) {
|
|
208
|
-
return pointers.map(
|
|
209
|
-
p => [
|
|
210
|
-
toBytes(p.key),
|
|
211
|
-
writeId(p.id)
|
|
212
|
-
]
|
|
213
|
-
)
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
/**
|
|
217
|
-
* Helper function to read pointers from name update TX
|
|
218
|
-
* @function
|
|
219
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
220
|
-
* @param {Array} pointers - Array of pointers
|
|
221
|
-
* ([ { key: 'account_pubkey', id: 'ak_32klj5j23k23j5423l434l2j3423'} ])
|
|
222
|
-
* @return {Array} Deserialize pointer array
|
|
223
|
-
*/
|
|
224
|
-
export function readPointers (pointers) {
|
|
225
|
-
return pointers.map(
|
|
226
|
-
([key, id]) => Object.assign({
|
|
227
|
-
key: key.toString(),
|
|
228
|
-
id: readId(id)
|
|
229
|
-
})
|
|
230
|
-
)
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
const AENS_SUFFIX = '.chain'
|
|
234
|
-
|
|
235
|
-
/**
|
|
236
|
-
* Ensure that AENS name is valid
|
|
237
|
-
* @function
|
|
238
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
239
|
-
* @param {string} name
|
|
240
|
-
* @return void
|
|
241
|
-
* @throws Error
|
|
242
|
-
*/
|
|
243
|
-
export function ensureNameValid (name) {
|
|
244
|
-
if (!name || typeof name !== 'string') throw new InvalidNameError('Name must be a string')
|
|
245
|
-
if (!name.endsWith(AENS_SUFFIX)) throw new InvalidNameError(`Name should end with ${AENS_SUFFIX}: ${name}`)
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
/**
|
|
249
|
-
* Is AENS name valid
|
|
250
|
-
* @function
|
|
251
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
252
|
-
* @param {string} name
|
|
253
|
-
* @return Boolean
|
|
254
|
-
*/
|
|
255
|
-
export function isNameValid (name) {
|
|
256
|
-
try {
|
|
257
|
-
ensureNameValid(name)
|
|
258
|
-
return true
|
|
259
|
-
} catch (error) {
|
|
260
|
-
return false
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
/**
|
|
265
|
-
* @param identifier - account/oracle/contract address, or channel
|
|
266
|
-
* @returns {String} default AENS pointer key
|
|
267
|
-
* @throws exception when default key not defined
|
|
268
|
-
*/
|
|
269
|
-
export function getDefaultPointerKey (identifier) {
|
|
270
|
-
decode(identifier)
|
|
271
|
-
const prefix = identifier.substr(0, 2)
|
|
272
|
-
return POINTER_KEY_BY_PREFIX[prefix] ||
|
|
273
|
-
(() => { throw new NoDefaultAensPointerError(prefix) })()
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
/**
|
|
277
|
-
* Get the minimum AENS name fee
|
|
278
|
-
* @function
|
|
279
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
280
|
-
* @param {String} name the AENS name to get the fee for
|
|
281
|
-
* @return {String} the minimum fee for the AENS name auction
|
|
282
|
-
*/
|
|
283
|
-
export function getMinimumNameFee (name) {
|
|
284
|
-
ensureNameValid(name)
|
|
285
|
-
const nameLength = name.length - AENS_SUFFIX.length
|
|
286
|
-
return NAME_BID_RANGES[Math.min(nameLength, NAME_MAX_LENGTH_FEE)]
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
/**
|
|
290
|
-
* Compute bid fee for AENS auction
|
|
291
|
-
* @function
|
|
292
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
293
|
-
* @param {String} name the AENS name to get the fee for
|
|
294
|
-
* @param {Number|String} startFee Auction start fee
|
|
295
|
-
* @param {Number} [increment=0.5] Bid multiplier(In percentage, must be between 0 and 1)
|
|
296
|
-
* @return {String} Bid fee
|
|
297
|
-
*/
|
|
298
|
-
export function computeBidFee (name, startFee, increment = NAME_FEE_BID_INCREMENT) {
|
|
299
|
-
if (!(Number(increment) === increment && increment % 1 !== 0)) throw new IllegalBidFeeError(`Increment must be float. Current increment ${increment}`)
|
|
300
|
-
if (increment < NAME_FEE_BID_INCREMENT) throw new IllegalBidFeeError(`minimum increment percentage is ${NAME_FEE_BID_INCREMENT}`)
|
|
301
|
-
return ceil(
|
|
302
|
-
BigNumber(startFee ?? getMinimumNameFee(name)).times(BigNumber(NAME_FEE_BID_INCREMENT).plus(1))
|
|
303
|
-
)
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
/**
|
|
307
|
-
* Compute auction end height
|
|
308
|
-
* @function
|
|
309
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
310
|
-
* @param {String} name
|
|
311
|
-
* @param {Number|String} claimHeight Auction starting height
|
|
312
|
-
* @return {String} Auction end height
|
|
313
|
-
*/
|
|
314
|
-
export function computeAuctionEndBlock (name, claimHeight) {
|
|
315
|
-
ensureNameValid(name)
|
|
316
|
-
const length = name.length - AENS_SUFFIX.length
|
|
317
|
-
const h = (length <= 4 && NAME_BID_TIMEOUTS[4]) ||
|
|
318
|
-
(length <= 8 && NAME_BID_TIMEOUTS[8]) ||
|
|
319
|
-
(length <= 12 && NAME_BID_TIMEOUTS[12]) ||
|
|
320
|
-
NAME_BID_TIMEOUTS[13]
|
|
321
|
-
return h.plus(claimHeight).toString(10)
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
/**
|
|
325
|
-
* Is name accept going to auction
|
|
326
|
-
* @function
|
|
327
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
328
|
-
* @param {String} name
|
|
329
|
-
* @return {Boolean}
|
|
330
|
-
*/
|
|
331
|
-
export function isAuctionName (name) {
|
|
332
|
-
ensureNameValid(name)
|
|
333
|
-
return name.length < 13 + AENS_SUFFIX.length
|
|
334
|
-
}
|