@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
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import _buffer from "buffer";
|
|
2
|
+
const {
|
|
3
|
+
Buffer: _Buffer
|
|
4
|
+
} = _buffer;
|
|
5
|
+
import BigNumber from 'bignumber.js';
|
|
6
|
+
import { hash, salt } from "../../utils/crypto.mjs";
|
|
7
|
+
import { encode, decode } from "../../utils/encoder.mjs";
|
|
8
|
+
import { toBytes } from "../../utils/bytes.mjs";
|
|
9
|
+
import { concatBuffers } from "../../utils/other.mjs";
|
|
10
|
+
import { ID_TAG_PREFIX, PREFIX_ID_TAG, NAME_BID_RANGES, NAME_FEE_BID_INCREMENT, NAME_BID_TIMEOUT_BLOCKS, NAME_MAX_LENGTH_FEE, POINTER_KEY_BY_PREFIX } from "./constants.mjs";
|
|
11
|
+
import { ceil } from "../../utils/bignumber.mjs";
|
|
12
|
+
import { TagNotFoundError, PrefixNotFoundError, IllegalBidFeeError, ArgumentError } from "../../utils/errors.mjs";
|
|
13
|
+
/**
|
|
14
|
+
* JavaScript-based Transaction builder helper function's
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
export const createSalt = salt;
|
|
18
|
+
export { encode, decode };
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Build a contract public key
|
|
22
|
+
* @param ownerId - The public key of the owner account
|
|
23
|
+
* @param nonce - the nonce of the transaction
|
|
24
|
+
* @returns Contract public key
|
|
25
|
+
*/
|
|
26
|
+
export function buildContractId(ownerId, nonce) {
|
|
27
|
+
const ownerIdAndNonce = _Buffer.from([...decode(ownerId), ...toBytes(nonce)]);
|
|
28
|
+
|
|
29
|
+
const b2bHash = hash(ownerIdAndNonce);
|
|
30
|
+
return encode(b2bHash, 'ct');
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Build a oracle query id
|
|
34
|
+
* @param senderId - The public key of the sender account
|
|
35
|
+
* @param nonce - the nonce of the transaction
|
|
36
|
+
* @param oracleId - The oracle public key
|
|
37
|
+
* @returns Contract public key
|
|
38
|
+
*/
|
|
39
|
+
|
|
40
|
+
export function oracleQueryId(senderId, nonce, oracleId) {
|
|
41
|
+
function _int32(val) {
|
|
42
|
+
const nonceBE = toBytes(val, true);
|
|
43
|
+
return concatBuffers([_Buffer.alloc(32 - nonceBE.length), nonceBE]);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const b2bHash = hash(_Buffer.from([...decode(senderId), ..._int32(nonce), ...decode(oracleId)]));
|
|
47
|
+
return encode(b2bHash, 'oq');
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Format the salt into a 64-byte hex string
|
|
51
|
+
* @param salt - Random number
|
|
52
|
+
* @returns Zero-padded hex string of salt
|
|
53
|
+
*/
|
|
54
|
+
|
|
55
|
+
export function formatSalt(salt) {
|
|
56
|
+
return _Buffer.from(salt.toString(16).padStart(64, '0'), 'hex');
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Encode an AENS name
|
|
60
|
+
*
|
|
61
|
+
* @param name - Name to encode
|
|
62
|
+
* @returns `nm_` prefixed encoded AENS name
|
|
63
|
+
*/
|
|
64
|
+
|
|
65
|
+
export function produceNameId(name) {
|
|
66
|
+
return encode(hash(name.toLowerCase()), 'nm');
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Generate the commitment hash by hashing the formatted salt and
|
|
70
|
+
* name, base 58 encoding the result and prepending 'cm_'
|
|
71
|
+
*
|
|
72
|
+
* @param name - Name to be registered
|
|
73
|
+
* @param salt - Random salt
|
|
74
|
+
* @returns Commitment hash
|
|
75
|
+
*/
|
|
76
|
+
|
|
77
|
+
export function commitmentHash(name) {
|
|
78
|
+
let salt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : createSalt();
|
|
79
|
+
return encode(hash(concatBuffers([_Buffer.from(name.toLowerCase()), formatSalt(salt)])), 'cm');
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Utility function to create and _id type
|
|
83
|
+
* @param hashId - Encoded hash
|
|
84
|
+
* @returns Buffer Buffer with ID tag and decoded HASh
|
|
85
|
+
*/
|
|
86
|
+
|
|
87
|
+
export function writeId(hashId) {
|
|
88
|
+
if (typeof hashId !== 'string') throw new ArgumentError('hashId', 'a string', hashId);
|
|
89
|
+
const prefix = hashId.slice(0, 2);
|
|
90
|
+
const idTag = PREFIX_ID_TAG[prefix];
|
|
91
|
+
if (idTag == null) throw new TagNotFoundError(prefix);
|
|
92
|
+
return _Buffer.from([...toBytes(idTag), ...decode(hashId)]);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Utility function to read and _id type
|
|
96
|
+
* @param buf - Data
|
|
97
|
+
* @returns Encoided hash string with prefix
|
|
98
|
+
*/
|
|
99
|
+
|
|
100
|
+
export function readId(buf) {
|
|
101
|
+
const tag = _Buffer.from(buf).readUIntBE(0, 1);
|
|
102
|
+
|
|
103
|
+
const prefix = ID_TAG_PREFIX[tag];
|
|
104
|
+
if (prefix == null) throw new PrefixNotFoundError(tag);
|
|
105
|
+
return encode(buf.slice(1, buf.length), prefix);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Utility function to convert int to bytes
|
|
109
|
+
* @param val - Value
|
|
110
|
+
* @returns Buffer Buffer from number(BigEndian)
|
|
111
|
+
*/
|
|
112
|
+
|
|
113
|
+
export function writeInt(val) {
|
|
114
|
+
return toBytes(val, true);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Utility function to convert bytes to int
|
|
118
|
+
* @param buf - Value
|
|
119
|
+
* @returns Buffer Buffer from number(BigEndian)
|
|
120
|
+
*/
|
|
121
|
+
|
|
122
|
+
export function readInt() {
|
|
123
|
+
let buf = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _Buffer.from([]);
|
|
124
|
+
return new BigNumber(_Buffer.from(buf).toString('hex'), 16).toString(10);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Helper function to build pointers for name update TX
|
|
128
|
+
* @param pointers - Array of pointers
|
|
129
|
+
* `([ { key: 'account_pubkey', id: 'ak_32klj5j23k23j5423l434l2j3423'} ])`
|
|
130
|
+
* @returns Serialized pointers array
|
|
131
|
+
*/
|
|
132
|
+
|
|
133
|
+
export function buildPointers(pointers) {
|
|
134
|
+
return pointers.map(p => [toBytes(p.key), writeId(p.id)]);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Helper function to read pointers from name update TX
|
|
138
|
+
* @param pointers - Array of pointers
|
|
139
|
+
* @returns Deserialize pointer array
|
|
140
|
+
*/
|
|
141
|
+
|
|
142
|
+
export function readPointers(pointers) {
|
|
143
|
+
return pointers.map(_ref => {
|
|
144
|
+
let [key, id] = _ref;
|
|
145
|
+
return Object.assign({
|
|
146
|
+
key: key.toString(),
|
|
147
|
+
id: readId(id)
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
const AENS_SUFFIX = '.chain';
|
|
152
|
+
/**
|
|
153
|
+
* Is AENS name valid
|
|
154
|
+
* @param name - AENS name
|
|
155
|
+
*/
|
|
156
|
+
|
|
157
|
+
export function isNameValid(name) {
|
|
158
|
+
// TODO: probably there are stronger requirements
|
|
159
|
+
return name.endsWith(AENS_SUFFIX);
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* @param identifier - account/oracle/contract address, or channel
|
|
163
|
+
* @returns default AENS pointer key
|
|
164
|
+
*/
|
|
165
|
+
|
|
166
|
+
export function getDefaultPointerKey(identifier) {
|
|
167
|
+
decode(identifier);
|
|
168
|
+
const prefix = identifier.substring(0, 2);
|
|
169
|
+
return POINTER_KEY_BY_PREFIX[prefix];
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Get the minimum AENS name fee
|
|
173
|
+
*
|
|
174
|
+
* @param name - the AENS name to get the fee for
|
|
175
|
+
* @returns the minimum fee for the AENS name auction
|
|
176
|
+
*/
|
|
177
|
+
|
|
178
|
+
export function getMinimumNameFee(name) {
|
|
179
|
+
const nameLength = name.length - AENS_SUFFIX.length;
|
|
180
|
+
return NAME_BID_RANGES[Math.min(nameLength, NAME_MAX_LENGTH_FEE)];
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Compute bid fee for AENS auction
|
|
184
|
+
*
|
|
185
|
+
* @param name - the AENS name to get the fee for
|
|
186
|
+
* @param options - Options
|
|
187
|
+
* @param options.startFee - Auction start fee
|
|
188
|
+
* @param options.increment - Bid multiplier(In percentage, must be between 0 and 1)
|
|
189
|
+
* @returns Bid fee
|
|
190
|
+
*/
|
|
191
|
+
|
|
192
|
+
export function computeBidFee(name) {
|
|
193
|
+
let {
|
|
194
|
+
startFee,
|
|
195
|
+
increment = NAME_FEE_BID_INCREMENT
|
|
196
|
+
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
197
|
+
if (!(Number(increment) === increment && increment % 1 !== 0)) throw new IllegalBidFeeError(`Increment must be float. Current increment ${increment}`);
|
|
198
|
+
if (increment < NAME_FEE_BID_INCREMENT) throw new IllegalBidFeeError(`minimum increment percentage is ${NAME_FEE_BID_INCREMENT}`); // FIXME: increment should be used somehow here
|
|
199
|
+
|
|
200
|
+
return ceil(new BigNumber(startFee !== null && startFee !== void 0 ? startFee : getMinimumNameFee(name)).times(new BigNumber(NAME_FEE_BID_INCREMENT).plus(1)));
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Compute auction end height
|
|
204
|
+
*
|
|
205
|
+
* @param name - Name to compute auction end for
|
|
206
|
+
* @param claimHeight - Auction starting height
|
|
207
|
+
* @see {@link https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L273}
|
|
208
|
+
* @returns Auction end height
|
|
209
|
+
*/
|
|
210
|
+
|
|
211
|
+
export function computeAuctionEndBlock(name, claimHeight) {
|
|
212
|
+
const length = name.length - AENS_SUFFIX.length;
|
|
213
|
+
const h = length <= 4 && 62 * NAME_BID_TIMEOUT_BLOCKS || length <= 8 && 31 * NAME_BID_TIMEOUT_BLOCKS || length <= 12 && NAME_BID_TIMEOUT_BLOCKS || 0;
|
|
214
|
+
return h + claimHeight;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Is name accept going to auction
|
|
218
|
+
*/
|
|
219
|
+
|
|
220
|
+
export function isAuctionName(name) {
|
|
221
|
+
return name.length < 13 + AENS_SUFFIX.length;
|
|
222
|
+
}
|
|
223
|
+
//# sourceMappingURL=helpers.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.mjs","names":["BigNumber","hash","salt","encode","decode","toBytes","concatBuffers","ID_TAG_PREFIX","PREFIX_ID_TAG","NAME_BID_RANGES","NAME_FEE_BID_INCREMENT","NAME_BID_TIMEOUT_BLOCKS","NAME_MAX_LENGTH_FEE","POINTER_KEY_BY_PREFIX","ceil","TagNotFoundError","PrefixNotFoundError","IllegalBidFeeError","ArgumentError","createSalt","buildContractId","ownerId","nonce","ownerIdAndNonce","from","b2bHash","oracleQueryId","senderId","oracleId","_int32","val","nonceBE","alloc","length","formatSalt","toString","padStart","produceNameId","name","toLowerCase","commitmentHash","writeId","hashId","prefix","slice","idTag","readId","buf","tag","readUIntBE","writeInt","readInt","buildPointers","pointers","map","p","key","id","readPointers","Object","assign","AENS_SUFFIX","isNameValid","endsWith","getDefaultPointerKey","identifier","substring","getMinimumNameFee","nameLength","Math","min","computeBidFee","startFee","increment","Number","times","plus","computeAuctionEndBlock","claimHeight","h","isAuctionName"],"sources":["../../../src/tx/builder/helpers.ts"],"sourcesContent":["import BigNumber from 'bignumber.js'\nimport { hash, salt } from '../../utils/crypto'\nimport { encode, decode, EncodedData, EncodingType } from '../../utils/encoder'\nimport { toBytes } from '../../utils/bytes'\nimport { concatBuffers } from '../../utils/other'\nimport {\n ID_TAG_PREFIX,\n PREFIX_ID_TAG,\n NAME_BID_RANGES,\n NAME_FEE_BID_INCREMENT,\n NAME_BID_TIMEOUT_BLOCKS,\n NAME_MAX_LENGTH_FEE,\n POINTER_KEY_BY_PREFIX,\n AensName\n} from './constants'\nimport { ceil } from '../../utils/bignumber'\nimport {\n TagNotFoundError,\n PrefixNotFoundError,\n IllegalBidFeeError,\n ArgumentError\n} from '../../utils/errors'\n\n/**\n * JavaScript-based Transaction builder helper function's\n */\n\nexport const createSalt = salt\n\nexport { encode, decode }\n\nexport interface Pointer {\n key: string\n id: string\n}\n\n/**\n * Build a contract public key\n * @param ownerId - The public key of the owner account\n * @param nonce - the nonce of the transaction\n * @returns Contract public key\n */\nexport function buildContractId (ownerId: EncodedData<'ak'>, nonce: number | BigNumber): EncodedData<'ct'> {\n const ownerIdAndNonce = Buffer.from([...decode(ownerId), ...toBytes(nonce)])\n const b2bHash = hash(ownerIdAndNonce)\n return encode(b2bHash, 'ct')\n}\n\n/**\n * Build a oracle query id\n * @param senderId - The public key of the sender account\n * @param nonce - the nonce of the transaction\n * @param oracleId - The oracle public key\n * @returns Contract public key\n */\nexport function oracleQueryId (\n senderId: EncodedData<'ak'>,\n nonce: number | BigNumber | string,\n oracleId: EncodedData<'ok'>\n): EncodedData<'oq'> {\n function _int32 (val: number | string | BigNumber): Buffer {\n const nonceBE = toBytes(val, true)\n return concatBuffers([Buffer.alloc(32 - nonceBE.length), nonceBE])\n }\n\n const b2bHash = hash(\n Buffer.from([...decode(senderId), ..._int32(nonce), ...decode(oracleId)]))\n return encode(b2bHash, 'oq')\n}\n\n/**\n * Format the salt into a 64-byte hex string\n * @param salt - Random number\n * @returns Zero-padded hex string of salt\n */\nexport function formatSalt (salt: number): Buffer {\n return Buffer.from(salt.toString(16).padStart(64, '0'), 'hex')\n}\n\n/**\n * Encode an AENS name\n *\n * @param name - Name to encode\n * @returns `nm_` prefixed encoded AENS name\n */\nexport function produceNameId (name: AensName): EncodedData<'nm'> {\n return encode(hash(name.toLowerCase()), 'nm')\n}\n\n/**\n * Generate the commitment hash by hashing the formatted salt and\n * name, base 58 encoding the result and prepending 'cm_'\n *\n * @param name - Name to be registered\n * @param salt - Random salt\n * @returns Commitment hash\n */\nexport function commitmentHash (name: AensName, salt: number = createSalt()): EncodedData<'cm'> {\n return encode(hash(concatBuffers([Buffer.from(name.toLowerCase()), formatSalt(salt)])), 'cm')\n}\n\n/**\n * Utility function to create and _id type\n * @param hashId - Encoded hash\n * @returns Buffer Buffer with ID tag and decoded HASh\n */\nexport function writeId (hashId: string): Buffer {\n if (typeof hashId !== 'string') throw new ArgumentError('hashId', 'a string', hashId)\n const prefix = hashId.slice(0, 2) as keyof typeof PREFIX_ID_TAG\n const idTag = PREFIX_ID_TAG[prefix]\n if (idTag == null) throw new TagNotFoundError(prefix)\n return Buffer.from([...toBytes(idTag), ...decode(hashId as EncodedData<EncodingType>)])\n}\n\n/**\n * Utility function to read and _id type\n * @param buf - Data\n * @returns Encoided hash string with prefix\n */\nexport function readId (buf: Buffer): string {\n const tag = Buffer.from(buf).readUIntBE(0, 1)\n const prefix = ID_TAG_PREFIX[tag]\n if (prefix == null) throw new PrefixNotFoundError(tag)\n return encode(buf.slice(1, buf.length), prefix)\n}\n\n/**\n * Utility function to convert int to bytes\n * @param val - Value\n * @returns Buffer Buffer from number(BigEndian)\n */\nexport function writeInt (val: number | string | BigNumber): Buffer {\n return toBytes(val, true)\n}\n\n/**\n * Utility function to convert bytes to int\n * @param buf - Value\n * @returns Buffer Buffer from number(BigEndian)\n */\nexport function readInt (buf: Buffer = Buffer.from([])): string {\n return new BigNumber(Buffer.from(buf).toString('hex'), 16).toString(10)\n}\n\n/**\n * Helper function to build pointers for name update TX\n * @param pointers - Array of pointers\n * `([ { key: 'account_pubkey', id: 'ak_32klj5j23k23j5423l434l2j3423'} ])`\n * @returns Serialized pointers array\n */\nexport function buildPointers (pointers: Pointer[]): Buffer[][] {\n return pointers.map(\n p => [\n toBytes(p.key),\n writeId(p.id)\n ]\n )\n}\n\n/**\n * Helper function to read pointers from name update TX\n * @param pointers - Array of pointers\n * @returns Deserialize pointer array\n */\nexport function readPointers (pointers: Array<[key: string, id: Buffer]>): Pointer[] {\n return pointers.map(\n ([key, id]) => Object.assign({\n key: key.toString(),\n id: readId(id)\n })\n )\n}\n\nconst AENS_SUFFIX = '.chain'\n\n/**\n * Is AENS name valid\n * @param name - AENS name\n */\nexport function isNameValid (name: string): name is AensName {\n // TODO: probably there are stronger requirements\n return name.endsWith(AENS_SUFFIX)\n}\n\n/**\n * @param identifier - account/oracle/contract address, or channel\n * @returns default AENS pointer key\n */\nexport function getDefaultPointerKey (\n identifier: EncodedData<keyof typeof POINTER_KEY_BY_PREFIX>\n): POINTER_KEY_BY_PREFIX {\n decode(identifier)\n const prefix = identifier.substring(0, 2) as keyof typeof POINTER_KEY_BY_PREFIX\n return POINTER_KEY_BY_PREFIX[prefix]\n}\n\n/**\n * Get the minimum AENS name fee\n *\n * @param name - the AENS name to get the fee for\n * @returns the minimum fee for the AENS name auction\n */\nexport function getMinimumNameFee (name: AensName): BigNumber {\n const nameLength = name.length - AENS_SUFFIX.length\n return NAME_BID_RANGES[Math.min(nameLength, NAME_MAX_LENGTH_FEE)]\n}\n\n/**\n * Compute bid fee for AENS auction\n *\n * @param name - the AENS name to get the fee for\n * @param options - Options\n * @param options.startFee - Auction start fee\n * @param options.increment - Bid multiplier(In percentage, must be between 0 and 1)\n * @returns Bid fee\n */\nexport function computeBidFee (\n name: AensName,\n { startFee, increment = NAME_FEE_BID_INCREMENT }:\n { startFee?: number | string | BigNumber, increment?: number } = {}\n): BigNumber {\n if (!(Number(increment) === increment && increment % 1 !== 0)) throw new IllegalBidFeeError(`Increment must be float. Current increment ${increment}`)\n if (increment < NAME_FEE_BID_INCREMENT) throw new IllegalBidFeeError(`minimum increment percentage is ${NAME_FEE_BID_INCREMENT}`)\n // FIXME: increment should be used somehow here\n return ceil(\n new BigNumber(startFee ?? getMinimumNameFee(name))\n .times(new BigNumber(NAME_FEE_BID_INCREMENT).plus(1))\n )\n}\n\n/**\n * Compute auction end height\n *\n * @param name - Name to compute auction end for\n * @param claimHeight - Auction starting height\n * @see {@link https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L273}\n * @returns Auction end height\n */\nexport function computeAuctionEndBlock (name: AensName, claimHeight: number): number {\n const length = name.length - AENS_SUFFIX.length\n const h = (length <= 4 && 62 * NAME_BID_TIMEOUT_BLOCKS) ||\n (length <= 8 && 31 * NAME_BID_TIMEOUT_BLOCKS) ||\n (length <= 12 && NAME_BID_TIMEOUT_BLOCKS) ||\n 0\n return h + claimHeight\n}\n\n/**\n * Is name accept going to auction\n */\nexport function isAuctionName (name: AensName): boolean {\n return name.length < 13 + AENS_SUFFIX.length\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { EncodedData, EncodingType } from './../../utils/encoder';
|
|
2
|
+
import { NestedUint8Array } from 'rlp';
|
|
3
|
+
import { AE_AMOUNT_FORMATS } from '../../utils/amount-formatter';
|
|
4
|
+
import { RawTxObject, TxField, TxTypeSchemas, TX_TYPE, TxSchema } from './schema';
|
|
5
|
+
/**
|
|
6
|
+
* Validate transaction params
|
|
7
|
+
* @param params - Object with tx params
|
|
8
|
+
* @param schema - Transaction schema
|
|
9
|
+
* @param excludeKeys - Array of keys to exclude for validation
|
|
10
|
+
* @returns Object with validation errors
|
|
11
|
+
*/
|
|
12
|
+
export declare function validateParams(params: any, schema: TxField[], { excludeKeys }: {
|
|
13
|
+
excludeKeys: string[];
|
|
14
|
+
}): object;
|
|
15
|
+
/**
|
|
16
|
+
* Unpack binary transaction
|
|
17
|
+
* @param binary - Array with binary transaction field's
|
|
18
|
+
* @param schema - Transaction schema
|
|
19
|
+
* @returns Object with transaction field's
|
|
20
|
+
*/
|
|
21
|
+
export declare function unpackRawTx<Tx extends TxSchema>(binary: Uint8Array | NestedUint8Array, schema: TxField[]): RawTxObject<Tx>;
|
|
22
|
+
export interface BuiltTx<Tx extends TxSchema, Prefix extends EncodingType> {
|
|
23
|
+
tx: EncodedData<Prefix>;
|
|
24
|
+
rlpEncoded: Uint8Array;
|
|
25
|
+
binary: Uint8Array;
|
|
26
|
+
txObject: RawTxObject<Tx>;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Build transaction hash
|
|
30
|
+
* @param _params - Object with tx params
|
|
31
|
+
* @param type - Transaction type
|
|
32
|
+
* @param options - options
|
|
33
|
+
* @param options.excludeKeys - Array of keys to exclude for validation and build
|
|
34
|
+
* @param options.denomination - Denomination of amounts
|
|
35
|
+
* @param options.prefix - Prefix of transaction
|
|
36
|
+
* @throws {@link InvalidTxParamsError}
|
|
37
|
+
* @returns object
|
|
38
|
+
* @returns object.tx Base64Check transaction hash with 'tx_' prefix
|
|
39
|
+
* @returns object.rlpEncoded rlp encoded transaction
|
|
40
|
+
* @returns object.binary binary transaction
|
|
41
|
+
*/
|
|
42
|
+
export declare function buildTx<TxType extends TX_TYPE, Prefix>(_params: Omit<TxTypeSchemas[TxType], 'tag' | 'VSN'> & {
|
|
43
|
+
VSN?: number;
|
|
44
|
+
}, type: TxType, { excludeKeys, prefix, vsn, denomination }?: {
|
|
45
|
+
excludeKeys?: string[];
|
|
46
|
+
prefix?: EncodingType;
|
|
47
|
+
vsn?: number;
|
|
48
|
+
denomination?: AE_AMOUNT_FORMATS;
|
|
49
|
+
}): BuiltTx<TxSchema, Prefix extends EncodingType ? Prefix : 'tx'>;
|
|
50
|
+
export interface TxUnpacked<Tx extends TxSchema> {
|
|
51
|
+
txType: TX_TYPE;
|
|
52
|
+
tx: RawTxObject<Tx>;
|
|
53
|
+
rlpEncoded: Uint8Array;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Unpack transaction hash
|
|
57
|
+
* @param encodedTx - Transaction to unpack
|
|
58
|
+
* @param txType - Expected transaction type
|
|
59
|
+
* @returns object
|
|
60
|
+
* @returns object.tx Object with transaction param's
|
|
61
|
+
* @returns object.txType Transaction type
|
|
62
|
+
*/
|
|
63
|
+
export declare function unpackTx<TxType extends TX_TYPE>(encodedTx: EncodedData<'tx' | 'pi'>, txType?: TxType): TxUnpacked<TxTypeSchemas[TxType]>;
|
|
64
|
+
/**
|
|
65
|
+
* Build a transaction hash
|
|
66
|
+
* @param rawTx - base64 or rlp encoded transaction
|
|
67
|
+
* @returns Transaction hash
|
|
68
|
+
*/
|
|
69
|
+
export declare function buildTxHash(rawTx: EncodedData<'tx'> | Uint8Array): EncodedData<'th'>;
|
|
70
|
+
/**
|
|
71
|
+
* Build a contract public key by contractCreateTx or gaAttach
|
|
72
|
+
* @param contractTx - Transaction
|
|
73
|
+
* @returns Contract public key
|
|
74
|
+
*/
|
|
75
|
+
export declare function buildContractIdByContractTx(contractTx: EncodedData<'tx'>): EncodedData<'ct'>;
|