@aeternity/aepp-sdk 11.0.0 → 12.1.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 +0 -22
- package/dist/aepp-sdk.browser-script.js.map +1 -1
- package/dist/aepp-sdk.browser.js +2 -1
- package/dist/aepp-sdk.browser.js.LICENSE.txt +1 -0
- package/dist/aepp-sdk.browser.js.map +1 -1
- package/dist/aepp-sdk.js +20764 -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 +70 -0
- package/es/AeSdkAepp.mjs +176 -0
- package/es/AeSdkAepp.mjs.map +1 -0
- package/es/AeSdkBase.d.ts +213 -0
- package/es/AeSdkBase.mjs +314 -0
- package/es/AeSdkBase.mjs.map +1 -0
- package/es/AeSdkWallet.d.ts +104 -0
- package/es/AeSdkWallet.mjs +326 -0
- package/es/AeSdkWallet.mjs.map +1 -0
- package/es/Node.d.ts +41 -0
- package/es/Node.mjs +147 -0
- package/es/Node.mjs.map +1 -0
- package/es/account/Base.d.ts +68 -0
- package/es/account/Base.mjs +123 -0
- package/es/account/Base.mjs.map +1 -0
- package/es/account/Memory.d.ts +26 -0
- package/es/account/Memory.mjs +103 -0
- package/es/account/Memory.mjs.map +1 -0
- package/es/account/Rpc.d.ts +27 -0
- package/es/account/Rpc.mjs +80 -0
- package/es/account/Rpc.mjs.map +1 -0
- package/es/aens.d.ts +222 -0
- package/es/aens.mjs +338 -0
- package/es/aens.mjs.map +1 -0
- package/es/aepp-wallet-communication/connection/Browser.d.ts +33 -0
- package/es/aepp-wallet-communication/connection/Browser.mjs +73 -0
- package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -0
- package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +18 -0
- package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +58 -0
- package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -0
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +36 -0
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +146 -0
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -0
- package/es/aepp-wallet-communication/connection-proxy.d.ts +11 -0
- package/{src/utils/crypto-ts.ts → es/aepp-wallet-communication/connection-proxy.mjs} +16 -11
- package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -0
- package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +34 -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 +105 -46
- package/es/aepp-wallet-communication/schema.mjs +251 -0
- package/es/aepp-wallet-communication/schema.mjs.map +1 -0
- package/es/aepp-wallet-communication/wallet-detector.d.ts +25 -0
- package/es/aepp-wallet-communication/wallet-detector.mjs +62 -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 +1065 -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 +4166 -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 +248 -0
- package/es/chain.mjs +560 -0
- package/es/chain.mjs.map +1 -0
- package/es/channel/handlers.d.ts +34 -0
- package/es/channel/handlers.mjs +164 -131
- package/es/channel/handlers.mjs.map +1 -1
- package/es/channel/index.d.ts +625 -0
- package/es/channel/index.mjs +897 -902
- package/es/channel/index.mjs.map +1 -1
- package/es/channel/internal.d.ts +101 -0
- package/es/channel/internal.mjs +138 -88
- package/es/channel/internal.mjs.map +1 -1
- package/es/contract/Compiler.d.ts +18 -0
- package/es/contract/Compiler.mjs +68 -0
- package/es/contract/Compiler.mjs.map +1 -0
- package/es/contract/aci.d.ts +127 -0
- package/es/contract/aci.mjs +225 -193
- package/es/contract/aci.mjs.map +1 -1
- package/es/contract/ga.d.ts +69 -0
- package/es/contract/ga.mjs +195 -0
- package/es/contract/ga.mjs.map +1 -0
- package/es/contract/methods.d.ts +71 -0
- package/es/contract/methods.mjs +104 -0
- package/es/contract/methods.mjs.map +1 -0
- package/es/deprecated/index.d.ts +143 -0
- package/es/deprecated/index.mjs +162 -0
- package/es/deprecated/index.mjs.map +1 -0
- package/es/deprecated/methods.d.ts +18 -0
- package/es/deprecated/methods.mjs +26 -0
- package/es/deprecated/methods.mjs.map +1 -0
- package/es/index.d.ts +35 -0
- package/es/index.mjs +35 -40
- package/es/index.mjs.map +1 -1
- package/es/oracle.d.ts +161 -0
- package/es/oracle.mjs +306 -0
- package/es/oracle.mjs.map +1 -0
- package/es/spend.d.ts +62 -0
- package/es/spend.mjs +111 -0
- package/es/spend.mjs.map +1 -0
- package/es/tx/builder/address.d.ts +25 -0
- package/es/tx/builder/address.mjs +45 -0
- package/es/tx/builder/address.mjs.map +1 -0
- package/es/tx/builder/constants.d.ts +70 -0
- package/es/tx/builder/constants.mjs +122 -0
- package/es/tx/builder/constants.mjs.map +1 -0
- package/es/tx/builder/field-types/coin-amount.d.ts +13 -0
- package/es/tx/builder/field-types/coin-amount.mjs +26 -0
- package/es/tx/builder/field-types/coin-amount.mjs.map +1 -0
- package/es/tx/builder/field-types/deposit.d.ts +15 -0
- package/es/tx/builder/field-types/deposit.mjs +19 -0
- package/es/tx/builder/field-types/deposit.mjs.map +1 -0
- package/es/tx/builder/field-types/fee.d.ts +25 -0
- package/es/tx/builder/field-types/fee.mjs +150 -0
- package/es/tx/builder/field-types/fee.mjs.map +1 -0
- package/es/tx/builder/field-types/field.d.ts +6 -0
- package/es/tx/builder/field-types/field.mjs +15 -0
- package/es/tx/builder/field-types/field.mjs.map +1 -0
- package/es/tx/builder/field-types/gas-limit.d.ts +12 -0
- package/es/tx/builder/field-types/gas-limit.mjs +33 -0
- package/es/tx/builder/field-types/gas-limit.mjs.map +1 -0
- package/es/tx/builder/field-types/gas-price.d.ts +8 -0
- package/es/tx/builder/field-types/gas-price.mjs +18 -0
- package/es/tx/builder/field-types/gas-price.mjs.map +1 -0
- package/es/tx/builder/field-types/index.d.ts +70 -0
- package/es/tx/builder/field-types/index.mjs +25 -0
- package/es/tx/builder/field-types/index.mjs.map +1 -0
- package/es/tx/builder/field-types/name-fee.d.ts +20 -0
- package/es/tx/builder/field-types/name-fee.mjs +24 -0
- package/es/tx/builder/field-types/name-fee.mjs.map +1 -0
- package/es/tx/builder/field-types/name-id.d.ts +14 -0
- package/es/tx/builder/field-types/name-id.mjs +19 -0
- package/es/tx/builder/field-types/name-id.mjs.map +1 -0
- package/es/tx/builder/field-types/name.d.ts +13 -0
- package/es/tx/builder/field-types/name.mjs +18 -0
- package/es/tx/builder/field-types/name.mjs.map +1 -0
- package/es/tx/builder/field-types/short-u-int.d.ts +6 -0
- package/es/tx/builder/field-types/short-u-int.mjs +12 -0
- package/es/tx/builder/field-types/short-u-int.mjs.map +1 -0
- package/es/tx/builder/field-types/u-int.d.ts +8 -0
- package/es/tx/builder/field-types/u-int.mjs +14 -0
- package/es/tx/builder/field-types/u-int.mjs.map +1 -0
- package/es/tx/builder/helpers.d.ts +125 -0
- package/es/tx/builder/helpers.mjs +94 -240
- package/es/tx/builder/helpers.mjs.map +1 -1
- package/es/tx/builder/index.d.ts +88 -0
- package/es/tx/builder/index.mjs +167 -358
- package/es/tx/builder/index.mjs.map +1 -1
- package/es/tx/builder/schema.d.ts +1201 -0
- package/es/tx/builder/schema.mjs +175 -664
- package/es/tx/builder/schema.mjs.map +1 -1
- package/es/tx/index.d.ts +64 -0
- package/es/tx/index.mjs +151 -265
- package/es/tx/index.mjs.map +1 -1
- package/es/tx/validator.d.ts +20 -0
- package/es/tx/validator.mjs +104 -124
- 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/sha-js/index.d.mjs +2 -0
- package/es/typings/sha-js/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.mjs +36 -49
- 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 +11 -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 +11 -15
- package/es/utils/bytes.mjs.map +1 -1
- package/es/utils/crypto.d.ts +88 -0
- package/es/utils/crypto.mjs +64 -108
- package/es/utils/crypto.mjs.map +1 -1
- package/es/utils/encoder-types.d.ts +61 -0
- package/es/utils/encoder-types.mjs +36 -0
- package/es/utils/encoder-types.mjs.map +1 -0
- package/es/utils/encoder.d.ts +25 -0
- package/es/utils/encoder.mjs +118 -0
- package/es/utils/encoder.mjs.map +1 -0
- package/es/{errors.d.ts → utils/errors.d.ts} +246 -59
- package/es/utils/errors.mjs +313 -136
- package/es/utils/errors.mjs.map +1 -1
- package/es/utils/hd-wallet.d.ts +50 -0
- package/es/utils/hd-wallet.mjs +86 -45
- package/es/utils/hd-wallet.mjs.map +1 -1
- package/es/utils/json-big.d.ts +5 -0
- package/es/utils/json-big.mjs +12 -16
- package/es/utils/json-big.mjs.map +1 -1
- package/es/utils/keystore.d.ts +51 -0
- package/es/utils/keystore.mjs +101 -194
- package/es/utils/keystore.mjs.map +1 -1
- package/es/{mptree.d.ts → utils/mptree.d.ts} +6 -9
- package/es/utils/mptree.mjs +22 -18
- package/es/utils/mptree.mjs.map +1 -1
- package/es/utils/other.d.ts +20 -0
- package/es/utils/other.mjs +32 -35
- package/es/utils/other.mjs.map +1 -1
- package/es/utils/semver-satisfies.d.ts +1 -0
- package/es/utils/semver-satisfies.mjs +2 -2
- 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 +56 -42
- package/src/AeSdk.ts +68 -0
- package/src/AeSdkAepp.ts +176 -0
- package/src/AeSdkBase.ts +338 -0
- package/src/AeSdkWallet.ts +348 -0
- package/src/Node.ts +173 -0
- package/src/account/Base.ts +124 -0
- package/src/account/Memory.ts +98 -0
- package/src/account/Rpc.ts +69 -0
- package/src/aens.ts +407 -0
- package/src/aepp-wallet-communication/connection/Browser.ts +71 -0
- package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +59 -0
- package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +122 -0
- package/{es/utils/crypto-ts.mjs → src/aepp-wallet-communication/connection-proxy.ts} +18 -18
- package/src/aepp-wallet-communication/rpc/RpcClient.ts +143 -0
- package/src/aepp-wallet-communication/rpc/types.ts +66 -0
- package/src/aepp-wallet-communication/schema.ts +224 -0
- package/src/aepp-wallet-communication/wallet-detector.ts +72 -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 +10080 -0
- package/src/apis/node/index.ts +2 -0
- package/src/apis/node/models/index.ts +1257 -0
- package/src/apis/node/models/mappers.ts +4280 -0
- package/src/apis/node/models/parameters.ts +188 -0
- package/src/apis/node/node.ts +1299 -0
- package/src/chain.ts +502 -0
- package/src/channel/handlers.ts +817 -0
- package/src/channel/index.ts +1025 -0
- package/src/channel/internal.ts +361 -0
- package/src/contract/Compiler.ts +67 -0
- package/src/contract/aci.ts +538 -0
- package/src/contract/ga.ts +199 -0
- package/src/contract/methods.ts +123 -0
- package/src/deprecated/index.ts +170 -0
- package/src/deprecated/methods.ts +25 -0
- package/src/index.ts +56 -0
- package/src/oracle.ts +364 -0
- package/src/spend.ts +164 -0
- package/src/tx/builder/address.ts +50 -0
- package/src/tx/builder/constants.ts +126 -0
- package/src/tx/builder/field-types/coin-amount.ts +27 -0
- package/src/tx/builder/field-types/deposit.ts +21 -0
- package/src/tx/builder/field-types/fee.ts +143 -0
- package/src/tx/builder/field-types/field.ts +9 -0
- package/src/tx/builder/field-types/gas-limit.ts +41 -0
- package/src/tx/builder/field-types/gas-price.ts +16 -0
- package/src/tx/builder/field-types/index.ts +45 -0
- package/src/tx/builder/field-types/name-fee.ts +32 -0
- package/src/tx/builder/field-types/name-id.ts +20 -0
- package/src/tx/builder/field-types/name.ts +18 -0
- package/src/tx/builder/field-types/short-u-int.ts +11 -0
- package/src/tx/builder/field-types/u-int.ts +16 -0
- package/src/tx/builder/helpers.ts +248 -0
- package/src/tx/builder/index.ts +400 -0
- package/src/tx/builder/schema.ts +727 -0
- package/src/tx/index.ts +192 -0
- package/src/tx/validator.ts +230 -0
- package/src/typings/@aeternity__argon2-browser/index.d.ts +3 -0
- package/src/typings/@aeternity__uuid/index.d.ts +5 -0
- package/src/typings/bip32-path/index.d.ts +33 -0
- package/src/typings/blakejs/index.d.ts +4 -32
- package/src/typings/sha-js/index.d.ts +5 -0
- package/src/typings/tweetnacl-auth/index.d.ts +14 -0
- package/src/utils/amount-formatter.ts +56 -69
- package/src/utils/autorest.ts +93 -0
- package/src/utils/bignumber.ts +11 -12
- package/src/utils/bytes.ts +29 -31
- package/src/utils/crypto.ts +205 -0
- package/src/utils/encoder-types.ts +63 -0
- package/src/utils/encoder.ts +146 -0
- package/src/utils/errors.ts +482 -366
- package/src/utils/hd-wallet.ts +166 -0
- package/src/utils/json-big.ts +27 -0
- package/src/utils/keystore.ts +182 -0
- package/src/utils/mptree.ts +64 -61
- package/src/utils/other.ts +34 -41
- package/src/utils/semver-satisfies.ts +15 -11
- package/src/utils/string.ts +18 -20
- 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/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/semver-satisfies.d.ts +0 -1
- package/es/string.d.ts +0 -26
- package/es/tx/builder/field-types.mjs +0 -74
- package/es/tx/builder/field-types.mjs.map +0 -1
- 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/handlers.js +0 -673
- package/src/channel/index.js +0 -898
- package/src/channel/internal.js +0 -237
- 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 -380
- package/src/tx/builder/index.js +0 -465
- package/src/tx/builder/schema.js +0 -1197
- 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 -229
- 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
package/src/tx/builder/index.js
DELETED
|
@@ -1,465 +0,0 @@
|
|
|
1
|
-
import BigNumber from 'bignumber.js'
|
|
2
|
-
import { decode as rlpDecode, encode as rlpEncode } from 'rlp'
|
|
3
|
-
import { AE_AMOUNT_FORMATS, formatAmount } from '../../utils/amount-formatter'
|
|
4
|
-
import { hash } from '../../utils/crypto'
|
|
5
|
-
import { Field } from './field-types'
|
|
6
|
-
|
|
7
|
-
import {
|
|
8
|
-
DEFAULT_FEE,
|
|
9
|
-
FIELD_TYPES,
|
|
10
|
-
OBJECT_ID_TX_TYPE,
|
|
11
|
-
TX_DESERIALIZATION_SCHEMA,
|
|
12
|
-
TX_FEE_BASE_GAS,
|
|
13
|
-
TX_FEE_OTHER_GAS,
|
|
14
|
-
TX_SERIALIZATION_SCHEMA,
|
|
15
|
-
TX_TYPE,
|
|
16
|
-
VSN
|
|
17
|
-
} from './schema'
|
|
18
|
-
import {
|
|
19
|
-
readInt,
|
|
20
|
-
readId,
|
|
21
|
-
readPointers,
|
|
22
|
-
writeId,
|
|
23
|
-
writeInt,
|
|
24
|
-
buildPointers,
|
|
25
|
-
encode,
|
|
26
|
-
decode
|
|
27
|
-
} from './helpers'
|
|
28
|
-
import { toBytes } from '../../utils/bytes'
|
|
29
|
-
import MPTree from '../../utils/mptree'
|
|
30
|
-
import { InvalidTxParamsError, SchemaNotFoundError } from '../../utils/errors'
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* JavaScript-based Transaction builder
|
|
34
|
-
* @module @aeternity/aepp-sdk/es/tx/builder
|
|
35
|
-
* @export TxBuilder
|
|
36
|
-
* @example import { TxBuilder } from '@aeternity/aepp-sdk'
|
|
37
|
-
*/
|
|
38
|
-
|
|
39
|
-
const ORACLE_TTL_TYPES = {
|
|
40
|
-
delta: 'delta',
|
|
41
|
-
block: 'block'
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
// SERIALIZE AND DESERIALIZE PART
|
|
45
|
-
function deserializeField (value, type, prefix) {
|
|
46
|
-
if (!value) return ''
|
|
47
|
-
switch (type) {
|
|
48
|
-
case FIELD_TYPES.ctVersion: {
|
|
49
|
-
const [vm, , abi] = value
|
|
50
|
-
return { vmVersion: readInt(Buffer.from([vm])), abiVersion: readInt(Buffer.from([abi])) }
|
|
51
|
-
}
|
|
52
|
-
case FIELD_TYPES.amount:
|
|
53
|
-
case FIELD_TYPES.int:
|
|
54
|
-
return readInt(value)
|
|
55
|
-
case FIELD_TYPES.id:
|
|
56
|
-
return readId(value)
|
|
57
|
-
case FIELD_TYPES.ids:
|
|
58
|
-
return value.map(readId)
|
|
59
|
-
case FIELD_TYPES.bool:
|
|
60
|
-
return value[0] === 1
|
|
61
|
-
case FIELD_TYPES.binary:
|
|
62
|
-
return encode(value, prefix)
|
|
63
|
-
case FIELD_TYPES.stateTree:
|
|
64
|
-
return encode(value, 'ss')
|
|
65
|
-
case FIELD_TYPES.string:
|
|
66
|
-
return value.toString()
|
|
67
|
-
case FIELD_TYPES.payload:
|
|
68
|
-
return encode(value, 'ba')
|
|
69
|
-
case FIELD_TYPES.pointers:
|
|
70
|
-
return readPointers(value)
|
|
71
|
-
case FIELD_TYPES.rlpBinary:
|
|
72
|
-
return unpackTx(value, true)
|
|
73
|
-
case FIELD_TYPES.rlpBinaries:
|
|
74
|
-
return value.map(v => unpackTx(v, true))
|
|
75
|
-
case FIELD_TYPES.rawBinary:
|
|
76
|
-
return value
|
|
77
|
-
case FIELD_TYPES.hex:
|
|
78
|
-
return value.toString('hex')
|
|
79
|
-
case FIELD_TYPES.offChainUpdates:
|
|
80
|
-
return value.map(v => unpackTx(v, true))
|
|
81
|
-
case FIELD_TYPES.callStack:
|
|
82
|
-
// TODO: fix this
|
|
83
|
-
return [readInt(value)]
|
|
84
|
-
case FIELD_TYPES.mptrees:
|
|
85
|
-
return value.map(t => new MPTree(t))
|
|
86
|
-
case FIELD_TYPES.callReturnType:
|
|
87
|
-
switch (readInt(value)) {
|
|
88
|
-
case '0': return 'ok'
|
|
89
|
-
case '1': return 'error'
|
|
90
|
-
case '2': return 'revert'
|
|
91
|
-
default: return value
|
|
92
|
-
}
|
|
93
|
-
case FIELD_TYPES.sophiaCodeTypeInfo:
|
|
94
|
-
return value
|
|
95
|
-
.reduce(
|
|
96
|
-
(acc, [funHash, fnName, argType, outType]) =>
|
|
97
|
-
({ ...acc, [fnName.toString()]: { funHash, argType, outType } }),
|
|
98
|
-
{}
|
|
99
|
-
)
|
|
100
|
-
default:
|
|
101
|
-
if (type.prototype instanceof Field) return type.deserialize(value)
|
|
102
|
-
return value
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
function serializeField (value, type, prefix, params) {
|
|
107
|
-
switch (type) {
|
|
108
|
-
case FIELD_TYPES.amount:
|
|
109
|
-
case FIELD_TYPES.int:
|
|
110
|
-
return writeInt(value)
|
|
111
|
-
case FIELD_TYPES.id:
|
|
112
|
-
return writeId(value)
|
|
113
|
-
case FIELD_TYPES.ids:
|
|
114
|
-
return value.map(writeId)
|
|
115
|
-
case FIELD_TYPES.bool:
|
|
116
|
-
return Buffer.from([value ? 1 : 0])
|
|
117
|
-
case FIELD_TYPES.binary:
|
|
118
|
-
return decode(value, prefix)
|
|
119
|
-
case FIELD_TYPES.stateTree:
|
|
120
|
-
return decode(value, 'ss')
|
|
121
|
-
case FIELD_TYPES.hex:
|
|
122
|
-
return Buffer.from(value, 'hex')
|
|
123
|
-
case FIELD_TYPES.signatures:
|
|
124
|
-
return value.map(Buffer.from)
|
|
125
|
-
case FIELD_TYPES.payload:
|
|
126
|
-
return typeof value === 'string' && value.split('_')[0] === 'ba'
|
|
127
|
-
? decode(value, 'ba')
|
|
128
|
-
: toBytes(value)
|
|
129
|
-
case FIELD_TYPES.string:
|
|
130
|
-
return toBytes(value)
|
|
131
|
-
case FIELD_TYPES.pointers:
|
|
132
|
-
return buildPointers(value)
|
|
133
|
-
case FIELD_TYPES.rlpBinary:
|
|
134
|
-
return value.rlpEncoded ?? value
|
|
135
|
-
case FIELD_TYPES.mptrees:
|
|
136
|
-
return value.map(t => t.serialize())
|
|
137
|
-
case FIELD_TYPES.ctVersion:
|
|
138
|
-
return Buffer.from([...toBytes(value.vmVersion), 0, ...toBytes(value.abiVersion)])
|
|
139
|
-
case FIELD_TYPES.callReturnType:
|
|
140
|
-
switch (value) {
|
|
141
|
-
case 'ok': return writeInt(0)
|
|
142
|
-
case 'error': return writeInt(1)
|
|
143
|
-
case 'revert': return writeInt(2)
|
|
144
|
-
default: return value
|
|
145
|
-
}
|
|
146
|
-
default:
|
|
147
|
-
if (type.prototype instanceof Field) return type.serialize(value, params)
|
|
148
|
-
return value
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
function validateField (value, type, prefix) {
|
|
153
|
-
// All fields are required
|
|
154
|
-
if (value === undefined || value === null) return 'Field is required'
|
|
155
|
-
|
|
156
|
-
// Validate type of value
|
|
157
|
-
switch (type) {
|
|
158
|
-
case FIELD_TYPES.amount:
|
|
159
|
-
case FIELD_TYPES.int: {
|
|
160
|
-
if (isNaN(value) && !BigNumber.isBigNumber(value)) {
|
|
161
|
-
return `${value} is not of type Number or BigNumber`
|
|
162
|
-
}
|
|
163
|
-
if (new BigNumber(value).lt(0)) return `${value} must be >= 0`
|
|
164
|
-
return
|
|
165
|
-
}
|
|
166
|
-
case FIELD_TYPES.id: {
|
|
167
|
-
const prefixes = Array.isArray(prefix) ? prefix : [prefix]
|
|
168
|
-
if (!prefixes.includes(value.split('_')[0])) {
|
|
169
|
-
return `'${value}' prefix doesn't match expected prefix '${prefix}'`
|
|
170
|
-
}
|
|
171
|
-
return
|
|
172
|
-
}
|
|
173
|
-
case FIELD_TYPES.ctVersion:
|
|
174
|
-
if (!value?.abiVersion || !value?.vmVersion) {
|
|
175
|
-
return 'Value must be an object with "vmVersion" and "abiVersion" fields'
|
|
176
|
-
}
|
|
177
|
-
return
|
|
178
|
-
case FIELD_TYPES.pointers:
|
|
179
|
-
if (!Array.isArray(value)) return 'Value must be of type Array'
|
|
180
|
-
if (value.some(p => !p?.key || !p?.id)) {
|
|
181
|
-
return 'Value must contains only object\'s like \'{key: "account_pubkey", id: "ak_lkamsflkalsdalksdlasdlasdlamd"}\''
|
|
182
|
-
}
|
|
183
|
-
if (value.length > 32) {
|
|
184
|
-
return `Expected 32 pointers or less, got ${value.length} instead`
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
function transformParams (params, schema, { denomination } = {}) {
|
|
190
|
-
params = schema
|
|
191
|
-
.filter(([_, t]) => t === FIELD_TYPES.amount)
|
|
192
|
-
.reduce(
|
|
193
|
-
(acc, [key]) => ({ ...params, [key]: formatAmount(params[key], { denomination }) }),
|
|
194
|
-
params
|
|
195
|
-
)
|
|
196
|
-
const schemaKeys = schema.map(([k]) => k)
|
|
197
|
-
return Object
|
|
198
|
-
.entries(params)
|
|
199
|
-
.reduce(
|
|
200
|
-
(acc, [key, value]) => {
|
|
201
|
-
if (schemaKeys.includes(key)) acc[key] = value
|
|
202
|
-
if (['oracleTtl', 'queryTtl', 'responseTtl'].includes(key)) {
|
|
203
|
-
acc[`${key}Type`] = value.type === ORACLE_TTL_TYPES.delta ? 0 : 1
|
|
204
|
-
acc[`${key}Value`] = value.value
|
|
205
|
-
}
|
|
206
|
-
return acc
|
|
207
|
-
},
|
|
208
|
-
{}
|
|
209
|
-
)
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
// INTERFACE
|
|
213
|
-
|
|
214
|
-
function getOracleRelativeTtl (params, txType) {
|
|
215
|
-
const ttlKey = {
|
|
216
|
-
[TX_TYPE.oracleRegister]: 'oracleTtl',
|
|
217
|
-
[TX_TYPE.oracleExtend]: 'oracleTtl',
|
|
218
|
-
[TX_TYPE.oracleQuery]: 'queryTtl',
|
|
219
|
-
[TX_TYPE.oracleResponse]: 'responseTtl'
|
|
220
|
-
}[txType]
|
|
221
|
-
|
|
222
|
-
if (params[ttlKey] || params[`${ttlKey}Value`]) {
|
|
223
|
-
return params[`${ttlKey}Value`] || params[ttlKey].value
|
|
224
|
-
}
|
|
225
|
-
return 1
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
/**
|
|
229
|
-
* Calculate min fee
|
|
230
|
-
* @function
|
|
231
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder/index
|
|
232
|
-
* @rtype (txType, { gas = 0, params }) => String
|
|
233
|
-
* @param {String} txType - Transaction type
|
|
234
|
-
* @param {Options} options - Options object
|
|
235
|
-
* @param {String|Number} options.gas - Gas amount
|
|
236
|
-
* @param {Object} options.params - Tx params
|
|
237
|
-
* @return {String|Number}
|
|
238
|
-
* @example calculateMinFee('spendTx', { gas, params })
|
|
239
|
-
*/
|
|
240
|
-
export function calculateMinFee (txType, { gas = 0, params, vsn }) {
|
|
241
|
-
const multiplier = BigNumber(1e9) // 10^9 GAS_PRICE
|
|
242
|
-
if (!params) return BigNumber(DEFAULT_FEE).times(multiplier).toString(10)
|
|
243
|
-
|
|
244
|
-
let actualFee = buildFee(txType, { params: { ...params, fee: 0 }, multiplier, gas, vsn })
|
|
245
|
-
let expected = BigNumber(0)
|
|
246
|
-
|
|
247
|
-
while (!actualFee.eq(expected)) {
|
|
248
|
-
actualFee = buildFee(txType, { params: { ...params, fee: actualFee }, multiplier, gas, vsn })
|
|
249
|
-
expected = actualFee
|
|
250
|
-
}
|
|
251
|
-
return expected.toString(10)
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
/**
|
|
255
|
-
* Calculate fee based on tx type and params
|
|
256
|
-
* @param txType
|
|
257
|
-
* @param params
|
|
258
|
-
* @param gas
|
|
259
|
-
* @param multiplier
|
|
260
|
-
* @param vsn
|
|
261
|
-
* @return {BigNumber}
|
|
262
|
-
*/
|
|
263
|
-
function buildFee (txType, { params, gas = 0, multiplier, vsn }) {
|
|
264
|
-
const { rlpEncoded: txWithOutFee } = buildTx({ ...params }, txType, { vsn })
|
|
265
|
-
const txSize = txWithOutFee.length
|
|
266
|
-
return TX_FEE_BASE_GAS(txType)
|
|
267
|
-
.plus(TX_FEE_OTHER_GAS(txType, txSize, {
|
|
268
|
-
relativeTtl: getOracleRelativeTtl(params, txType),
|
|
269
|
-
innerTxSize: [TX_TYPE.gaMeta, TX_TYPE.payingFor].includes(txType)
|
|
270
|
-
? params.tx.tx.encodedTx.rlpEncoded.length
|
|
271
|
-
: 0
|
|
272
|
-
}))
|
|
273
|
-
.times(multiplier)
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
/**
|
|
277
|
-
* Calculate fee
|
|
278
|
-
* @function
|
|
279
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder
|
|
280
|
-
* @rtype (fee, txType, gas = 0) => String
|
|
281
|
-
* @param {String|Number} fee - fee
|
|
282
|
-
* @param {String} txType - Transaction type
|
|
283
|
-
* @param {Options} options - Options object
|
|
284
|
-
* @param {String|Number} options.gas - Gas amount
|
|
285
|
-
* @param {Object} options.params - Tx params
|
|
286
|
-
* @return {String|Number}
|
|
287
|
-
* @example calculateFee(null, 'spendTx', { gas, params })
|
|
288
|
-
*/
|
|
289
|
-
export function calculateFee (fee = 0, txType, { gas = 0, params, showWarning = true, vsn } = {}) {
|
|
290
|
-
if (!params && showWarning) console.warn(`Can't build transaction fee, we will use DEFAULT_FEE(${DEFAULT_FEE})`)
|
|
291
|
-
|
|
292
|
-
return fee || calculateMinFee(txType, { params, gas, vsn })
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
/**
|
|
296
|
-
* Validate transaction params
|
|
297
|
-
* @function
|
|
298
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder
|
|
299
|
-
* @param {Object} params Object with tx params
|
|
300
|
-
* @param {Array} schema Transaction schema
|
|
301
|
-
* @param {Array} excludeKeys Array of keys to exclude for validation
|
|
302
|
-
* @return {Object} Object with validation errors
|
|
303
|
-
*/
|
|
304
|
-
export function validateParams (params, schema, { excludeKeys = [] }) {
|
|
305
|
-
return Object.fromEntries(
|
|
306
|
-
schema
|
|
307
|
-
// TODO: allow optional keys in schema
|
|
308
|
-
.filter(([key]) => !excludeKeys.includes(key) &&
|
|
309
|
-
!['payload', 'nameFee', 'deposit'].includes(key))
|
|
310
|
-
.map(([key, type, prefix]) => [key, validateField(params[key], type, prefix)])
|
|
311
|
-
.filter(([, message]) => message)
|
|
312
|
-
)
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
/**
|
|
316
|
-
* Build binary transaction
|
|
317
|
-
* @function
|
|
318
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder
|
|
319
|
-
* @param {Object} params Object with tx params
|
|
320
|
-
* @param {Array} schema Transaction schema
|
|
321
|
-
* @param {Object} [options={}] options
|
|
322
|
-
* @param {String[]} [options.excludeKeys=[]] Array of keys to exclude for validation and build
|
|
323
|
-
* @param {String} [options.denomination='aettos'] Denomination of amounts
|
|
324
|
-
* @throws {Error} Validation error
|
|
325
|
-
* @return {Array} Array with binary fields of transaction
|
|
326
|
-
*/
|
|
327
|
-
export function buildRawTx (
|
|
328
|
-
params,
|
|
329
|
-
schema,
|
|
330
|
-
{ excludeKeys = [], denomination = AE_AMOUNT_FORMATS.AETTOS } = {}
|
|
331
|
-
) {
|
|
332
|
-
const filteredSchema = schema.filter(([key]) => !excludeKeys.includes(key))
|
|
333
|
-
|
|
334
|
-
// Transform `amount` type fields to `aettos`
|
|
335
|
-
params = transformParams(params, filteredSchema, { denomination })
|
|
336
|
-
// Validation
|
|
337
|
-
const valid = validateParams(params, schema, { excludeKeys })
|
|
338
|
-
if (Object.keys(valid).length) {
|
|
339
|
-
throw new InvalidTxParamsError('Transaction build error. ' + JSON.stringify(valid))
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
return filteredSchema
|
|
343
|
-
.map(([key, fieldType, prefix]) => serializeField(params[key], fieldType, prefix, params))
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
/**
|
|
347
|
-
* Unpack binary transaction
|
|
348
|
-
* @function
|
|
349
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder
|
|
350
|
-
* @param {Array} binary Array with binary transaction field's
|
|
351
|
-
* @param {Array} schema Transaction schema
|
|
352
|
-
* @return {Object} Object with transaction field's
|
|
353
|
-
*/
|
|
354
|
-
export function unpackRawTx (binary, schema) {
|
|
355
|
-
return schema
|
|
356
|
-
.reduce(
|
|
357
|
-
(
|
|
358
|
-
acc,
|
|
359
|
-
[key, fieldType, prefix],
|
|
360
|
-
index
|
|
361
|
-
) => Object.assign(acc, { [key]: deserializeField(binary[index], fieldType, prefix) }),
|
|
362
|
-
{}
|
|
363
|
-
)
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
/**
|
|
367
|
-
* Get transaction serialization/deserialization schema
|
|
368
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder
|
|
369
|
-
* @param {{ vsn: String, objId: Number, type: String }}
|
|
370
|
-
* @throws {Error} Schema not found error
|
|
371
|
-
* @return {Object} Schema
|
|
372
|
-
*/
|
|
373
|
-
const getSchema = ({ vsn, objId, type }) => {
|
|
374
|
-
const isDeserialize = !!objId
|
|
375
|
-
const firstKey = isDeserialize ? objId : type
|
|
376
|
-
const schema = isDeserialize ? TX_DESERIALIZATION_SCHEMA : TX_SERIALIZATION_SCHEMA
|
|
377
|
-
|
|
378
|
-
if (!schema[firstKey]) {
|
|
379
|
-
throw new SchemaNotFoundError(`Transaction ${isDeserialize ? 'deserialization' : 'serialization'} not implemented for ${isDeserialize ? 'tag ' + objId : type}`)
|
|
380
|
-
}
|
|
381
|
-
if (!schema[firstKey][vsn]) {
|
|
382
|
-
throw new SchemaNotFoundError(`Transaction ${isDeserialize ? 'deserialization' : 'serialization'} not implemented for ${isDeserialize ? 'tag ' + objId : type} version ${vsn}`)
|
|
383
|
-
}
|
|
384
|
-
return schema[firstKey][vsn]
|
|
385
|
-
}
|
|
386
|
-
|
|
387
|
-
/**
|
|
388
|
-
* Build transaction hash
|
|
389
|
-
* @function
|
|
390
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder
|
|
391
|
-
* @param {Object} params Object with tx params
|
|
392
|
-
* @param {String} type Transaction type
|
|
393
|
-
* @param {Object} [options={}] options
|
|
394
|
-
* @param {String[]} [options.excludeKeys] Array of keys to exclude for validation and build
|
|
395
|
-
* @param {String} [options.prefix] Prefix of transaction
|
|
396
|
-
* @throws {Error} Validation error
|
|
397
|
-
* @returns {Object} object
|
|
398
|
-
* @returns {String} object.tx Base64Check transaction hash with 'tx_' prefix
|
|
399
|
-
* @returns {Buffer} object.rlpEncoded rlp encoded transaction
|
|
400
|
-
* @returns {Array<Buffer>} object.binary binary transaction
|
|
401
|
-
*/
|
|
402
|
-
export function buildTx (
|
|
403
|
-
params,
|
|
404
|
-
type,
|
|
405
|
-
{ excludeKeys = [], prefix = 'tx', vsn = VSN, denomination = AE_AMOUNT_FORMATS.AETTOS } = {}
|
|
406
|
-
) {
|
|
407
|
-
const [schema, tag] = getSchema({ type, vsn })
|
|
408
|
-
const binary = buildRawTx(
|
|
409
|
-
{ ...params, VSN: vsn, tag },
|
|
410
|
-
schema,
|
|
411
|
-
{ excludeKeys, denomination: params.denomination || denomination }
|
|
412
|
-
).filter(e => e !== undefined)
|
|
413
|
-
|
|
414
|
-
const rlpEncoded = rlpEncode(binary)
|
|
415
|
-
const tx = encode(rlpEncoded, prefix)
|
|
416
|
-
|
|
417
|
-
return { tx, rlpEncoded, binary, txObject: unpackRawTx(binary, schema) }
|
|
418
|
-
}
|
|
419
|
-
|
|
420
|
-
/**
|
|
421
|
-
* Unpack transaction hash
|
|
422
|
-
* @function
|
|
423
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder
|
|
424
|
-
* @param {String|Buffer} encodedTx String or RLP encoded transaction array
|
|
425
|
-
* (if fromRlpBinary flag is true)
|
|
426
|
-
* @param {Boolean} fromRlpBinary Unpack from RLP encoded transaction (default: false)
|
|
427
|
-
* @param {String} prefix - Prefix of data
|
|
428
|
-
* @returns {Object} object
|
|
429
|
-
* @returns {Object} object.tx Object with transaction param's
|
|
430
|
-
* @returns {Buffer} object.rlpEncoded rlp encoded transaction
|
|
431
|
-
* @returns {Array<Buffer>} object.binary binary transaction
|
|
432
|
-
*/
|
|
433
|
-
export function unpackTx (encodedTx, fromRlpBinary = false, prefix = 'tx') {
|
|
434
|
-
const rlpEncoded = fromRlpBinary ? encodedTx : decode(encodedTx, prefix)
|
|
435
|
-
const binary = rlpDecode(rlpEncoded)
|
|
436
|
-
|
|
437
|
-
const objId = readInt(binary[0])
|
|
438
|
-
const vsn = readInt(binary[1])
|
|
439
|
-
const [schema] = getSchema({ objId, vsn })
|
|
440
|
-
|
|
441
|
-
return { txType: OBJECT_ID_TX_TYPE[objId], tx: unpackRawTx(binary, schema), rlpEncoded, binary }
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
/**
|
|
445
|
-
* Build a transaction hash
|
|
446
|
-
* @function
|
|
447
|
-
* @alias module:@aeternity/aepp-sdk/es/tx/builder
|
|
448
|
-
* @param {String | Buffer} rawTx base64 or rlp encoded transaction
|
|
449
|
-
* @return {String} Transaction hash
|
|
450
|
-
*/
|
|
451
|
-
export function buildTxHash (rawTx) {
|
|
452
|
-
const data = typeof rawTx === 'string' && rawTx.startsWith('tx_') ? decode(rawTx, 'tx') : rawTx
|
|
453
|
-
return encode(hash(data), 'th')
|
|
454
|
-
}
|
|
455
|
-
|
|
456
|
-
export default {
|
|
457
|
-
calculateMinFee,
|
|
458
|
-
calculateFee,
|
|
459
|
-
unpackTx,
|
|
460
|
-
unpackRawTx,
|
|
461
|
-
buildTx,
|
|
462
|
-
buildRawTx,
|
|
463
|
-
validateParams,
|
|
464
|
-
buildTxHash
|
|
465
|
-
}
|