@aeternity/aepp-sdk 10.0.0 → 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/README.md +15 -14
- package/dist/aepp-sdk.browser-script.js +1 -1
- package/dist/aepp-sdk.browser-script.js.LICENSE.txt +13 -40
- 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 +118 -0
- 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.js → handlers.mjs} +163 -130
- package/es/channel/handlers.mjs.map +1 -0
- package/es/channel/index.d.ts +634 -0
- package/es/channel/index.mjs +978 -0
- package/es/channel/index.mjs.map +1 -0
- package/es/channel/internal.d.ts +100 -0
- package/es/channel/internal.mjs +328 -0
- package/es/channel/internal.mjs.map +1 -0
- 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 +496 -0
- package/es/contract/aci.mjs.map +1 -0
- 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 +49 -0
- package/es/index.mjs.map +1 -0
- 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 +100 -0
- package/es/tx/builder/constants.mjs.map +1 -0
- package/es/tx/builder/field-types.d.ts +62 -0
- package/es/tx/builder/field-types.mjs +126 -0
- package/es/tx/builder/field-types.mjs.map +1 -0
- package/es/tx/builder/helpers.d.ts +131 -0
- package/es/tx/builder/helpers.mjs +223 -0
- package/es/tx/builder/helpers.mjs.map +1 -0
- package/es/tx/builder/index.d.ts +75 -0
- package/es/tx/builder/index.mjs +424 -0
- package/es/tx/builder/index.mjs.map +1 -0
- package/es/tx/builder/schema.d.ts +350 -0
- package/es/tx/builder/schema.mjs +320 -0
- package/es/tx/builder/schema.mjs.map +1 -0
- package/es/tx/index.d.ts +63 -0
- package/es/tx/index.mjs +209 -0
- package/es/tx/index.mjs.map +1 -0
- 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 +240 -0
- package/es/tx/validator.mjs.map +1 -0
- 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 +2 -0
- package/es/typings/blakejs/index.d.mjs.map +1 -0
- 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.js → amount-formatter.mjs} +38 -44
- package/es/utils/amount-formatter.mjs.map +1 -0
- 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 +23 -0
- package/es/utils/bignumber.mjs.map +1 -0
- package/es/{bytes.d.ts → utils/bytes.d.ts} +10 -13
- package/es/utils/{bytes.js → bytes.mjs} +26 -22
- package/es/utils/bytes.mjs.map +1 -0
- package/es/utils/crypto.d.ts +103 -0
- package/es/utils/crypto.mjs +221 -0
- package/es/utils/crypto.mjs.map +1 -0
- package/es/utils/encoder.d.ts +26 -0
- package/es/utils/encoder.mjs +102 -0
- package/es/utils/encoder.mjs.map +1 -0
- package/es/utils/errors.d.ts +481 -0
- package/es/utils/errors.mjs +882 -0
- package/es/utils/errors.mjs.map +1 -0
- package/es/utils/hd-wallet.d.ts +34 -0
- package/es/utils/hd-wallet.mjs +122 -0
- package/es/utils/hd-wallet.mjs.map +1 -0
- package/es/utils/json-big.d.ts +5 -0
- package/es/utils/json-big.mjs +41 -0
- package/es/utils/json-big.mjs.map +1 -0
- package/es/utils/keystore.d.ts +51 -0
- package/es/utils/keystore.mjs +145 -0
- package/es/utils/keystore.mjs.map +1 -0
- package/es/{mptree.d.ts → utils/mptree.d.ts} +5 -8
- package/es/utils/{mptree.js → mptree.mjs} +33 -25
- package/es/utils/mptree.mjs.map +1 -0
- package/es/utils/other.d.ts +14 -0
- package/es/utils/other.mjs +28 -0
- package/es/utils/other.mjs.map +1 -0
- package/es/{semver-satisfies.d.ts → utils/semver-satisfies.d.ts} +0 -0
- package/es/utils/{semver-satisfies.js → semver-satisfies.mjs} +1 -1
- package/es/utils/semver-satisfies.mjs.map +1 -0
- package/es/utils/string.d.ts +24 -0
- package/es/utils/{string.js → string.mjs} +9 -11
- package/es/utils/string.mjs.map +1 -0
- package/package.json +67 -64
- 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.js → src/aepp-wallet-communication/connection-proxy.ts} +16 -9
- 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} +238 -143
- 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.ts +96 -0
- 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 -41
- package/src/utils/autorest.ts +90 -0
- package/src/utils/bignumber.ts +9 -19
- package/src/utils/bytes.ts +15 -16
- package/src/utils/crypto.ts +217 -0
- package/src/utils/encoder.ts +98 -0
- package/src/utils/errors.ts +817 -0
- 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 +26 -20
- package/src/utils/other.ts +28 -43
- package/src/utils/string.ts +8 -10
- package/CHANGELOG.md +0 -1603
- package/es/account/base.js +0 -169
- package/es/account/base.js.map +0 -1
- package/es/account/memory.js +0 -84
- package/es/account/memory.js.map +0 -1
- package/es/account/multiple.js +0 -178
- package/es/account/multiple.js.map +0 -1
- package/es/ae/aens.js +0 -408
- package/es/ae/aens.js.map +0 -1
- package/es/ae/aepp.js +0 -45
- 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 +0 -206
- package/es/ae/index.js.map +0 -1
- package/es/ae/oracle.js +0 -322
- package/es/ae/oracle.js.map +0 -1
- package/es/ae/universal.js +0 -45
- package/es/ae/universal.js.map +0 -1
- package/es/ae/wallet.js +0 -50
- package/es/ae/wallet.js.map +0 -1
- package/es/amount-formatter.d.ts +0 -58
- package/es/bignumber.d.ts +0 -24
- package/es/chain/index.js +0 -256
- package/es/chain/index.js.map +0 -1
- package/es/chain/node.js +0 -394
- package/es/chain/node.js.map +0 -1
- package/es/channel/handlers.js.map +0 -1
- package/es/channel/index.js +0 -980
- package/es/channel/index.js.map +0 -1
- package/es/channel/internal.js +0 -266
- 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 +0 -170
- 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/crypto-ts.d.ts +0 -9
- package/es/index.js +0 -57
- package/es/index.js.map +0 -1
- package/es/node-pool/index.js +0 -187
- package/es/node-pool/index.js.map +0 -1
- package/es/node.js +0 -132
- package/es/node.js.map +0 -1
- package/es/other.d.ts +0 -31
- package/es/string.d.ts +0 -26
- package/es/tx/builder/helpers.js +0 -305
- package/es/tx/builder/helpers.js.map +0 -1
- package/es/tx/builder/index.js +0 -595
- package/es/tx/builder/index.js.map +0 -1
- package/es/tx/builder/schema.js +0 -814
- package/es/tx/builder/schema.js.map +0 -1
- package/es/tx/index.js +0 -300
- package/es/tx/index.js.map +0 -1
- package/es/tx/tx-object.js +0 -276
- package/es/tx/tx-object.js.map +0 -1
- package/es/tx/tx.js +0 -937
- package/es/tx/tx.js.map +0 -1
- package/es/tx/validator.js +0 -208
- package/es/tx/validator.js.map +0 -1
- package/es/typings/blakejs/index.d.js +0 -2
- package/es/typings/blakejs/index.d.js.map +0 -1
- package/es/utils/aepp-wallet-communication/connection/browser-runtime.js +0 -131
- package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +0 -1
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.js +0 -184
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +0 -1
- package/es/utils/aepp-wallet-communication/connection/index.js +0 -84
- package/es/utils/aepp-wallet-communication/connection/index.js.map +0 -1
- package/es/utils/aepp-wallet-communication/content-script-bridge.js +0 -97
- package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +0 -1
- package/es/utils/aepp-wallet-communication/helpers.js +0 -103
- package/es/utils/aepp-wallet-communication/helpers.js.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js +0 -329
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.js +0 -270
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.js +0 -533
- 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 +0 -109
- 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 +0 -67
- package/es/utils/async-init.js.map +0 -1
- package/es/utils/bignumber.js +0 -28
- 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 +0 -304
- package/es/utils/crypto.js.map +0 -1
- package/es/utils/hd-wallet.js +0 -112
- package/es/utils/hd-wallet.js.map +0 -1
- package/es/utils/json-big.js +0 -45
- package/es/utils/json-big.js.map +0 -1
- package/es/utils/keystore.js +0 -228
- package/es/utils/keystore.js.map +0 -1
- package/es/utils/mptree.js.map +0 -1
- package/es/utils/other.js +0 -43
- package/es/utils/other.js.map +0 -1
- package/es/utils/semver-satisfies.js.map +0 -1
- package/es/utils/string.js.map +0 -1
- package/es/utils/swagger.js +0 -132
- package/es/utils/swagger.js.map +0 -1
- package/src/account/base.js +0 -153
- package/src/account/memory.js +0 -78
- package/src/account/multiple.js +0 -154
- package/src/ae/aens.js +0 -366
- package/src/ae/aepp.js +0 -45
- package/src/ae/contract.js +0 -285
- package/src/ae/index.js +0 -167
- package/src/ae/oracle.js +0 -296
- package/src/ae/universal.js +0 -47
- package/src/ae/wallet.js +0 -50
- package/src/chain/index.js +0 -250
- package/src/chain/node.js +0 -293
- package/src/channel/index.js +0 -898
- package/src/channel/internal.js +0 -231
- package/src/contract/aci/index.js +0 -317
- package/src/contract/aci/transformation.js +0 -72
- package/src/contract/compiler.js +0 -195
- package/src/contract/ga/helpers.js +0 -17
- package/src/contract/ga/index.js +0 -147
- package/src/contract/index.js +0 -163
- package/src/index.js +0 -90
- package/src/node-pool/index.js +0 -171
- package/src/node.js +0 -118
- package/src/tx/builder/helpers.js +0 -325
- package/src/tx/builder/index.js +0 -460
- package/src/tx/builder/schema.js +0 -1211
- package/src/tx/index.js +0 -301
- package/src/tx/tx-object.js +0 -186
- package/src/tx/tx.js +0 -622
- package/src/tx/validator.js +0 -161
- package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +0 -114
- package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +0 -161
- package/src/utils/aepp-wallet-communication/connection/index.js +0 -85
- package/src/utils/aepp-wallet-communication/content-script-bridge.js +0 -85
- package/src/utils/aepp-wallet-communication/helpers.js +0 -70
- package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +0 -268
- package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +0 -223
- package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +0 -390
- package/src/utils/aepp-wallet-communication/schema.js +0 -108
- package/src/utils/aepp-wallet-communication/wallet-detector.js +0 -91
- package/src/utils/async-init.js +0 -41
- package/src/utils/crypto.js +0 -312
- package/src/utils/hd-wallet.js +0 -115
- package/src/utils/json-big.js +0 -26
- package/src/utils/keystore.js +0 -223
- package/src/utils/swagger.js +0 -133
package/src/node-pool/index.js
DELETED
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* NodePool module
|
|
3
|
-
* @module @aeternity/aepp-sdk/es/node-pool
|
|
4
|
-
* @export NodePool
|
|
5
|
-
* @example import { NodePool } from '@aeternity/aepp-sdk'
|
|
6
|
-
*/
|
|
7
|
-
import stampit from '@stamp/it'
|
|
8
|
-
import { getNetworkId } from '../node'
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Node Pool Stamp
|
|
12
|
-
* This stamp allow you to make basic manipulation(add, remove, select) on list of nodes
|
|
13
|
-
* @function
|
|
14
|
-
* @alias module:@aeternity/aepp-sdk/es/node-pool
|
|
15
|
-
* @rtype Stamp
|
|
16
|
-
* @param {Object} [options={}] - Initializer object
|
|
17
|
-
* @param {Array} [options.nodes] - Array with Node instances
|
|
18
|
-
* @return {Object} NodePool instance
|
|
19
|
-
*/
|
|
20
|
-
export default stampit({
|
|
21
|
-
init ({ nodes = [] } = {}) {
|
|
22
|
-
this.pool = new Map()
|
|
23
|
-
this.validateNodes(nodes)
|
|
24
|
-
|
|
25
|
-
nodes.forEach((node, i) => {
|
|
26
|
-
const { name, instance } = node
|
|
27
|
-
this.addNode(name, instance, i === 0)
|
|
28
|
-
})
|
|
29
|
-
if (nodes.length) this.selectNode(nodes[0].name)
|
|
30
|
-
},
|
|
31
|
-
propertyDescriptors: {
|
|
32
|
-
api: {
|
|
33
|
-
enumerable: true,
|
|
34
|
-
configurable: false,
|
|
35
|
-
get () {
|
|
36
|
-
if (!this.selectedNode || !this.selectedNode.instance) {
|
|
37
|
-
throw new Error('You can\'t use Node API. Node is not connected or not defined!')
|
|
38
|
-
}
|
|
39
|
-
return this.selectedNode.instance.api
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
methods: {
|
|
44
|
-
/**
|
|
45
|
-
* Add Node
|
|
46
|
-
* @function
|
|
47
|
-
* @alias module:@aeternity/aepp-sdk/es/node-pool
|
|
48
|
-
* @rtype (name: String, nodeInstance: Object, select: Boolean) => void
|
|
49
|
-
* @param {String} name - Node name
|
|
50
|
-
* @param {Object} node - Node instance
|
|
51
|
-
* @param {Boolean} select - Select this node as current
|
|
52
|
-
* @return {void}
|
|
53
|
-
* @example
|
|
54
|
-
* // add and select new node with name 'testNode'
|
|
55
|
-
* nodePool.addNode('testNode', awaitNode({ url, internalUrl }), true)
|
|
56
|
-
*/
|
|
57
|
-
addNode (name, node, select = false) {
|
|
58
|
-
if (this.pool.has(name)) throw new Error(`Node with name ${name} already exist`)
|
|
59
|
-
|
|
60
|
-
this.validateNodes([{ name, instance: node }])
|
|
61
|
-
|
|
62
|
-
this.pool.set(name, {
|
|
63
|
-
name,
|
|
64
|
-
instance: node,
|
|
65
|
-
url: node.url,
|
|
66
|
-
internalUrl: node.internalUrl,
|
|
67
|
-
networkId: node.nodeNetworkId,
|
|
68
|
-
version: node.version,
|
|
69
|
-
consensusProtocolVersion: node.consensusProtocolVersion
|
|
70
|
-
})
|
|
71
|
-
if (select || !this.selectedNode) {
|
|
72
|
-
this.selectNode(name)
|
|
73
|
-
}
|
|
74
|
-
},
|
|
75
|
-
/**
|
|
76
|
-
* Select Node
|
|
77
|
-
* @function
|
|
78
|
-
* @alias module:@aeternity/aepp-sdk/es/node-pool
|
|
79
|
-
* @rtype (name: String) => void
|
|
80
|
-
* @param {String} name - Node name
|
|
81
|
-
* @return {void}
|
|
82
|
-
* @example
|
|
83
|
-
* nodePool.selectNode('testNode')
|
|
84
|
-
*/
|
|
85
|
-
selectNode (name) {
|
|
86
|
-
if (!this.pool.has(name)) throw new Error(`Node with name ${name} not in pool`)
|
|
87
|
-
|
|
88
|
-
this.selectedNode = this.pool.get(name)
|
|
89
|
-
},
|
|
90
|
-
/**
|
|
91
|
-
* Get NetworkId of current Node
|
|
92
|
-
* @function
|
|
93
|
-
* @alias module:@aeternity/aepp-sdk/es/node-pool
|
|
94
|
-
* @rtype () => String
|
|
95
|
-
* @return {String}
|
|
96
|
-
* @example
|
|
97
|
-
* nodePool.getNetworkId()
|
|
98
|
-
*/
|
|
99
|
-
getNetworkId,
|
|
100
|
-
/**
|
|
101
|
-
* Check if you have selected node
|
|
102
|
-
* @function
|
|
103
|
-
* @alias module:@aeternity/aepp-sdk/es/node-pool
|
|
104
|
-
* @rtype () => Boolean
|
|
105
|
-
* @return {Boolean}
|
|
106
|
-
* @example
|
|
107
|
-
* nodePool.isNodeConnected()
|
|
108
|
-
*/
|
|
109
|
-
isNodeConnected () {
|
|
110
|
-
return !!this.selectedNode.instance
|
|
111
|
-
},
|
|
112
|
-
/**
|
|
113
|
-
* Get information about node
|
|
114
|
-
* @function
|
|
115
|
-
* @alias module:@aeternity/aepp-sdk/es/node-pool
|
|
116
|
-
* @rtype () => Object
|
|
117
|
-
* @return {Object}
|
|
118
|
-
* @example
|
|
119
|
-
* nodePool.getNodeInfo() // { name, version, networkId, protocol, ... }
|
|
120
|
-
*/
|
|
121
|
-
getNodeInfo () {
|
|
122
|
-
if (!this.isNodeConnected()) throw new Error('Can not get node info. Node is not connected')
|
|
123
|
-
return {
|
|
124
|
-
name: this.selectedNode.name,
|
|
125
|
-
...this.selectedNode.instance.getNodeInfo()
|
|
126
|
-
}
|
|
127
|
-
},
|
|
128
|
-
/**
|
|
129
|
-
* Get array of available nodes
|
|
130
|
-
* @function
|
|
131
|
-
* @alias module:@aeternity/aepp-sdk/es/node-pool
|
|
132
|
-
* @rtype () => Object[]
|
|
133
|
-
* @return {Object[]}
|
|
134
|
-
* @example
|
|
135
|
-
* nodePool.getNodesInPool()
|
|
136
|
-
*/
|
|
137
|
-
getNodesInPool () {
|
|
138
|
-
return Array.from(this.pool.entries()).map(([name, node]) => ({
|
|
139
|
-
name,
|
|
140
|
-
...node.instance.getNodeInfo()
|
|
141
|
-
}))
|
|
142
|
-
},
|
|
143
|
-
validateNodes (nodes) {
|
|
144
|
-
// TODO: validate it on TypeScript level instead
|
|
145
|
-
// (to speedup development, save runtime resources)
|
|
146
|
-
if (!Array.isArray(nodes)) throw new Error('"nodes" should be an array')
|
|
147
|
-
const notObject = nodes.map(n => typeof n).find(t => t !== 'object')
|
|
148
|
-
if (notObject) throw new Error(`Each node should be an object, got ${notObject} instead`)
|
|
149
|
-
const wrongFields = nodes.find(n => typeof n.name !== 'string' || typeof n.instance !== 'object')
|
|
150
|
-
if (notObject) {
|
|
151
|
-
throw new Error(
|
|
152
|
-
'Each node should have name (string), instance (object) ' +
|
|
153
|
-
`fields, got ${JSON.stringify(wrongFields)} instead`
|
|
154
|
-
)
|
|
155
|
-
}
|
|
156
|
-
const wrongInstanceFields = nodes
|
|
157
|
-
.map(n => n.instance)
|
|
158
|
-
.find(i => typeof i.api !== 'object' || typeof i.genesisHash !== 'string' ||
|
|
159
|
-
typeof i.consensusProtocolVersion !== 'number')
|
|
160
|
-
if (wrongInstanceFields) {
|
|
161
|
-
throw new Error(
|
|
162
|
-
'Each node instance should have api (object), consensusProtocolVersion (number), ' +
|
|
163
|
-
`genesisHash (string) fields, got ${JSON.stringify(wrongInstanceFields)} instead`
|
|
164
|
-
)
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
},
|
|
168
|
-
props: {
|
|
169
|
-
selectedNode: {}
|
|
170
|
-
}
|
|
171
|
-
})
|
package/src/node.js
DELETED
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* ISC License (ISC)
|
|
3
|
-
* Copyright (c) 2021 aeternity developers
|
|
4
|
-
*
|
|
5
|
-
* Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
-
* purpose with or without fee is hereby granted, provided that the above
|
|
7
|
-
* copyright notice and this permission notice appear in all copies.
|
|
8
|
-
*
|
|
9
|
-
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
10
|
-
* REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
11
|
-
* AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
12
|
-
* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
13
|
-
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
14
|
-
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
15
|
-
* PERFORMANCE OF THIS SOFTWARE.
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Node module
|
|
20
|
-
* @module @aeternity/aepp-sdk/es/node
|
|
21
|
-
* @export Node
|
|
22
|
-
* @example import { Node } from '@aeternity/aepp-sdk'
|
|
23
|
-
*/
|
|
24
|
-
|
|
25
|
-
import AsyncInit from './utils/async-init'
|
|
26
|
-
import genSwaggerClient from './utils/swagger'
|
|
27
|
-
import semverSatisfies from './utils/semver-satisfies'
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Obtain networkId from account or node
|
|
31
|
-
* @instance
|
|
32
|
-
* @category async
|
|
33
|
-
* @rtype () => networkId: String
|
|
34
|
-
* @return {String} NetworkId
|
|
35
|
-
*/
|
|
36
|
-
export function getNetworkId ({ networkId, force = false } = {}) {
|
|
37
|
-
const res = networkId || this.networkId || this.selectedNode?.networkId
|
|
38
|
-
if (!force && !res) throw new Error('networkId is not provided')
|
|
39
|
-
if (force && !res) return null
|
|
40
|
-
return res
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* {@link genSwaggerClient} based Node remote API Stamp
|
|
45
|
-
* @function
|
|
46
|
-
* @alias module:@aeternity/aepp-sdk/es/node
|
|
47
|
-
* @rtype Stamp
|
|
48
|
-
* @param {Object} [options={}] - Options
|
|
49
|
-
* @param {String} options.url - Base URL for Node
|
|
50
|
-
* @param {String} options.internalUrl - Base URL for internal requests
|
|
51
|
-
* @param {Object} options.axiosConfig - Object with axios configuration
|
|
52
|
-
* @param {Object} options.axiosConfig.config
|
|
53
|
-
* @param {Function} options.axiosConfig.errorHandler - (err) => throw err
|
|
54
|
-
* @return {Object} Node client
|
|
55
|
-
* @example Node({url: 'https://testnet.aeternity.io'})
|
|
56
|
-
*/
|
|
57
|
-
const Node = AsyncInit.compose({
|
|
58
|
-
async init ({ url, internalUrl, ignoreVersion }) {
|
|
59
|
-
if (!url) throw new Error('"url" required')
|
|
60
|
-
this.url = url.replace(/\/$/, '')
|
|
61
|
-
this.internalUrl = internalUrl ? internalUrl.replace(/\/$/, '') : this.url
|
|
62
|
-
const client = await genSwaggerClient(`${this.url}/api?oas3`, {
|
|
63
|
-
internalUrl: this.internalUrl,
|
|
64
|
-
responseInterceptor: response => {
|
|
65
|
-
if (response.ok) return
|
|
66
|
-
return Object.assign(response, {
|
|
67
|
-
statusText: `${new URL(response.url).pathname.slice(1)} error: ` + response.body.reason
|
|
68
|
-
})
|
|
69
|
-
}
|
|
70
|
-
})
|
|
71
|
-
this.version = client.spec.info.version
|
|
72
|
-
if (
|
|
73
|
-
!semverSatisfies(this.version, NODE_GE_VERSION, NODE_LT_VERSION) &&
|
|
74
|
-
!ignoreVersion
|
|
75
|
-
) {
|
|
76
|
-
throw new Error(
|
|
77
|
-
`Unsupported node version ${this.version}. ` +
|
|
78
|
-
`Supported: >= ${NODE_GE_VERSION} < ${NODE_LT_VERSION}`
|
|
79
|
-
)
|
|
80
|
-
}
|
|
81
|
-
this.api = client.api
|
|
82
|
-
|
|
83
|
-
const {
|
|
84
|
-
nodeRevision: revision, genesisKeyBlockHash: genesisHash, networkId,
|
|
85
|
-
protocols, topBlockHeight
|
|
86
|
-
} = await this.api.getStatus()
|
|
87
|
-
this.consensusProtocolVersion = protocols
|
|
88
|
-
.filter(({ effectiveAtHeight }) => topBlockHeight >= effectiveAtHeight)
|
|
89
|
-
.reduce(
|
|
90
|
-
(acc, p) => p.effectiveAtHeight > acc.effectiveAtHeight ? p : acc,
|
|
91
|
-
{ effectiveAtHeight: -1, version: 0 }
|
|
92
|
-
)
|
|
93
|
-
.version
|
|
94
|
-
this.nodeNetworkId = networkId
|
|
95
|
-
return Object.assign(this, { revision, genesisHash })
|
|
96
|
-
},
|
|
97
|
-
methods: {
|
|
98
|
-
getNodeInfo () {
|
|
99
|
-
return {
|
|
100
|
-
url: this.url,
|
|
101
|
-
internalUrl: this.internalUrl,
|
|
102
|
-
nodeNetworkId: this.nodeNetworkId,
|
|
103
|
-
version: this.version,
|
|
104
|
-
consensusProtocolVersion: this.consensusProtocolVersion
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
},
|
|
108
|
-
props: {
|
|
109
|
-
version: null,
|
|
110
|
-
consensusProtocolVersion: null,
|
|
111
|
-
nodeNetworkId: null
|
|
112
|
-
}
|
|
113
|
-
})
|
|
114
|
-
|
|
115
|
-
const NODE_GE_VERSION = '6.2.0'
|
|
116
|
-
const NODE_LT_VERSION = '7.0.0'
|
|
117
|
-
|
|
118
|
-
export default Node
|
|
@@ -1,325 +0,0 @@
|
|
|
1
|
-
import * as R from 'ramda'
|
|
2
|
-
import BigNumber from 'bignumber.js'
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
decodeBase58Check,
|
|
6
|
-
decodeBase64Check,
|
|
7
|
-
encodeBase58Check, encodeBase64Check,
|
|
8
|
-
hash,
|
|
9
|
-
salt
|
|
10
|
-
} from '../../utils/crypto'
|
|
11
|
-
import { toBytes } from '../../utils/bytes'
|
|
12
|
-
import {
|
|
13
|
-
ID_TAG_PREFIX,
|
|
14
|
-
PREFIX_ID_TAG,
|
|
15
|
-
NAME_BID_RANGES,
|
|
16
|
-
NAME_BID_MAX_LENGTH,
|
|
17
|
-
NAME_FEE,
|
|
18
|
-
NAME_FEE_BID_INCREMENT,
|
|
19
|
-
NAME_BID_TIMEOUTS,
|
|
20
|
-
NAME_MAX_LENGTH_FEE,
|
|
21
|
-
POINTER_KEY_BY_PREFIX
|
|
22
|
-
} from './schema'
|
|
23
|
-
import { ceil } from '../../utils/bignumber'
|
|
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
|
-
const base64Types = ['tx', 'st', 'ss', 'pi', 'ov', 'or', 'cb', 'cs', 'ba']
|
|
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 a domain 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 domain 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 `cm_${encodeBase58Check(hash(Buffer.concat([Buffer.from(name.toLowerCase()), formatSalt(salt)])))}`
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* Decode data using the default encoding/decoding algorithm
|
|
111
|
-
* @function
|
|
112
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
113
|
-
* @param {string} data An Base58/64check encoded and prefixed string (ex tx_..., sg_..., ak_....)
|
|
114
|
-
* @param {string} [requiredPrefix] Ensure that data have this prefix
|
|
115
|
-
* @return {Buffer} Decoded data
|
|
116
|
-
*/
|
|
117
|
-
export function decode (data, requiredPrefix) {
|
|
118
|
-
const [prefix, payload, extra] = data.split('_')
|
|
119
|
-
if (!payload) throw new Error(`Encoded string missing payload: ${data}`)
|
|
120
|
-
if (extra) throw new Error(`Encoded string have extra parts: ${data}`)
|
|
121
|
-
if (requiredPrefix && requiredPrefix !== prefix) {
|
|
122
|
-
throw new Error(`Encoded string have a wrong type: ${prefix} (expected: ${requiredPrefix})`)
|
|
123
|
-
}
|
|
124
|
-
return (base64Types.includes(prefix) ? decodeBase64Check : decodeBase58Check)(payload)
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Encode data using the default encoding/decoding algorithm
|
|
129
|
-
* @function
|
|
130
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
131
|
-
* @param {Buffer|String} data An decoded data
|
|
132
|
-
* @param {string} type Prefix of Transaction
|
|
133
|
-
* @return {String} Encoded string Base58check or Base64check data
|
|
134
|
-
*/
|
|
135
|
-
export function encode (data, type) {
|
|
136
|
-
return `${type}_${base64Types.includes(type)
|
|
137
|
-
? encodeBase64Check(data)
|
|
138
|
-
: encodeBase58Check(data)}`
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* Utility function to create and _id type
|
|
143
|
-
* @function
|
|
144
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
145
|
-
* @param {string} hashId Encoded hash
|
|
146
|
-
* @return {Buffer} Buffer Buffer with ID tag and decoded HASh
|
|
147
|
-
*/
|
|
148
|
-
export function writeId (hashId) {
|
|
149
|
-
if (typeof hashId !== 'string') {
|
|
150
|
-
throw new Error(`Address should be a string, got ${hashId} instead`)
|
|
151
|
-
}
|
|
152
|
-
const prefix = hashId.slice(0, 2)
|
|
153
|
-
const idTag = PREFIX_ID_TAG[prefix]
|
|
154
|
-
if (!idTag) throw new Error(`Id tag for prefix ${prefix} not found.`)
|
|
155
|
-
return Buffer.from([...toBytes(idTag), ...decode(hashId, prefix)])
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* Utility function to read and _id type
|
|
160
|
-
* @function
|
|
161
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
162
|
-
* @param {Buffer} buf Data
|
|
163
|
-
* @return {String} Encoided hash string with prefix
|
|
164
|
-
*/
|
|
165
|
-
export function readId (buf) {
|
|
166
|
-
const tag = buf.readUIntBE(0, 1)
|
|
167
|
-
const prefix = ID_TAG_PREFIX[tag]
|
|
168
|
-
if (!prefix) throw new Error(`Prefix for id-tag ${tag} not found.`)
|
|
169
|
-
return encode(buf.slice(1, buf.length), prefix)
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
/**
|
|
173
|
-
* Utility function to convert int to bytes
|
|
174
|
-
* @function
|
|
175
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
176
|
-
* @param {Number|String|BigNumber} val Value
|
|
177
|
-
* @return {Buffer} Buffer Buffer from number(BigEndian)
|
|
178
|
-
*/
|
|
179
|
-
export function writeInt (val) {
|
|
180
|
-
return toBytes(val, true)
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
/**
|
|
184
|
-
* Utility function to convert bytes to int
|
|
185
|
-
* @function
|
|
186
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
187
|
-
* @param {Buffer} buf Value
|
|
188
|
-
* @return {String} Buffer Buffer from number(BigEndian)
|
|
189
|
-
*/
|
|
190
|
-
export function readInt (buf = Buffer.from([])) {
|
|
191
|
-
return BigNumber(buf.toString('hex'), 16).toString(10)
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
/**
|
|
195
|
-
* Helper function to build pointers for name update TX
|
|
196
|
-
* @function
|
|
197
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
198
|
-
* @param {Array} pointers - Array of pointers
|
|
199
|
-
* ([ { key: 'account_pubkey', id: 'ak_32klj5j23k23j5423l434l2j3423'} ])
|
|
200
|
-
* @return {Array} Serialized pointers array
|
|
201
|
-
*/
|
|
202
|
-
export function buildPointers (pointers) {
|
|
203
|
-
return pointers.map(
|
|
204
|
-
p => [
|
|
205
|
-
toBytes(p.key),
|
|
206
|
-
writeId(p.id)
|
|
207
|
-
]
|
|
208
|
-
)
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
/**
|
|
212
|
-
* Helper function to read pointers from name update TX
|
|
213
|
-
* @function
|
|
214
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
215
|
-
* @param {Array} pointers - Array of pointers
|
|
216
|
-
* ([ { key: 'account_pubkey', id: 'ak_32klj5j23k23j5423l434l2j3423'} ])
|
|
217
|
-
* @return {Array} Deserialize pointer array
|
|
218
|
-
*/
|
|
219
|
-
export function readPointers (pointers) {
|
|
220
|
-
return pointers.map(
|
|
221
|
-
([key, id]) => Object.assign({
|
|
222
|
-
key: key.toString(),
|
|
223
|
-
id: readId(id)
|
|
224
|
-
})
|
|
225
|
-
)
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
/**
|
|
229
|
-
* Ensure that name is valid
|
|
230
|
-
* @function
|
|
231
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
232
|
-
* @param {string} name
|
|
233
|
-
* @return void
|
|
234
|
-
* @throws Error
|
|
235
|
-
*/
|
|
236
|
-
export function ensureNameValid (name) {
|
|
237
|
-
if (!name || typeof name !== 'string') throw new Error('Name must be a string')
|
|
238
|
-
if (!name.endsWith('.chain')) throw new Error(`Name should end with .chain: ${name}`)
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
/**
|
|
242
|
-
* Is name valid
|
|
243
|
-
* @function
|
|
244
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
245
|
-
* @param {string} name
|
|
246
|
-
* @return Boolean
|
|
247
|
-
*/
|
|
248
|
-
export function isNameValid (name) {
|
|
249
|
-
try {
|
|
250
|
-
ensureNameValid(name)
|
|
251
|
-
return true
|
|
252
|
-
} catch (error) {
|
|
253
|
-
return false
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
/**
|
|
258
|
-
* @param identifier - account/oracle/contract address, or channel
|
|
259
|
-
* @returns {String} default AENS pointer key
|
|
260
|
-
* @throws exception when default key not defined
|
|
261
|
-
*/
|
|
262
|
-
export function getDefaultPointerKey (identifier) {
|
|
263
|
-
decode(identifier)
|
|
264
|
-
const prefix = identifier.substr(0, 2)
|
|
265
|
-
return POINTER_KEY_BY_PREFIX[prefix] ||
|
|
266
|
-
(() => { throw new Error(`Default AENS pointer key is not defined for ${prefix} prefix`) })()
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
/**
|
|
270
|
-
* Get the minimum name fee for a domain
|
|
271
|
-
* @function
|
|
272
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
273
|
-
* @param {String} domain the domain name to get the fee for
|
|
274
|
-
* @return {String} the minimum fee for the domain auction
|
|
275
|
-
*/
|
|
276
|
-
export function getMinimumNameFee (domain) {
|
|
277
|
-
const nameLength = domain.replace('.chain', '').length
|
|
278
|
-
return NAME_BID_RANGES[nameLength >= NAME_MAX_LENGTH_FEE ? NAME_MAX_LENGTH_FEE : nameLength]
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
/**
|
|
282
|
-
* Compute bid fee for AENS auction
|
|
283
|
-
* @function
|
|
284
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
285
|
-
* @param {String} domain the domain name to get the fee for
|
|
286
|
-
* @param {Number|String} startFee Auction start fee
|
|
287
|
-
* @param {Number} [increment=0.5] Bid multiplier(In percentage, must be between 0 and 1)
|
|
288
|
-
* @return {String} Bid fee
|
|
289
|
-
*/
|
|
290
|
-
export function computeBidFee (domain, startFee = NAME_FEE, increment = NAME_FEE_BID_INCREMENT) {
|
|
291
|
-
if (!(Number(increment) === increment && increment % 1 !== 0)) throw new Error(`Increment must be float. Current increment ${increment}`)
|
|
292
|
-
if (increment < NAME_FEE_BID_INCREMENT) throw new Error(`minimum increment percentage is ${NAME_FEE_BID_INCREMENT}`)
|
|
293
|
-
return ceil(
|
|
294
|
-
BigNumber(BigNumber(startFee).eq(NAME_FEE) ? getMinimumNameFee(domain) : startFee)
|
|
295
|
-
.times(BigNumber(NAME_FEE_BID_INCREMENT).plus(1))
|
|
296
|
-
)
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
/**
|
|
300
|
-
* Compute auction end height
|
|
301
|
-
* @function
|
|
302
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
303
|
-
* @param {String} domain the domain name to get the fee for
|
|
304
|
-
* @param {Number|String} claimHeight Auction starting height
|
|
305
|
-
* @return {String} Auction end height
|
|
306
|
-
*/
|
|
307
|
-
export function computeAuctionEndBlock (domain, claimHeight) {
|
|
308
|
-
return R.cond([
|
|
309
|
-
[R.lt(5), R.always(NAME_BID_TIMEOUTS[4].plus(claimHeight))],
|
|
310
|
-
[R.lt(9), R.always(NAME_BID_TIMEOUTS[8].plus(claimHeight))],
|
|
311
|
-
[R.lte(NAME_BID_MAX_LENGTH), R.always(NAME_BID_TIMEOUTS[12].plus(claimHeight))],
|
|
312
|
-
[R.T, R.always(BigNumber(claimHeight))]
|
|
313
|
-
])(domain.replace('.chain', '').length).toString(10)
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
/**
|
|
317
|
-
* Is name accept going to auction
|
|
318
|
-
* @function
|
|
319
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/helpers
|
|
320
|
-
* @param {String} name Transaction abiVersion
|
|
321
|
-
* @return {Boolean}
|
|
322
|
-
*/
|
|
323
|
-
export function isAuctionName (name) {
|
|
324
|
-
return name.replace('.chain', '').length < 13
|
|
325
|
-
}
|