@aeternity/aepp-sdk 11.0.1 → 12.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/dist/aepp-sdk.browser-script.js +1 -1
- package/dist/aepp-sdk.browser-script.js.LICENSE.txt +12 -19
- package/dist/aepp-sdk.browser-script.js.map +1 -1
- package/dist/aepp-sdk.browser.js +1 -1
- package/dist/aepp-sdk.browser.js.map +1 -1
- package/dist/aepp-sdk.js +1 -1
- package/dist/aepp-sdk.js.map +1 -1
- package/es/AeSdk.d.ts +37 -0
- package/es/AeSdk.mjs +81 -0
- package/es/AeSdk.mjs.map +1 -0
- package/es/AeSdkAepp.d.ts +69 -0
- package/es/AeSdkAepp.mjs +175 -0
- package/es/AeSdkAepp.mjs.map +1 -0
- package/es/AeSdkBase.d.ts +212 -0
- package/es/AeSdkBase.mjs +310 -0
- package/es/AeSdkBase.mjs.map +1 -0
- package/es/AeSdkWallet.d.ts +103 -0
- package/es/AeSdkWallet.mjs +322 -0
- package/es/AeSdkWallet.mjs.map +1 -0
- package/es/Node.d.ts +44 -0
- package/es/Node.mjs +141 -0
- package/es/Node.mjs.map +1 -0
- package/es/account/Base.d.ts +65 -0
- package/es/account/Base.mjs +123 -0
- package/es/account/Base.mjs.map +1 -0
- package/es/account/Memory.d.ts +25 -0
- package/es/account/Memory.mjs +81 -0
- package/es/account/Memory.mjs.map +1 -0
- package/es/account/Rpc.d.ts +27 -0
- package/es/account/Rpc.mjs +79 -0
- package/es/account/Rpc.mjs.map +1 -0
- package/es/aens.d.ts +209 -0
- package/es/aens.mjs +332 -0
- package/es/aens.mjs.map +1 -0
- package/es/aepp-wallet-communication/connection/Browser.d.ts +32 -0
- package/es/aepp-wallet-communication/connection/Browser.mjs +70 -0
- package/es/aepp-wallet-communication/connection/Browser.mjs.map +1 -0
- package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +17 -0
- package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs +57 -0
- package/es/aepp-wallet-communication/connection/BrowserRuntime.mjs.map +1 -0
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.d.ts +35 -0
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs +142 -0
- package/es/aepp-wallet-communication/connection/BrowserWindowMessage.mjs.map +1 -0
- package/es/aepp-wallet-communication/connection-proxy.d.ts +10 -0
- package/{src/utils/crypto-ts.ts → es/aepp-wallet-communication/connection-proxy.mjs} +15 -11
- package/es/aepp-wallet-communication/connection-proxy.mjs.map +1 -0
- package/es/aepp-wallet-communication/rpc/RpcClient.d.ts +33 -0
- package/es/aepp-wallet-communication/rpc/RpcClient.mjs +169 -0
- package/es/aepp-wallet-communication/rpc/RpcClient.mjs.map +1 -0
- package/es/aepp-wallet-communication/rpc/types.d.ts +77 -0
- package/es/aepp-wallet-communication/rpc/types.mjs +3 -0
- package/es/aepp-wallet-communication/rpc/types.mjs.map +1 -0
- package/es/aepp-wallet-communication/schema.d.ts +90 -46
- package/es/aepp-wallet-communication/schema.mjs +214 -0
- package/es/aepp-wallet-communication/schema.mjs.map +1 -0
- package/es/aepp-wallet-communication/wallet-detector.d.ts +24 -0
- package/es/aepp-wallet-communication/wallet-detector.mjs +63 -0
- package/es/aepp-wallet-communication/wallet-detector.mjs.map +1 -0
- package/es/apis/compiler/compiler.d.ts +92 -0
- package/es/apis/compiler/compiler.mjs +576 -0
- package/es/apis/compiler/compiler.mjs.map +1 -0
- package/es/apis/compiler/index.d.ts +2 -0
- package/es/apis/compiler/index.mjs +3 -0
- package/es/apis/compiler/index.mjs.map +1 -0
- package/es/apis/compiler/models/index.d.ts +248 -0
- package/es/apis/compiler/models/index.mjs +48 -0
- package/es/apis/compiler/models/index.mjs.map +1 -0
- package/es/apis/compiler/models/mappers.d.ts +23 -0
- package/es/apis/compiler/models/mappers.mjs +585 -0
- package/es/apis/compiler/models/mappers.mjs.map +1 -0
- package/es/apis/compiler/models/parameters.d.ts +13 -0
- package/es/apis/compiler/models/parameters.mjs +71 -0
- package/es/apis/compiler/models/parameters.mjs.map +1 -0
- package/es/apis/node/index.d.ts +2 -0
- package/es/apis/node/index.mjs +3 -0
- package/es/apis/node/index.mjs.map +1 -0
- package/es/apis/node/models/index.d.ts +1061 -0
- package/es/apis/node/models/index.mjs +2 -0
- package/es/apis/node/models/index.mjs.map +1 -0
- package/es/apis/node/models/mappers.d.ts +95 -0
- package/es/apis/node/models/mappers.mjs +4164 -0
- package/es/apis/node/models/mappers.mjs.map +1 -0
- package/es/apis/node/models/parameters.d.ts +17 -0
- package/es/apis/node/models/parameters.mjs +165 -0
- package/es/apis/node/models/parameters.mjs.map +1 -0
- package/es/apis/node/node.d.ts +215 -0
- package/es/apis/node/node.mjs +1165 -0
- package/es/apis/node/node.mjs.map +1 -0
- package/es/chain.d.ts +220 -0
- package/es/chain.mjs +524 -0
- package/es/chain.mjs.map +1 -0
- package/es/channel/handlers.d.ts +34 -0
- package/es/channel/handlers.mjs +147 -112
- package/es/channel/handlers.mjs.map +1 -1
- package/es/channel/index.d.ts +634 -0
- package/es/channel/index.mjs +898 -900
- package/es/channel/index.mjs.map +1 -1
- package/es/channel/internal.d.ts +100 -0
- package/es/channel/internal.mjs +97 -51
- package/es/channel/internal.mjs.map +1 -1
- package/es/contract/Compiler.d.ts +17 -0
- package/es/contract/Compiler.mjs +67 -0
- package/es/contract/Compiler.mjs.map +1 -0
- package/es/contract/aci.d.ts +125 -0
- package/es/contract/aci.mjs +199 -180
- package/es/contract/aci.mjs.map +1 -1
- package/es/contract/ga.d.ts +68 -0
- package/es/contract/ga.mjs +190 -0
- package/es/contract/ga.mjs.map +1 -0
- package/es/contract/methods.d.ts +68 -0
- package/es/contract/methods.mjs +101 -0
- package/es/contract/methods.mjs.map +1 -0
- package/es/index.d.ts +32 -0
- package/es/index.mjs +32 -40
- package/es/index.mjs.map +1 -1
- package/es/oracle.d.ts +154 -0
- package/es/oracle.mjs +288 -0
- package/es/oracle.mjs.map +1 -0
- package/es/spend.d.ts +61 -0
- package/es/spend.mjs +122 -0
- package/es/spend.mjs.map +1 -0
- package/es/tx/builder/constants.d.ts +41 -0
- package/es/tx/builder/constants.mjs +11 -19
- package/es/tx/builder/constants.mjs.map +1 -1
- package/es/tx/builder/field-types.d.ts +62 -0
- package/es/tx/builder/field-types.mjs +62 -10
- package/es/tx/builder/field-types.mjs.map +1 -1
- package/es/tx/builder/helpers.d.ts +131 -0
- package/es/tx/builder/helpers.mjs +71 -169
- package/es/tx/builder/helpers.mjs.map +1 -1
- package/es/tx/builder/index.d.ts +75 -0
- package/es/tx/builder/index.mjs +141 -323
- package/es/tx/builder/index.mjs.map +1 -1
- package/es/tx/builder/schema.d.ts +350 -0
- package/es/tx/builder/schema.mjs +173 -510
- package/es/tx/builder/schema.mjs.map +1 -1
- package/es/tx/index.d.ts +63 -0
- package/es/tx/index.mjs +171 -265
- package/es/tx/index.mjs.map +1 -1
- package/es/tx/min-fee.d.ts +20 -0
- package/es/tx/min-fee.mjs +148 -0
- package/es/tx/min-fee.mjs.map +1 -0
- package/es/tx/validator.d.ts +19 -0
- package/es/tx/validator.mjs +64 -71
- package/es/tx/validator.mjs.map +1 -1
- package/es/typings/@aeternity__argon2-browser/index.d.mjs +2 -0
- package/es/typings/@aeternity__argon2-browser/index.d.mjs.map +1 -0
- package/es/typings/@aeternity__uuid/index.d.mjs +2 -0
- package/es/typings/@aeternity__uuid/index.d.mjs.map +1 -0
- package/es/typings/bip32-path/index.d.mjs +2 -0
- package/es/typings/bip32-path/index.d.mjs.map +1 -0
- package/es/typings/blakejs/index.d.mjs.map +1 -1
- package/es/typings/tweetnacl-auth/index.d.mjs +2 -0
- package/es/typings/tweetnacl-auth/index.d.mjs.map +1 -0
- package/es/utils/amount-formatter.d.ts +42 -0
- package/es/utils/amount-formatter.mjs +28 -41
- package/es/utils/amount-formatter.mjs.map +1 -1
- package/es/utils/autorest.d.ts +6 -0
- package/es/utils/autorest.mjs +97 -0
- package/es/utils/autorest.mjs.map +1 -0
- package/es/utils/bignumber.d.ts +13 -0
- package/es/utils/bignumber.mjs +10 -8
- package/es/utils/bignumber.mjs.map +1 -1
- package/es/{bytes.d.ts → utils/bytes.d.ts} +10 -13
- package/es/utils/bytes.mjs +10 -14
- package/es/utils/bytes.mjs.map +1 -1
- package/es/utils/crypto.d.ts +103 -0
- package/es/utils/crypto.mjs +60 -68
- package/es/utils/crypto.mjs.map +1 -1
- package/es/utils/encoder.d.ts +26 -0
- package/es/utils/encoder.mjs +47 -51
- package/es/utils/encoder.mjs.map +1 -1
- package/es/{errors.d.ts → utils/errors.d.ts} +254 -57
- package/es/utils/errors.mjs +318 -125
- package/es/utils/errors.mjs.map +1 -1
- package/es/utils/hd-wallet.d.ts +34 -0
- package/es/utils/hd-wallet.mjs +27 -16
- package/es/utils/hd-wallet.mjs.map +1 -1
- package/es/utils/json-big.d.ts +5 -0
- package/es/utils/json-big.mjs +10 -14
- package/es/utils/json-big.mjs.map +1 -1
- package/es/utils/keystore.d.ts +51 -0
- package/es/utils/keystore.mjs +98 -193
- package/es/utils/keystore.mjs.map +1 -1
- package/es/{mptree.d.ts → utils/mptree.d.ts} +5 -8
- package/es/utils/mptree.mjs +13 -14
- package/es/utils/mptree.mjs.map +1 -1
- package/es/utils/other.d.ts +14 -0
- package/es/utils/other.mjs +21 -36
- package/es/utils/other.mjs.map +1 -1
- package/es/{semver-satisfies.d.ts → utils/semver-satisfies.d.ts} +0 -0
- package/es/utils/semver-satisfies.mjs.map +1 -1
- package/es/utils/string.d.ts +24 -0
- package/es/utils/string.mjs +8 -10
- package/es/utils/string.mjs.map +1 -1
- package/package.json +49 -39
- package/src/AeSdk.ts +65 -0
- package/src/AeSdkAepp.ts +167 -0
- package/src/AeSdkBase.ts +320 -0
- package/src/AeSdkWallet.ts +332 -0
- package/src/Node.ts +167 -0
- package/src/account/Base.ts +114 -0
- package/src/account/Memory.ts +83 -0
- package/src/account/Rpc.ts +67 -0
- package/src/aens.ts +391 -0
- package/src/aepp-wallet-communication/connection/Browser.ts +68 -0
- package/src/aepp-wallet-communication/connection/BrowserRuntime.ts +58 -0
- package/src/aepp-wallet-communication/connection/BrowserWindowMessage.ts +111 -0
- package/{es/utils/crypto-ts.mjs → src/aepp-wallet-communication/connection-proxy.ts} +16 -17
- package/src/aepp-wallet-communication/rpc/RpcClient.ts +137 -0
- package/src/aepp-wallet-communication/rpc/types.ts +66 -0
- package/src/aepp-wallet-communication/schema.ts +181 -0
- package/src/aepp-wallet-communication/wallet-detector.ts +71 -0
- package/src/apis/compiler/code-model-v4.yaml +2649 -0
- package/src/apis/compiler/compiler.ts +585 -0
- package/src/apis/compiler/index.ts +2 -0
- package/src/apis/compiler/models/index.ts +301 -0
- package/src/apis/compiler/models/mappers.ts +583 -0
- package/src/apis/compiler/models/parameters.ts +93 -0
- package/src/apis/node/code-model-v4.yaml +10046 -0
- package/src/apis/node/index.ts +2 -0
- package/src/apis/node/models/index.ts +1253 -0
- package/src/apis/node/models/mappers.ts +4278 -0
- package/src/apis/node/models/parameters.ts +188 -0
- package/src/apis/node/node.ts +1299 -0
- package/src/chain.ts +444 -0
- package/src/channel/{handlers.js → handlers.ts} +220 -128
- package/src/channel/index.ts +991 -0
- package/src/channel/internal.ts +345 -0
- package/src/contract/Compiler.ts +66 -0
- package/src/contract/aci.ts +529 -0
- package/src/contract/ga.ts +178 -0
- package/src/contract/methods.ts +118 -0
- package/src/index.ts +51 -0
- package/src/oracle.ts +342 -0
- package/src/spend.ts +152 -0
- package/src/tx/builder/{constants.js → constants.ts} +12 -16
- package/src/tx/builder/field-types.ts +111 -0
- package/src/tx/builder/helpers.ts +253 -0
- package/src/tx/builder/index.ts +394 -0
- package/src/tx/builder/schema.ts +771 -0
- package/src/tx/index.ts +199 -0
- package/src/tx/min-fee.ts +136 -0
- package/src/tx/validator.ts +226 -0
- package/src/typings/@aeternity__argon2-browser/index.d.ts +3 -0
- package/src/typings/@aeternity__uuid/index.d.ts +3 -0
- package/src/typings/bip32-path/index.d.ts +33 -0
- package/src/typings/tweetnacl-auth/index.d.ts +14 -0
- package/src/utils/amount-formatter.ts +29 -42
- package/src/utils/autorest.ts +90 -0
- package/src/utils/bignumber.ts +9 -11
- package/src/utils/bytes.ts +12 -14
- package/src/utils/crypto.ts +217 -0
- package/src/utils/encoder.ts +52 -55
- package/src/utils/errors.ts +268 -134
- package/src/utils/hd-wallet.ts +134 -0
- package/src/utils/json-big.ts +26 -0
- package/src/utils/keystore.ts +179 -0
- package/src/utils/mptree.ts +14 -14
- package/src/utils/other.ts +28 -43
- package/src/utils/string.ts +8 -10
- package/es/account/base.mjs +0 -179
- package/es/account/base.mjs.map +0 -1
- package/es/account/memory.mjs +0 -99
- package/es/account/memory.mjs.map +0 -1
- package/es/account/multiple.mjs +0 -179
- package/es/account/multiple.mjs.map +0 -1
- package/es/ae/aens.mjs +0 -404
- package/es/ae/aens.mjs.map +0 -1
- package/es/ae/aepp.mjs +0 -45
- package/es/ae/aepp.mjs.map +0 -1
- package/es/ae/contract.mjs +0 -159
- package/es/ae/contract.mjs.map +0 -1
- package/es/ae/index.mjs +0 -207
- package/es/ae/index.mjs.map +0 -1
- package/es/ae/oracle.mjs +0 -339
- package/es/ae/oracle.mjs.map +0 -1
- package/es/ae/universal.mjs +0 -45
- package/es/ae/universal.mjs.map +0 -1
- package/es/ae/wallet.mjs +0 -50
- package/es/ae/wallet.mjs.map +0 -1
- package/es/amount-formatter.d.ts +0 -58
- package/es/bignumber.d.ts +0 -18
- package/es/chain/index.mjs +0 -272
- package/es/chain/index.mjs.map +0 -1
- package/es/chain/node.mjs +0 -442
- package/es/chain/node.mjs.map +0 -1
- package/es/contract/compiler.mjs +0 -115
- package/es/contract/compiler.mjs.map +0 -1
- package/es/contract/ga/helpers.mjs +0 -30
- package/es/contract/ga/helpers.mjs.map +0 -1
- package/es/contract/ga/index.mjs +0 -178
- package/es/contract/ga/index.mjs.map +0 -1
- package/es/crypto-ts.d.ts +0 -9
- package/es/encoder.d.ts +0 -26
- package/es/node-pool/index.mjs +0 -188
- package/es/node-pool/index.mjs.map +0 -1
- package/es/node.mjs +0 -133
- package/es/node.mjs.map +0 -1
- package/es/other.d.ts +0 -31
- package/es/string.d.ts +0 -26
- package/es/tx/tx-object.mjs +0 -283
- package/es/tx/tx-object.mjs.map +0 -1
- package/es/tx/tx.mjs +0 -938
- package/es/tx/tx.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs +0 -132
- package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs +0 -183
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/connection/index.mjs +0 -87
- package/es/utils/aepp-wallet-communication/connection/index.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/content-script-bridge.mjs +0 -98
- package/es/utils/aepp-wallet-communication/content-script-bridge.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/helpers.mjs +0 -92
- package/es/utils/aepp-wallet-communication/helpers.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs +0 -375
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs +0 -275
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs +0 -541
- package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/schema.mjs +0 -102
- package/es/utils/aepp-wallet-communication/schema.mjs.map +0 -1
- package/es/utils/aepp-wallet-communication/wallet-detector.mjs +0 -110
- package/es/utils/aepp-wallet-communication/wallet-detector.mjs.map +0 -1
- package/es/utils/async-init.mjs +0 -64
- package/es/utils/async-init.mjs.map +0 -1
- package/es/utils/crypto-ts.mjs.map +0 -1
- package/es/utils/swagger.mjs +0 -164
- package/es/utils/swagger.mjs.map +0 -1
- package/src/account/base.js +0 -153
- package/src/account/memory.js +0 -83
- package/src/account/multiple.js +0 -162
- package/src/ae/aens.js +0 -361
- package/src/ae/aepp.js +0 -45
- package/src/ae/contract.js +0 -148
- package/src/ae/index.js +0 -168
- package/src/ae/oracle.js +0 -311
- package/src/ae/universal.js +0 -47
- package/src/ae/wallet.js +0 -50
- package/src/chain/index.js +0 -269
- package/src/chain/node.js +0 -320
- package/src/channel/index.js +0 -903
- package/src/channel/internal.js +0 -236
- package/src/contract/aci.js +0 -376
- package/src/contract/compiler.js +0 -100
- package/src/contract/ga/helpers.js +0 -19
- package/src/contract/ga/index.js +0 -150
- package/src/index.js +0 -89
- package/src/node-pool/index.js +0 -172
- package/src/node.js +0 -116
- package/src/tx/builder/field-types.js +0 -61
- package/src/tx/builder/helpers.js +0 -334
- package/src/tx/builder/index.js +0 -465
- package/src/tx/builder/schema.js +0 -1100
- package/src/tx/index.js +0 -301
- package/src/tx/tx-object.js +0 -187
- package/src/tx/tx.js +0 -631
- package/src/tx/validator.js +0 -181
- package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +0 -119
- package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +0 -165
- package/src/utils/aepp-wallet-communication/connection/index.js +0 -85
- package/src/utils/aepp-wallet-communication/content-script-bridge.js +0 -86
- package/src/utils/aepp-wallet-communication/helpers.js +0 -60
- package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +0 -294
- package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +0 -232
- package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +0 -401
- package/src/utils/aepp-wallet-communication/schema.ts +0 -80
- package/src/utils/aepp-wallet-communication/wallet-detector.js +0 -92
- package/src/utils/async-init.js +0 -45
- package/src/utils/crypto.js +0 -219
- package/src/utils/hd-wallet.js +0 -100
- package/src/utils/json-big.js +0 -26
- package/src/utils/keystore.js +0 -219
- package/src/utils/swagger.js +0 -156
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/tx/builder/index.js"],"names":["BigNumber","AE_AMOUNT_FORMATS","formatAmount","hash","Field","DEFAULT_FEE","FIELD_TYPES","OBJECT_ID_TX_TYPE","TX_DESERIALIZATION_SCHEMA","TX_FEE_BASE_GAS","TX_FEE_OTHER_GAS","TX_SERIALIZATION_SCHEMA","TX_TYPE","VSN","readInt","readId","readPointers","writeId","writeInt","buildPointers","encode","decode","toBytes","MPTree","InvalidTxParamsError","SchemaNotFoundError","ORACLE_TTL_TYPES","delta","block","deserializeField","value","type","prefix","ctVersion","vm","abi","vmVersion","from","abiVersion","amount","int","id","ids","map","bool","binary","stateTree","string","toString","payload","pointers","rlpBinary","unpackTx","rlpBinaries","v","rawBinary","hex","offChainUpdates","callStack","mptrees","t","callReturnType","sophiaCodeTypeInfo","reduce","acc","funHash","fnName","argType","outType","prototype","deserialize","serializeField","params","signatures","split","rlpEncoded","serialize","validateField","undefined","isNaN","isBigNumber","lt","prefixes","Array","isArray","includes","some","p","key","length","transformParams","schema","denomination","filter","_","schemaKeys","k","Object","entries","getOracleRelativeTtl","txType","ttlKey","oracleRegister","oracleExtend","oracleQuery","oracleResponse","calculateMinFee","gas","vsn","multiplier","times","actualFee","buildFee","fee","expected","eq","txWithOutFee","buildTx","txSize","plus","relativeTtl","innerTxSize","gaMeta","payingFor","tx","encodedTx","calculateFee","showWarning","console","warn","validateParams","excludeKeys","fromEntries","message","buildRawTx","AETTOS","filteredSchema","valid","keys","JSON","stringify","fieldType","unpackRawTx","index","assign","getSchema","objId","isDeserialize","firstKey","tag","e","rlpEncode","txObject","fromRlpBinary","rlpDecode","buildTxHash","rawTx","data","startsWith"],"mappings":"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","sourcesContent":["import BigNumber from 'bignumber.js'\nimport { decode as rlpDecode, encode as rlpEncode } from 'rlp'\nimport { AE_AMOUNT_FORMATS, formatAmount } from '../../utils/amount-formatter'\nimport { hash } from '../../utils/crypto'\nimport { Field } from './field-types'\n\nimport {\n DEFAULT_FEE,\n FIELD_TYPES,\n OBJECT_ID_TX_TYPE,\n TX_DESERIALIZATION_SCHEMA,\n TX_FEE_BASE_GAS,\n TX_FEE_OTHER_GAS,\n TX_SERIALIZATION_SCHEMA,\n TX_TYPE,\n VSN\n} from './schema'\nimport {\n readInt,\n readId,\n readPointers,\n writeId,\n writeInt,\n buildPointers,\n encode,\n decode\n} from './helpers'\nimport { toBytes } from '../../utils/bytes'\nimport MPTree from '../../utils/mptree'\nimport { InvalidTxParamsError, SchemaNotFoundError } from '../../utils/errors'\n\n/**\n * JavaScript-based Transaction builder\n * @module @aeternity/aepp-sdk/es/tx/builder\n * @export TxBuilder\n * @example import { TxBuilder } from '@aeternity/aepp-sdk'\n */\n\nconst ORACLE_TTL_TYPES = {\n delta: 'delta',\n block: 'block'\n}\n\n// SERIALIZE AND DESERIALIZE PART\nfunction deserializeField (value, type, prefix) {\n if (!value) return ''\n switch (type) {\n case FIELD_TYPES.ctVersion: {\n const [vm, , abi] = value\n return { vmVersion: readInt(Buffer.from([vm])), abiVersion: readInt(Buffer.from([abi])) }\n }\n case FIELD_TYPES.amount:\n case FIELD_TYPES.int:\n return readInt(value)\n case FIELD_TYPES.id:\n return readId(value)\n case FIELD_TYPES.ids:\n return value.map(readId)\n case FIELD_TYPES.bool:\n return value[0] === 1\n case FIELD_TYPES.binary:\n return encode(value, prefix)\n case FIELD_TYPES.stateTree:\n return encode(value, 'ss')\n case FIELD_TYPES.string:\n return value.toString()\n case FIELD_TYPES.payload:\n return encode(value, 'ba')\n case FIELD_TYPES.pointers:\n return readPointers(value)\n case FIELD_TYPES.rlpBinary:\n return unpackTx(value, true)\n case FIELD_TYPES.rlpBinaries:\n return value.map(v => unpackTx(v, true))\n case FIELD_TYPES.rawBinary:\n return value\n case FIELD_TYPES.hex:\n return value.toString('hex')\n case FIELD_TYPES.offChainUpdates:\n return value.map(v => unpackTx(v, true))\n case FIELD_TYPES.callStack:\n // TODO: fix this\n return [readInt(value)]\n case FIELD_TYPES.mptrees:\n return value.map(t => new MPTree(t))\n case FIELD_TYPES.callReturnType:\n switch (readInt(value)) {\n case '0': return 'ok'\n case '1': return 'error'\n case '2': return 'revert'\n default: return value\n }\n case FIELD_TYPES.sophiaCodeTypeInfo:\n return value\n .reduce(\n (acc, [funHash, fnName, argType, outType]) =>\n ({ ...acc, [fnName.toString()]: { funHash, argType, outType } }),\n {}\n )\n default:\n if (type.prototype instanceof Field) return type.deserialize(value)\n return value\n }\n}\n\nfunction serializeField (value, type, prefix, params) {\n switch (type) {\n case FIELD_TYPES.amount:\n case FIELD_TYPES.int:\n return writeInt(value)\n case FIELD_TYPES.id:\n return writeId(value)\n case FIELD_TYPES.ids:\n return value.map(writeId)\n case FIELD_TYPES.bool:\n return Buffer.from([value ? 1 : 0])\n case FIELD_TYPES.binary:\n return decode(value, prefix)\n case FIELD_TYPES.stateTree:\n return decode(value, 'ss')\n case FIELD_TYPES.hex:\n return Buffer.from(value, 'hex')\n case FIELD_TYPES.signatures:\n return value.map(Buffer.from)\n case FIELD_TYPES.payload:\n return typeof value === 'string' && value.split('_')[0] === 'ba'\n ? decode(value, 'ba')\n : toBytes(value)\n case FIELD_TYPES.string:\n return toBytes(value)\n case FIELD_TYPES.pointers:\n return buildPointers(value)\n case FIELD_TYPES.rlpBinary:\n return value.rlpEncoded ?? value\n case FIELD_TYPES.mptrees:\n return value.map(t => t.serialize())\n case FIELD_TYPES.ctVersion:\n return Buffer.from([...toBytes(value.vmVersion), 0, ...toBytes(value.abiVersion)])\n case FIELD_TYPES.callReturnType:\n switch (value) {\n case 'ok': return writeInt(0)\n case 'error': return writeInt(1)\n case 'revert': return writeInt(2)\n default: return value\n }\n default:\n if (type.prototype instanceof Field) return type.serialize(value, params)\n return value\n }\n}\n\nfunction validateField (value, type, prefix) {\n // All fields are required\n if (value === undefined || value === null) return 'Field is required'\n\n // Validate type of value\n switch (type) {\n case FIELD_TYPES.amount:\n case FIELD_TYPES.int: {\n if (isNaN(value) && !BigNumber.isBigNumber(value)) {\n return `${value} is not of type Number or BigNumber`\n }\n if (new BigNumber(value).lt(0)) return `${value} must be >= 0`\n return\n }\n case FIELD_TYPES.id: {\n const prefixes = Array.isArray(prefix) ? prefix : [prefix]\n if (!prefixes.includes(value.split('_')[0])) {\n return `'${value}' prefix doesn't match expected prefix '${prefix}'`\n }\n return\n }\n case FIELD_TYPES.ctVersion:\n if (!value?.abiVersion || !value?.vmVersion) {\n return 'Value must be an object with \"vmVersion\" and \"abiVersion\" fields'\n }\n return\n case FIELD_TYPES.pointers:\n if (!Array.isArray(value)) return 'Value must be of type Array'\n if (value.some(p => !p?.key || !p?.id)) {\n return 'Value must contains only object\\'s like \\'{key: \"account_pubkey\", id: \"ak_lkamsflkalsdalksdlasdlasdlamd\"}\\''\n }\n if (value.length > 32) {\n return `Expected 32 pointers or less, got ${value.length} instead`\n }\n }\n}\n\nfunction transformParams (params, schema, { denomination } = {}) {\n params = schema\n .filter(([_, t]) => t === FIELD_TYPES.amount)\n .reduce(\n (acc, [key]) => ({ ...params, [key]: formatAmount(params[key], { denomination }) }),\n params\n )\n const schemaKeys = schema.map(([k]) => k)\n return Object\n .entries(params)\n .reduce(\n (acc, [key, value]) => {\n if (schemaKeys.includes(key)) acc[key] = value\n if (['oracleTtl', 'queryTtl', 'responseTtl'].includes(key)) {\n acc[`${key}Type`] = value.type === ORACLE_TTL_TYPES.delta ? 0 : 1\n acc[`${key}Value`] = value.value\n }\n return acc\n },\n {}\n )\n}\n\n// INTERFACE\n\nfunction getOracleRelativeTtl (params, txType) {\n const ttlKey = {\n [TX_TYPE.oracleRegister]: 'oracleTtl',\n [TX_TYPE.oracleExtend]: 'oracleTtl',\n [TX_TYPE.oracleQuery]: 'queryTtl',\n [TX_TYPE.oracleResponse]: 'responseTtl'\n }[txType]\n\n if (params[ttlKey] || params[`${ttlKey}Value`]) {\n return params[`${ttlKey}Value`] || params[ttlKey].value\n }\n return 1\n}\n\n/**\n * Calculate min fee\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder/index\n * @rtype (txType, { gas = 0, params }) => String\n * @param {String} txType - Transaction type\n * @param {Options} options - Options object\n * @param {String|Number} options.gas - Gas amount\n * @param {Object} options.params - Tx params\n * @return {String|Number}\n * @example calculateMinFee('spendTx', { gas, params })\n */\nexport function calculateMinFee (txType, { gas = 0, params, vsn }) {\n const multiplier = BigNumber(1e9) // 10^9 GAS_PRICE\n if (!params) return BigNumber(DEFAULT_FEE).times(multiplier).toString(10)\n\n let actualFee = buildFee(txType, { params: { ...params, fee: 0 }, multiplier, gas, vsn })\n let expected = BigNumber(0)\n\n while (!actualFee.eq(expected)) {\n actualFee = buildFee(txType, { params: { ...params, fee: actualFee }, multiplier, gas, vsn })\n expected = actualFee\n }\n return expected.toString(10)\n}\n\n/**\n * Calculate fee based on tx type and params\n * @param txType\n * @param params\n * @param gas\n * @param multiplier\n * @param vsn\n * @return {BigNumber}\n */\nfunction buildFee (txType, { params, gas = 0, multiplier, vsn }) {\n const { rlpEncoded: txWithOutFee } = buildTx({ ...params }, txType, { vsn })\n const txSize = txWithOutFee.length\n return TX_FEE_BASE_GAS(txType)\n .plus(TX_FEE_OTHER_GAS(txType, txSize, {\n relativeTtl: getOracleRelativeTtl(params, txType),\n innerTxSize: [TX_TYPE.gaMeta, TX_TYPE.payingFor].includes(txType)\n ? params.tx.tx.encodedTx.rlpEncoded.length\n : 0\n }))\n .times(multiplier)\n}\n\n/**\n * Calculate fee\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @rtype (fee, txType, gas = 0) => String\n * @param {String|Number} fee - fee\n * @param {String} txType - Transaction type\n * @param {Options} options - Options object\n * @param {String|Number} options.gas - Gas amount\n * @param {Object} options.params - Tx params\n * @return {String|Number}\n * @example calculateFee(null, 'spendTx', { gas, params })\n */\nexport function calculateFee (fee = 0, txType, { gas = 0, params, showWarning = true, vsn } = {}) {\n if (!params && showWarning) console.warn(`Can't build transaction fee, we will use DEFAULT_FEE(${DEFAULT_FEE})`)\n\n return fee || calculateMinFee(txType, { params, gas, vsn })\n}\n\n/**\n * Validate transaction params\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @param {Object} params Object with tx params\n * @param {Array} schema Transaction schema\n * @param {Array} excludeKeys Array of keys to exclude for validation\n * @return {Object} Object with validation errors\n */\nexport function validateParams (params, schema, { excludeKeys = [] }) {\n return Object.fromEntries(\n schema\n // TODO: allow optional keys in schema\n .filter(([key]) => !excludeKeys.includes(key) &&\n !['payload', 'nameFee', 'deposit'].includes(key))\n .map(([key, type, prefix]) => [key, validateField(params[key], type, prefix)])\n .filter(([, message]) => message)\n )\n}\n\n/**\n * Build binary transaction\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @param {Object} params Object with tx params\n * @param {Array} schema Transaction schema\n * @param {Object} [options={}] options\n * @param {String[]} [options.excludeKeys=[]] Array of keys to exclude for validation and build\n * @param {String} [options.denomination='aettos'] Denomination of amounts\n * @throws {Error} Validation error\n * @return {Array} Array with binary fields of transaction\n */\nexport function buildRawTx (\n params,\n schema,\n { excludeKeys = [], denomination = AE_AMOUNT_FORMATS.AETTOS } = {}\n) {\n const filteredSchema = schema.filter(([key]) => !excludeKeys.includes(key))\n\n // Transform `amount` type fields to `aettos`\n params = transformParams(params, filteredSchema, { denomination })\n // Validation\n const valid = validateParams(params, schema, { excludeKeys })\n if (Object.keys(valid).length) {\n throw new InvalidTxParamsError('Transaction build error. ' + JSON.stringify(valid))\n }\n\n return filteredSchema\n .map(([key, fieldType, prefix]) => serializeField(params[key], fieldType, prefix, params))\n}\n\n/**\n * Unpack binary transaction\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @param {Array} binary Array with binary transaction field's\n * @param {Array} schema Transaction schema\n * @return {Object} Object with transaction field's\n */\nexport function unpackRawTx (binary, schema) {\n return schema\n .reduce(\n (\n acc,\n [key, fieldType, prefix],\n index\n ) => Object.assign(acc, { [key]: deserializeField(binary[index], fieldType, prefix) }),\n {}\n )\n}\n\n/**\n * Get transaction serialization/deserialization schema\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @param {{ vsn: String, objId: Number, type: String }}\n * @throws {Error} Schema not found error\n * @return {Object} Schema\n */\nconst getSchema = ({ vsn, objId, type }) => {\n const isDeserialize = !!objId\n const firstKey = isDeserialize ? objId : type\n const schema = isDeserialize ? TX_DESERIALIZATION_SCHEMA : TX_SERIALIZATION_SCHEMA\n\n if (!schema[firstKey]) {\n throw new SchemaNotFoundError(`Transaction ${isDeserialize ? 'deserialization' : 'serialization'} not implemented for ${isDeserialize ? 'tag ' + objId : type}`)\n }\n if (!schema[firstKey][vsn]) {\n throw new SchemaNotFoundError(`Transaction ${isDeserialize ? 'deserialization' : 'serialization'} not implemented for ${isDeserialize ? 'tag ' + objId : type} version ${vsn}`)\n }\n return schema[firstKey][vsn]\n}\n\n/**\n * Build transaction hash\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @param {Object} params Object with tx params\n * @param {String} type Transaction type\n * @param {Object} [options={}] options\n * @param {String[]} [options.excludeKeys] Array of keys to exclude for validation and build\n * @param {String} [options.prefix] Prefix of transaction\n * @throws {Error} Validation error\n * @returns {Object} object\n * @returns {String} object.tx Base64Check transaction hash with 'tx_' prefix\n * @returns {Buffer} object.rlpEncoded rlp encoded transaction\n * @returns {Array<Buffer>} object.binary binary transaction\n */\nexport function buildTx (\n params,\n type,\n { excludeKeys = [], prefix = 'tx', vsn = VSN, denomination = AE_AMOUNT_FORMATS.AETTOS } = {}\n) {\n const [schema, tag] = getSchema({ type, vsn })\n const binary = buildRawTx(\n { ...params, VSN: vsn, tag },\n schema,\n { excludeKeys, denomination: params.denomination || denomination }\n ).filter(e => e !== undefined)\n\n const rlpEncoded = rlpEncode(binary)\n const tx = encode(rlpEncoded, prefix)\n\n return { tx, rlpEncoded, binary, txObject: unpackRawTx(binary, schema) }\n}\n\n/**\n * Unpack transaction hash\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @param {String|Buffer} encodedTx String or RLP encoded transaction array\n * (if fromRlpBinary flag is true)\n * @param {Boolean} fromRlpBinary Unpack from RLP encoded transaction (default: false)\n * @param {String} prefix - Prefix of data\n * @returns {Object} object\n * @returns {Object} object.tx Object with transaction param's\n * @returns {Buffer} object.rlpEncoded rlp encoded transaction\n * @returns {Array<Buffer>} object.binary binary transaction\n */\nexport function unpackTx (encodedTx, fromRlpBinary = false, prefix = 'tx') {\n const rlpEncoded = fromRlpBinary ? encodedTx : decode(encodedTx, prefix)\n const binary = rlpDecode(rlpEncoded)\n\n const objId = readInt(binary[0])\n const vsn = readInt(binary[1])\n const [schema] = getSchema({ objId, vsn })\n\n return { txType: OBJECT_ID_TX_TYPE[objId], tx: unpackRawTx(binary, schema), rlpEncoded, binary }\n}\n\n/**\n * Build a transaction hash\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/builder\n * @param {String | Buffer} rawTx base64 or rlp encoded transaction\n * @return {String} Transaction hash\n */\nexport function buildTxHash (rawTx) {\n const data = typeof rawTx === 'string' && rawTx.startsWith('tx_') ? decode(rawTx, 'tx') : rawTx\n return encode(hash(data), 'th')\n}\n\nexport default {\n calculateMinFee,\n calculateFee,\n unpackTx,\n unpackRawTx,\n buildTx,\n buildRawTx,\n validateParams,\n buildTxHash\n}\n"],"file":"index.mjs"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["BigNumber","AE_AMOUNT_FORMATS","formatAmount","hash","FIELD_TYPES","TX_SCHEMA","TX_TYPE","readInt","readId","readPointers","writeId","writeInt","buildPointers","encode","decode","buildContractId","toBytes","MPTree","ArgumentError","InvalidTxParamsError","SchemaNotFoundError","DecodeError","isKeyOfObject","deserializeField","value","type","prefix","ctVersion","vm","abi","vmVersion","from","abiVersion","amount","int","ttlType","shortInt","id","ids","map","bool","binary","stateTree","string","toString","payload","pointers","rlpBinary","unpackTx","rlpBinaries","v","rawBinary","hex","offChainUpdates","callStack","mptrees","t","callReturnType","sophiaCodeTypeInfo","reduce","acc","funHash","fnName","argType","outType","Object","deserialize","serializeField","params","signatures","split","rlpEncoded","serialize","validateField","isNaN","isBigNumber","String","lt","prefixes","Array","isArray","Boolean","some","p","key","length","transformParams","schema","denomination","filter","validateParams","excludeKeys","fromEntries","message","unpackRawTx","index","fieldType","assign","buildTx","_params","vsn","AETTOS","schemas","Math","max","keys","a","VSN","tag","filteredSchema","valid","JSON","stringify","e","undefined","rlpEncode","tx","txObject","encodedTx","txType","rlpDecode","objId","buildTxHash","rawTx","data","startsWith","buildContractIdByContractTx","contractTx","contractCreate","gaAttach","ownerId","nonce"],"sources":["../../../src/tx/builder/index.ts"],"sourcesContent":["import { EncodedData, EncodingType } from './../../utils/encoder'\nimport BigNumber from 'bignumber.js'\nimport { decode as rlpDecode, encode as rlpEncode, NestedUint8Array } from 'rlp'\nimport { AE_AMOUNT_FORMATS, formatAmount } from '../../utils/amount-formatter'\nimport { hash } from '../../utils/crypto'\nimport { Field } from './field-types'\n\nimport {\n FIELD_TYPES,\n RawTxObject,\n TxField,\n TxTypeSchemas,\n TxParamsCommon,\n TX_SCHEMA,\n TX_TYPE,\n TxSchema\n} from './schema'\nimport {\n readInt,\n readId,\n readPointers,\n writeId,\n writeInt,\n buildPointers,\n encode,\n decode,\n Pointer,\n buildContractId\n} from './helpers'\nimport { toBytes } from '../../utils/bytes'\nimport MPTree, { MPTreeBinary } from '../../utils/mptree'\nimport { ArgumentError, InvalidTxParamsError, SchemaNotFoundError, DecodeError } from '../../utils/errors'\nimport { isKeyOfObject } from '../../utils/other'\n\n/**\n * JavaScript-based Transaction builder\n */\n\n// SERIALIZE AND DESERIALIZE PART\nfunction deserializeField (\n value: any,\n type: FIELD_TYPES | typeof Field,\n prefix?: EncodingType | EncodingType[]\n): any {\n if (value == null) return ''\n switch (type) {\n case FIELD_TYPES.ctVersion: {\n const [vm, , abi] = value\n return {\n vmVersion: readInt(Buffer.from([vm])),\n abiVersion: readInt(Buffer.from([abi]))\n }\n }\n case FIELD_TYPES.amount:\n case FIELD_TYPES.int:\n case FIELD_TYPES.abiVersion:\n case FIELD_TYPES.ttlType:\n return readInt(value)\n case FIELD_TYPES.shortInt:\n return +readInt(value)\n case FIELD_TYPES.id:\n return readId(value)\n case FIELD_TYPES.ids:\n return value.map(readId)\n case FIELD_TYPES.bool:\n return value[0] === 1\n case FIELD_TYPES.binary:\n return encode(value, prefix as EncodingType)\n case FIELD_TYPES.stateTree:\n return encode(value, 'ss')\n case FIELD_TYPES.string:\n return value.toString()\n case FIELD_TYPES.payload:\n return encode(value, 'ba')\n case FIELD_TYPES.pointers:\n return readPointers(value)\n case FIELD_TYPES.rlpBinary:\n return unpackTx(encode(value, 'tx'))\n case FIELD_TYPES.rlpBinaries:\n return value.map((v: Buffer) => unpackTx(encode(v, 'tx')))\n case FIELD_TYPES.rawBinary:\n return value\n case FIELD_TYPES.hex:\n return value.toString('hex')\n case FIELD_TYPES.offChainUpdates:\n return value.map((v: Buffer) => unpackTx(encode(v, 'tx')))\n case FIELD_TYPES.callStack:\n // TODO: fix this\n return [readInt(value)]\n case FIELD_TYPES.mptrees:\n return value.map((t: MPTreeBinary) => new MPTree(t))\n case FIELD_TYPES.callReturnType:\n switch (readInt(value)) {\n case '0':\n return 'ok'\n case '1':\n return 'error'\n case '2':\n return 'revert'\n default:\n return value\n }\n case FIELD_TYPES.sophiaCodeTypeInfo:\n return value.reduce(\n (acc: object, [funHash, fnName, argType, outType]: [\n funHash: Buffer,\n fnName: string,\n argType: string,\n outType: string\n ]) => ({\n ...acc,\n [fnName.toString()]: { funHash, argType, outType }\n }),\n {}\n )\n default:\n if (type instanceof Object && 'deserialize' in type) return type.deserialize(value)\n return value\n }\n}\n\nfunction serializeField (\n value: any, type: FIELD_TYPES | typeof Field, params: any\n): any {\n switch (type) {\n case FIELD_TYPES.amount:\n case FIELD_TYPES.int:\n case FIELD_TYPES.shortInt:\n case FIELD_TYPES.abiVersion:\n case FIELD_TYPES.ttlType:\n return writeInt(value)\n case FIELD_TYPES.id:\n return writeId(value)\n case FIELD_TYPES.ids:\n return value.map(writeId)\n case FIELD_TYPES.bool:\n return Buffer.from([(value === true) ? 1 : 0])\n case FIELD_TYPES.binary:\n return decode(value)\n case FIELD_TYPES.stateTree:\n return decode(value)\n case FIELD_TYPES.hex:\n return Buffer.from(value, 'hex')\n case FIELD_TYPES.signatures:\n return value.map(Buffer.from)\n case FIELD_TYPES.payload:\n return typeof value === 'string' && value.split('_')[0] === 'ba'\n ? decode(value as EncodedData<'ba'>)\n : toBytes(value)\n case FIELD_TYPES.string:\n return toBytes(value)\n case FIELD_TYPES.pointers:\n return buildPointers(value)\n case FIELD_TYPES.rlpBinary:\n return value.rlpEncoded ?? value\n case FIELD_TYPES.mptrees:\n return value.map((t: typeof Field) => t.serialize(''))\n case FIELD_TYPES.ctVersion:\n return Buffer.from([...toBytes(value.vmVersion), 0, ...toBytes(value.abiVersion)])\n case FIELD_TYPES.callReturnType:\n switch (value) {\n case 'ok': return writeInt(0)\n case 'error': return writeInt(1)\n case 'revert': return writeInt(2)\n default: return value\n }\n default:\n if (type instanceof Object && 'serialize' in type) return type.serialize(value, params)\n return value\n }\n}\n\nfunction validateField (\n value: any,\n type: FIELD_TYPES | typeof Field,\n prefix?: EncodingType | EncodingType[]\n): string | undefined {\n // All fields are required\n if (value == null) return 'Field is required'\n\n // Validate type of value\n switch (type) {\n case FIELD_TYPES.amount:\n case FIELD_TYPES.int:\n case FIELD_TYPES.shortInt: {\n if (isNaN(value) && !BigNumber.isBigNumber(value)) {\n return `${String(value)} is not of type Number or BigNumber`\n }\n if (new BigNumber(value).lt(0)) return `${String(value)} must be >= 0`\n return\n }\n case FIELD_TYPES.id: {\n const prefixes = Array.isArray(prefix) ? prefix : [prefix]\n if (!prefixes.includes(value.split('_')[0])) {\n if (prefix == null) { return `'${String(value)}' prefix doesn't exist'` }\n return `'${String(value)}' prefix doesn't match expected prefix '${prefix.toString()}'`\n }\n return\n }\n case FIELD_TYPES.ctVersion:\n if (!(Boolean(value.abiVersion) && Boolean(value.vmVersion))) {\n return 'Value must be an object with \"vmVersion\" and \"abiVersion\" fields'\n }\n return\n case FIELD_TYPES.pointers:\n if (!Array.isArray(value)) return 'Value must be of type Array'\n if (value.some((p: Pointer) => !(Boolean(p.key) && Boolean(p.id)))) {\n return 'Value must contains only object\\'s like \\'{key: \"account_pubkey\", id: \"ak_lkamsflkalsdalksdlasdlasdlamd\"}\\''\n }\n if (value.length > 32) {\n return `Expected 32 pointers or less, got ${value.length} instead`\n }\n }\n}\n\nfunction transformParams (\n params: TxParamsCommon,\n schema: TxField[],\n { denomination }: {denomination?: AE_AMOUNT_FORMATS} = {}\n): any {\n params = schema\n .filter(([, t]) => t === FIELD_TYPES.amount)\n .reduce(\n (params: TxParamsCommon, [key]) => ({\n ...params,\n [key]: formatAmount(params[key as keyof TxParamsCommon], { denomination })\n }),\n params\n )\n return params\n}\n\n/**\n * Validate transaction params\n * @param params - Object with tx params\n * @param schema - Transaction schema\n * @param excludeKeys - Array of keys to exclude for validation\n * @returns Object with validation errors\n */\nexport function validateParams (\n params: any, schema: TxField[], { excludeKeys = [] }: { excludeKeys: string[] }\n): object {\n return Object.fromEntries(\n schema\n // TODO: allow optional keys in schema\n .filter(([key]) => !excludeKeys.includes(key) &&\n !['payload', 'nameFee', 'deposit', 'gasPrice'].includes(key))\n .map(([key, type, prefix]) => [key, validateField(params[key], type, prefix)])\n .filter(([, message]) => message)\n )\n}\n\n/**\n * Unpack binary transaction\n * @param binary - Array with binary transaction field's\n * @param schema - Transaction schema\n * @returns Object with transaction field's\n */\nexport function unpackRawTx<Tx extends TxSchema> (\n binary: Uint8Array | NestedUint8Array,\n schema: TxField[]\n): RawTxObject<Tx> {\n return schema\n .reduce<any>(\n (\n acc,\n [key, fieldType, prefix],\n index\n ) => Object.assign(acc, { [key]: deserializeField(binary[index], fieldType, prefix) }),\n {}\n )\n}\n\nexport interface BuiltTx<Tx extends TxSchema, Prefix extends EncodingType> {\n tx: EncodedData<Prefix>\n rlpEncoded: Uint8Array\n binary: Uint8Array\n txObject: RawTxObject<Tx>\n}\n\n/**\n * Build transaction hash\n * @param _params - Object with tx params\n * @param type - Transaction type\n * @param options - options\n * @param options.excludeKeys - Array of keys to exclude for validation and build\n * @param options.denomination - Denomination of amounts\n * @param options.prefix - Prefix of transaction\n * @throws {@link InvalidTxParamsError}\n * @returns object\n * @returns object.tx Base64Check transaction hash with 'tx_' prefix\n * @returns object.rlpEncoded rlp encoded transaction\n * @returns object.binary binary transaction\n */\nexport function buildTx<TxType extends TX_TYPE, Prefix> (\n _params: Omit<TxTypeSchemas[TxType], 'tag' | 'VSN'> & { VSN?: number },\n type: TxType,\n { excludeKeys = [], prefix = 'tx', vsn, denomination = AE_AMOUNT_FORMATS.AETTOS }: {\n excludeKeys?: string[]\n prefix?: EncodingType\n vsn?: number\n denomination?: AE_AMOUNT_FORMATS\n } = {}\n): BuiltTx<TxSchema, Prefix extends EncodingType ? Prefix : 'tx'> {\n const schemas = TX_SCHEMA[type]\n\n vsn ??= Math.max(...Object.keys(schemas).map(a => +a))\n if (!isKeyOfObject(vsn, schemas)) throw new SchemaNotFoundError('serialization', TX_TYPE[type], vsn)\n\n const schema = schemas[vsn] as unknown as TxField[]\n\n let params = _params as TxParamsCommon & { onNode: Node }\n params.VSN = vsn\n params.tag = type\n const filteredSchema = schema.filter(([key]) => !excludeKeys.includes(key))\n\n // Transform `amount` type fields to `aettos`\n params = transformParams(params, filteredSchema, { denomination })\n // Validation\n const valid = validateParams(params, schema, { excludeKeys })\n if (Object.keys(valid).length > 0) {\n throw new InvalidTxParamsError('Transaction build error. ' + JSON.stringify(valid))\n }\n\n const binary = filteredSchema\n .map(([key, fieldType]: [keyof TxSchema, FIELD_TYPES, EncodingType]) => serializeField(\n params[key], fieldType, params))\n .filter(e => e !== undefined)\n\n const rlpEncoded = rlpEncode(binary)\n const tx = encode(rlpEncoded, prefix)\n return {\n tx,\n rlpEncoded,\n binary,\n txObject: unpackRawTx<TxTypeSchemas[TX_TYPE]>(binary, schema)\n } as any\n}\n\nexport interface TxUnpacked<Tx extends TxSchema> {\n txType: TX_TYPE\n tx: RawTxObject<Tx>\n rlpEncoded: Uint8Array\n}\n/**\n * Unpack transaction hash\n * @param encodedTx - Transaction to unpack\n * @param txType - Expected transaction type\n * @returns object\n * @returns object.tx Object with transaction param's\n * @returns object.txType Transaction type\n */\nexport function unpackTx<TxType extends TX_TYPE> (\n encodedTx: EncodedData<'tx' | 'pi'>, txType?: TxType\n): TxUnpacked<TxTypeSchemas[TxType]> {\n const rlpEncoded = decode(encodedTx)\n const binary = rlpDecode(rlpEncoded)\n const objId = +readInt(binary[0] as Buffer)\n if (!isKeyOfObject(objId, TX_SCHEMA)) throw new DecodeError(`Unknown transaction tag: ${objId}`)\n if (txType != null && txType !== objId) throw new DecodeError(`Expected transaction to have ${TX_TYPE[txType]} tag, got ${TX_TYPE[objId]} instead`)\n const vsn = +readInt(binary[1] as Buffer)\n if (!isKeyOfObject(vsn, TX_SCHEMA[objId])) throw new SchemaNotFoundError('deserialization', `tag ${objId}`, vsn)\n const schema = TX_SCHEMA[objId][vsn]\n return {\n txType: objId,\n tx: unpackRawTx<TxTypeSchemas[TxType]>(binary, schema),\n rlpEncoded\n }\n}\n\n/**\n * Build a transaction hash\n * @param rawTx - base64 or rlp encoded transaction\n * @returns Transaction hash\n */\nexport function buildTxHash (rawTx: EncodedData<'tx'> | Uint8Array): EncodedData<'th'> {\n const data = typeof rawTx === 'string' && rawTx.startsWith('tx_')\n ? decode(rawTx)\n : rawTx\n return encode(hash(data), 'th')\n}\n\n/**\n * Build a contract public key by contractCreateTx or gaAttach\n * @param contractTx - Transaction\n * @returns Contract public key\n */\nexport function buildContractIdByContractTx (contractTx: EncodedData<'tx'>): EncodedData<'ct'> {\n const { txType, tx } = unpackTx<TX_TYPE.contractCreate | TX_TYPE.gaAttach>(contractTx)\n if (![TX_TYPE.contractCreate, TX_TYPE.gaAttach].includes(txType)) {\n throw new ArgumentError('contractCreateTx', 'a contractCreateTx or gaAttach', txType)\n }\n return buildContractId(tx.ownerId, +tx.nonce)\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transaction Schema for TxBuilder
|
|
3
|
+
*/
|
|
4
|
+
import BigNumber from 'bignumber.js';
|
|
5
|
+
import { Name, NameId, NameFee, Deposit, Field, GasPrice } from './field-types';
|
|
6
|
+
import { EncodedData, EncodingType } from '../../utils/encoder';
|
|
7
|
+
import { Pointer } from './helpers';
|
|
8
|
+
import MPTree from '../../utils/mptree';
|
|
9
|
+
export * from './constants';
|
|
10
|
+
export declare enum ORACLE_TTL_TYPES {
|
|
11
|
+
delta = 0,
|
|
12
|
+
block = 1
|
|
13
|
+
}
|
|
14
|
+
export declare const TX_TTL = 0;
|
|
15
|
+
export declare const QUERY_FEE = 30000;
|
|
16
|
+
export declare const ORACLE_TTL: {
|
|
17
|
+
type: ORACLE_TTL_TYPES;
|
|
18
|
+
value: number;
|
|
19
|
+
};
|
|
20
|
+
export declare const QUERY_TTL: {
|
|
21
|
+
type: ORACLE_TTL_TYPES;
|
|
22
|
+
value: number;
|
|
23
|
+
};
|
|
24
|
+
export declare const RESPONSE_TTL: {
|
|
25
|
+
type: ORACLE_TTL_TYPES;
|
|
26
|
+
value: number;
|
|
27
|
+
};
|
|
28
|
+
export declare const AMOUNT = 0;
|
|
29
|
+
export declare const GAS_MAX: number;
|
|
30
|
+
export declare const MAX_AUTH_FUN_GAS = 50000;
|
|
31
|
+
export declare const DRY_RUN_ACCOUNT: {
|
|
32
|
+
readonly pub: "ak_11111111111111111111111111111111273Yts";
|
|
33
|
+
readonly amount: 100000000000000000000000000000000000n;
|
|
34
|
+
};
|
|
35
|
+
export declare type TxField = [
|
|
36
|
+
name: string,
|
|
37
|
+
type: FIELD_TYPES | typeof Field,
|
|
38
|
+
prefix?: EncodingType | EncodingType[]
|
|
39
|
+
];
|
|
40
|
+
/**
|
|
41
|
+
* Enum with transaction types
|
|
42
|
+
* @see {@link https://github.com/aeternity/protocol/blob/0f6dee3d9d1e8e2469816798f5c7587a6c918f94/serializations.md#binary-serialization}
|
|
43
|
+
*/
|
|
44
|
+
export declare enum TX_TYPE {
|
|
45
|
+
account = 10,
|
|
46
|
+
signed = 11,
|
|
47
|
+
spend = 12,
|
|
48
|
+
oracleRegister = 22,
|
|
49
|
+
oracleQuery = 23,
|
|
50
|
+
oracleResponse = 24,
|
|
51
|
+
oracleExtend = 25,
|
|
52
|
+
nameClaim = 32,
|
|
53
|
+
namePreClaim = 33,
|
|
54
|
+
nameUpdate = 34,
|
|
55
|
+
nameRevoke = 35,
|
|
56
|
+
nameTransfer = 36,
|
|
57
|
+
contract = 40,
|
|
58
|
+
contractCallResult = 41,
|
|
59
|
+
contractCreate = 42,
|
|
60
|
+
contractCall = 43,
|
|
61
|
+
channelCreate = 50,
|
|
62
|
+
channelDeposit = 51,
|
|
63
|
+
channelWithdraw = 52,
|
|
64
|
+
channelCloseMutual = 53,
|
|
65
|
+
channelCloseSolo = 54,
|
|
66
|
+
channelSlash = 55,
|
|
67
|
+
channelSettle = 56,
|
|
68
|
+
channelOffChain = 57,
|
|
69
|
+
channel = 58,
|
|
70
|
+
channelSnapshotSolo = 59,
|
|
71
|
+
proofOfInclusion = 60,
|
|
72
|
+
stateTrees = 62,
|
|
73
|
+
merklePatriciaTree = 63,
|
|
74
|
+
merklePatriciaTreeValue = 64,
|
|
75
|
+
sophiaByteCode = 70,
|
|
76
|
+
gaAttach = 80,
|
|
77
|
+
gaMeta = 81,
|
|
78
|
+
payingFor = 82,
|
|
79
|
+
channelForceProgress = 521,
|
|
80
|
+
channelOffChainUpdateTransfer = 570,
|
|
81
|
+
channelOffChainUpdateDeposit = 571,
|
|
82
|
+
channelOffChainUpdateWithdrawal = 572,
|
|
83
|
+
channelOffChainCreateContract = 573,
|
|
84
|
+
channelOffChainCallContract = 574,
|
|
85
|
+
channelReconnect = 575,
|
|
86
|
+
contractsTree = 621,
|
|
87
|
+
contractCallsTree = 622,
|
|
88
|
+
channelsTree = 623,
|
|
89
|
+
nameserviceTree = 624,
|
|
90
|
+
oraclesTree = 625,
|
|
91
|
+
accountsTree = 626
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* @see {@link https://github.com/aeternity/protocol/blob/0f6dee3d9d1e8e2469816798f5c7587a6c918f94/contracts/contract_vms.md#virtual-machines-on-the-%C3%A6ternity-blockchain}
|
|
95
|
+
*/
|
|
96
|
+
export declare enum VM_VERSIONS {
|
|
97
|
+
NO_VM = 0,
|
|
98
|
+
SOPHIA = 1,
|
|
99
|
+
SOPHIA_IMPROVEMENTS_MINERVA = 3,
|
|
100
|
+
SOPHIA_IMPROVEMENTS_FORTUNA = 4,
|
|
101
|
+
FATE = 5,
|
|
102
|
+
SOPHIA_IMPROVEMENTS_LIMA = 6,
|
|
103
|
+
FATE_2 = 7
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* @see {@link https://github.com/aeternity/protocol/blob/0f6dee3d9d1e8e2469816798f5c7587a6c918f94/contracts/contract_vms.md#virtual-machines-on-the-%C3%A6ternity-blockchain}
|
|
107
|
+
*/
|
|
108
|
+
export declare enum ABI_VERSIONS {
|
|
109
|
+
NO_ABI = 0,
|
|
110
|
+
SOPHIA = 1,
|
|
111
|
+
FATE = 3
|
|
112
|
+
}
|
|
113
|
+
export declare enum PROTOCOL_VERSIONS {
|
|
114
|
+
IRIS = 5
|
|
115
|
+
}
|
|
116
|
+
export declare const PROTOCOL_VM_ABI: {
|
|
117
|
+
readonly 5: {
|
|
118
|
+
readonly 42: {
|
|
119
|
+
readonly vmVersion: readonly [VM_VERSIONS.FATE_2];
|
|
120
|
+
readonly abiVersion: readonly [ABI_VERSIONS.FATE];
|
|
121
|
+
};
|
|
122
|
+
readonly 43: {
|
|
123
|
+
readonly vmVersion: readonly [];
|
|
124
|
+
readonly abiVersion: readonly [ABI_VERSIONS.FATE, ABI_VERSIONS.SOPHIA];
|
|
125
|
+
};
|
|
126
|
+
readonly 22: {
|
|
127
|
+
readonly vmVersion: readonly [];
|
|
128
|
+
readonly abiVersion: readonly [ABI_VERSIONS.NO_ABI, ABI_VERSIONS.SOPHIA];
|
|
129
|
+
};
|
|
130
|
+
};
|
|
131
|
+
};
|
|
132
|
+
declare type PrefixType<Prefix> = Prefix extends EncodingType ? EncodedData<Prefix> : Prefix extends readonly EncodingType[] ? EncodedData<Prefix[number]> : EncodedData<any>;
|
|
133
|
+
export interface CtVersion {
|
|
134
|
+
vmVersion: VM_VERSIONS;
|
|
135
|
+
abiVersion: ABI_VERSIONS;
|
|
136
|
+
}
|
|
137
|
+
export declare enum FIELD_TYPES {
|
|
138
|
+
int = 0,
|
|
139
|
+
shortInt = 1,
|
|
140
|
+
amount = 2,
|
|
141
|
+
id = 3,
|
|
142
|
+
ids = 4,
|
|
143
|
+
string = 5,
|
|
144
|
+
binary = 6,
|
|
145
|
+
bool = 7,
|
|
146
|
+
hex = 8,
|
|
147
|
+
rlpBinary = 9,
|
|
148
|
+
rlpBinaries = 10,
|
|
149
|
+
rawBinary = 11,
|
|
150
|
+
signatures = 12,
|
|
151
|
+
pointers = 13,
|
|
152
|
+
offChainUpdates = 14,
|
|
153
|
+
callStack = 15,
|
|
154
|
+
proofOfInclusion = 16,
|
|
155
|
+
mptrees = 17,
|
|
156
|
+
callReturnType = 18,
|
|
157
|
+
ctVersion = 19,
|
|
158
|
+
abiVersion = 20,
|
|
159
|
+
ttlType = 21,
|
|
160
|
+
sophiaCodeTypeInfo = 22,
|
|
161
|
+
payload = 23,
|
|
162
|
+
stateTree = 24
|
|
163
|
+
}
|
|
164
|
+
interface BuildFieldTypes<Prefix extends undefined | EncodingType | readonly EncodingType[]> {
|
|
165
|
+
[FIELD_TYPES.int]: number | string | BigNumber;
|
|
166
|
+
[FIELD_TYPES.shortInt]: number;
|
|
167
|
+
[FIELD_TYPES.amount]: number | string | BigNumber;
|
|
168
|
+
[FIELD_TYPES.id]: PrefixType<Prefix>;
|
|
169
|
+
[FIELD_TYPES.ids]: Array<EncodedData<Prefix extends EncodingType[] ? Prefix : any>>;
|
|
170
|
+
[FIELD_TYPES.string]: string;
|
|
171
|
+
[FIELD_TYPES.binary]: PrefixType<Prefix>;
|
|
172
|
+
[FIELD_TYPES.bool]: Boolean;
|
|
173
|
+
[FIELD_TYPES.hex]: string;
|
|
174
|
+
[FIELD_TYPES.rlpBinary]: any;
|
|
175
|
+
[FIELD_TYPES.rlpBinaries]: any[];
|
|
176
|
+
[FIELD_TYPES.rawBinary]: Uint8Array;
|
|
177
|
+
[FIELD_TYPES.signatures]: Uint8Array[];
|
|
178
|
+
[FIELD_TYPES.pointers]: Pointer[];
|
|
179
|
+
[FIELD_TYPES.offChainUpdates]: any;
|
|
180
|
+
[FIELD_TYPES.callStack]: any;
|
|
181
|
+
[FIELD_TYPES.proofOfInclusion]: any;
|
|
182
|
+
[FIELD_TYPES.mptrees]: MPTree[];
|
|
183
|
+
[FIELD_TYPES.callReturnType]: any;
|
|
184
|
+
[FIELD_TYPES.ctVersion]: CtVersion;
|
|
185
|
+
[FIELD_TYPES.abiVersion]: ABI_VERSIONS;
|
|
186
|
+
[FIELD_TYPES.ttlType]: ORACLE_TTL_TYPES;
|
|
187
|
+
[FIELD_TYPES.sophiaCodeTypeInfo]: any;
|
|
188
|
+
[FIELD_TYPES.payload]: string | undefined;
|
|
189
|
+
[FIELD_TYPES.stateTree]: any;
|
|
190
|
+
}
|
|
191
|
+
declare type UnionToIntersection<Union> = (Union extends any ? (k: Union) => void : never) extends ((k: infer Intersection) => void) ? Intersection : never;
|
|
192
|
+
declare type TxElem = readonly [string, FIELD_TYPES | Field] | readonly [string, FIELD_TYPES, EncodingType | readonly EncodingType[]];
|
|
193
|
+
declare type BuildTxArgBySchemaType<Type extends FIELD_TYPES | Field, Prefix extends undefined | EncodingType | readonly EncodingType[]> = Type extends typeof Field ? Parameters<Type['serialize']>[0] : Type extends FIELD_TYPES ? BuildFieldTypes<Prefix>[Type] : never;
|
|
194
|
+
declare type NullablePartial<T, NK extends keyof T = {
|
|
195
|
+
[K in keyof T]: undefined extends T[K] ? K : never;
|
|
196
|
+
}[keyof T]> = Partial<Pick<T, NK>> & Omit<T, NK>;
|
|
197
|
+
declare type BuildTxArgBySchema<SchemaLine> = UnionToIntersection<SchemaLine extends ReadonlyArray<infer Elem> ? Elem extends TxElem ? NullablePartial<{
|
|
198
|
+
[k in Elem[0]]: BuildTxArgBySchemaType<Elem[1], Elem[2]>;
|
|
199
|
+
}> : never : never>;
|
|
200
|
+
export declare type RawTxObject<Tx extends TxSchema> = {
|
|
201
|
+
[k in keyof Tx]: Tx[k] extends BigNumber ? string : Tx[k];
|
|
202
|
+
};
|
|
203
|
+
export declare const TX_SCHEMA: {
|
|
204
|
+
readonly 10: {
|
|
205
|
+
readonly 2: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["flags", FIELD_TYPES.int], readonly ["nonce", FIELD_TYPES.shortInt], readonly ["balance", FIELD_TYPES.int], readonly ["gaContract", FIELD_TYPES.id, readonly ["ct", "nm"]], readonly ["gaAuthFun", FIELD_TYPES.binary, "cb"]];
|
|
206
|
+
};
|
|
207
|
+
readonly 11: {
|
|
208
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["signatures", FIELD_TYPES.signatures], readonly ["encodedTx", FIELD_TYPES.rlpBinary]];
|
|
209
|
+
};
|
|
210
|
+
readonly 12: {
|
|
211
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["senderId", FIELD_TYPES.id, "ak"], readonly ["recipientId", FIELD_TYPES.id, readonly ["ak", "nm"]], readonly ["amount", FIELD_TYPES.amount], readonly ["fee", FIELD_TYPES.int], readonly ["ttl", FIELD_TYPES.shortInt], readonly ["nonce", FIELD_TYPES.shortInt], readonly ["payload", FIELD_TYPES.payload]];
|
|
212
|
+
};
|
|
213
|
+
readonly 33: {
|
|
214
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["accountId", FIELD_TYPES.id, "ak"], readonly ["nonce", FIELD_TYPES.shortInt], readonly ["commitmentId", FIELD_TYPES.id, "cm"], readonly ["fee", FIELD_TYPES.int], readonly ["ttl", FIELD_TYPES.shortInt]];
|
|
215
|
+
};
|
|
216
|
+
readonly 32: {
|
|
217
|
+
readonly 2: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["accountId", FIELD_TYPES.id, "ak"], readonly ["nonce", FIELD_TYPES.shortInt], readonly ["name", typeof Name], readonly ["nameSalt", FIELD_TYPES.int], readonly ["nameFee", typeof NameFee], readonly ["fee", FIELD_TYPES.int], readonly ["ttl", FIELD_TYPES.shortInt]];
|
|
218
|
+
};
|
|
219
|
+
readonly 34: {
|
|
220
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["accountId", FIELD_TYPES.id, "ak"], readonly ["nonce", FIELD_TYPES.shortInt], readonly ["nameId", typeof NameId], readonly ["nameTtl", FIELD_TYPES.int], readonly ["pointers", FIELD_TYPES.pointers], readonly ["clientTtl", FIELD_TYPES.shortInt], readonly ["fee", FIELD_TYPES.int], readonly ["ttl", FIELD_TYPES.shortInt]];
|
|
221
|
+
};
|
|
222
|
+
readonly 36: {
|
|
223
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["accountId", FIELD_TYPES.id, "ak"], readonly ["nonce", FIELD_TYPES.shortInt], readonly ["nameId", typeof NameId], readonly ["recipientId", FIELD_TYPES.id, readonly ["ak", "nm"]], readonly ["fee", FIELD_TYPES.int], readonly ["ttl", FIELD_TYPES.shortInt]];
|
|
224
|
+
};
|
|
225
|
+
readonly 35: {
|
|
226
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["accountId", FIELD_TYPES.id, "ak"], readonly ["nonce", FIELD_TYPES.shortInt], readonly ["nameId", typeof NameId], readonly ["fee", FIELD_TYPES.int], readonly ["ttl", FIELD_TYPES.shortInt]];
|
|
227
|
+
};
|
|
228
|
+
readonly 40: {
|
|
229
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["owner", FIELD_TYPES.id, "ak"], readonly ["ctVersion", FIELD_TYPES.ctVersion], readonly ["code", FIELD_TYPES.binary, "cb"], readonly ["log", FIELD_TYPES.binary, "cb"], readonly ["active", FIELD_TYPES.bool], readonly ["referers", FIELD_TYPES.ids, "ak"], readonly ["deposit", typeof Deposit]];
|
|
230
|
+
};
|
|
231
|
+
readonly 42: {
|
|
232
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["ownerId", FIELD_TYPES.id, "ak"], readonly ["nonce", FIELD_TYPES.shortInt], readonly ["code", FIELD_TYPES.binary, "cb"], readonly ["ctVersion", FIELD_TYPES.ctVersion], readonly ["fee", FIELD_TYPES.int], readonly ["ttl", FIELD_TYPES.shortInt], readonly ["deposit", typeof Deposit], readonly ["amount", FIELD_TYPES.amount], readonly ["gasLimit", FIELD_TYPES.shortInt], readonly ["gasPrice", typeof GasPrice], readonly ["callData", FIELD_TYPES.binary, "cb"]];
|
|
233
|
+
};
|
|
234
|
+
readonly 43: {
|
|
235
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["callerId", FIELD_TYPES.id, "ak"], readonly ["nonce", FIELD_TYPES.shortInt], readonly ["contractId", FIELD_TYPES.id, readonly ["ct", "nm"]], readonly ["abiVersion", FIELD_TYPES.abiVersion], readonly ["fee", FIELD_TYPES.int], readonly ["ttl", FIELD_TYPES.shortInt], readonly ["amount", FIELD_TYPES.amount], readonly ["gasLimit", FIELD_TYPES.shortInt], readonly ["gasPrice", typeof GasPrice], readonly ["callData", FIELD_TYPES.binary, "cb"]];
|
|
236
|
+
};
|
|
237
|
+
readonly 41: {
|
|
238
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["callerId", FIELD_TYPES.id, "ak"], readonly ["callerNonce", FIELD_TYPES.shortInt], readonly ["height", FIELD_TYPES.shortInt], readonly ["contractId", FIELD_TYPES.id, "ct"], readonly ["gasPrice", typeof GasPrice], readonly ["gasUsed", FIELD_TYPES.shortInt], readonly ["returnValue", FIELD_TYPES.binary, "cb"], readonly ["returnType", FIELD_TYPES.callReturnType], readonly ["log", FIELD_TYPES.rawBinary]];
|
|
239
|
+
};
|
|
240
|
+
readonly 22: {
|
|
241
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["accountId", FIELD_TYPES.id, "ak"], readonly ["nonce", FIELD_TYPES.shortInt], readonly ["queryFormat", FIELD_TYPES.string], readonly ["responseFormat", FIELD_TYPES.string], readonly ["queryFee", FIELD_TYPES.amount], readonly ["oracleTtlType", FIELD_TYPES.ttlType], readonly ["oracleTtlValue", FIELD_TYPES.shortInt], readonly ["fee", FIELD_TYPES.int], readonly ["ttl", FIELD_TYPES.shortInt], readonly ["abiVersion", FIELD_TYPES.abiVersion]];
|
|
242
|
+
};
|
|
243
|
+
readonly 25: {
|
|
244
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["oracleId", FIELD_TYPES.id, readonly ["ok", "nm"]], readonly ["nonce", FIELD_TYPES.shortInt], readonly ["oracleTtlType", FIELD_TYPES.ttlType], readonly ["oracleTtlValue", FIELD_TYPES.shortInt], readonly ["fee", FIELD_TYPES.int], readonly ["ttl", FIELD_TYPES.shortInt]];
|
|
245
|
+
};
|
|
246
|
+
readonly 23: {
|
|
247
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["senderId", FIELD_TYPES.id, "ak"], readonly ["nonce", FIELD_TYPES.shortInt], readonly ["oracleId", FIELD_TYPES.id, readonly ["ok", "nm"]], readonly ["query", FIELD_TYPES.string], readonly ["queryFee", FIELD_TYPES.amount], readonly ["queryTtlType", FIELD_TYPES.ttlType], readonly ["queryTtlValue", FIELD_TYPES.shortInt], readonly ["responseTtlType", FIELD_TYPES.ttlType], readonly ["responseTtlValue", FIELD_TYPES.shortInt], readonly ["fee", FIELD_TYPES.int], readonly ["ttl", FIELD_TYPES.shortInt]];
|
|
248
|
+
};
|
|
249
|
+
readonly 24: {
|
|
250
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["oracleId", FIELD_TYPES.id, "ok"], readonly ["nonce", FIELD_TYPES.shortInt], readonly ["queryId", FIELD_TYPES.binary, "oq"], readonly ["response", FIELD_TYPES.string], readonly ["responseTtlType", FIELD_TYPES.ttlType], readonly ["responseTtlValue", FIELD_TYPES.shortInt], readonly ["fee", FIELD_TYPES.int], readonly ["ttl", FIELD_TYPES.shortInt]];
|
|
251
|
+
};
|
|
252
|
+
readonly 50: {
|
|
253
|
+
readonly 2: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["initiator", FIELD_TYPES.id, "ak"], readonly ["initiatorAmount", FIELD_TYPES.int], readonly ["responder", FIELD_TYPES.id, "ak"], readonly ["responderAmount", FIELD_TYPES.int], readonly ["channelReserve", FIELD_TYPES.int], readonly ["lockPeriod", FIELD_TYPES.int], readonly ["ttl", FIELD_TYPES.shortInt], readonly ["fee", FIELD_TYPES.int], readonly ["initiatorDelegateIds", FIELD_TYPES.string], readonly ["responderDelegateIds", FIELD_TYPES.string], readonly ["stateHash", FIELD_TYPES.binary, "st"], readonly ["nonce", FIELD_TYPES.shortInt]];
|
|
254
|
+
};
|
|
255
|
+
readonly 53: {
|
|
256
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["channelId", FIELD_TYPES.id, "ch"], readonly ["fromId", FIELD_TYPES.id, "ak"], readonly ["initiatorAmountFinal", FIELD_TYPES.int], readonly ["responderAmountFinal", FIELD_TYPES.int], readonly ["ttl", FIELD_TYPES.shortInt], readonly ["fee", FIELD_TYPES.int], readonly ["nonce", FIELD_TYPES.shortInt]];
|
|
257
|
+
};
|
|
258
|
+
readonly 54: {
|
|
259
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["channelId", FIELD_TYPES.id, "ch"], readonly ["fromId", FIELD_TYPES.id, "ak"], readonly ["payload", FIELD_TYPES.binary, "tx"], readonly ["poi", FIELD_TYPES.binary, "pi"], readonly ["ttl", FIELD_TYPES.shortInt], readonly ["fee", FIELD_TYPES.int], readonly ["nonce", FIELD_TYPES.shortInt]];
|
|
260
|
+
};
|
|
261
|
+
readonly 55: {
|
|
262
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["channelId", FIELD_TYPES.id, "ch"], readonly ["fromId", FIELD_TYPES.id, "ak"], readonly ["payload", FIELD_TYPES.binary, "tx"], readonly ["poi", FIELD_TYPES.binary, "pi"], readonly ["ttl", FIELD_TYPES.shortInt], readonly ["fee", FIELD_TYPES.int], readonly ["nonce", FIELD_TYPES.shortInt]];
|
|
263
|
+
};
|
|
264
|
+
readonly 51: {
|
|
265
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["channelId", FIELD_TYPES.id, "ch"], readonly ["fromId", FIELD_TYPES.id, "ak"], readonly ["amount", FIELD_TYPES.int], readonly ["ttl", FIELD_TYPES.shortInt], readonly ["fee", FIELD_TYPES.int], readonly ["stateHash", FIELD_TYPES.binary, "st"], readonly ["round", FIELD_TYPES.int], readonly ["nonce", FIELD_TYPES.shortInt]];
|
|
266
|
+
};
|
|
267
|
+
readonly 52: {
|
|
268
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["channelId", FIELD_TYPES.id, "ch"], readonly ["toId", FIELD_TYPES.id, "ak"], readonly ["amount", FIELD_TYPES.int], readonly ["ttl", FIELD_TYPES.shortInt], readonly ["fee", FIELD_TYPES.int], readonly ["stateHash", FIELD_TYPES.binary, "st"], readonly ["round", FIELD_TYPES.int], readonly ["nonce", FIELD_TYPES.shortInt]];
|
|
269
|
+
};
|
|
270
|
+
readonly 56: {
|
|
271
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["channelId", FIELD_TYPES.id, "ch"], readonly ["fromId", FIELD_TYPES.id, "ak"], readonly ["initiatorAmountFinal", FIELD_TYPES.int], readonly ["responderAmountFinal", FIELD_TYPES.int], readonly ["ttl", FIELD_TYPES.shortInt], readonly ["fee", FIELD_TYPES.int], readonly ["nonce", FIELD_TYPES.shortInt]];
|
|
272
|
+
};
|
|
273
|
+
readonly 521: {
|
|
274
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["channelId", FIELD_TYPES.id, "ch"], readonly ["fromId", FIELD_TYPES.id, "ak"], readonly ["payload", FIELD_TYPES.binary, "tx"], readonly ["round", FIELD_TYPES.int], readonly ["update", FIELD_TYPES.binary, "cb"], readonly ["stateHash", FIELD_TYPES.binary, "st"], readonly ["offChainTrees", FIELD_TYPES.stateTree], readonly ["ttl", FIELD_TYPES.shortInt], readonly ["fee", FIELD_TYPES.int], readonly ["nonce", FIELD_TYPES.shortInt]];
|
|
275
|
+
};
|
|
276
|
+
readonly 57: {
|
|
277
|
+
readonly 2: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["channelId", FIELD_TYPES.id, "ch"], readonly ["round", FIELD_TYPES.int], readonly ["stateHash", FIELD_TYPES.binary, "st"]];
|
|
278
|
+
};
|
|
279
|
+
readonly 58: {
|
|
280
|
+
readonly 3: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["initiator", FIELD_TYPES.id, "ak"], readonly ["responder", FIELD_TYPES.id, "ak"], readonly ["channelAmount", FIELD_TYPES.int], readonly ["initiatorAmount", FIELD_TYPES.int], readonly ["responderAmount", FIELD_TYPES.int], readonly ["channelReserve", FIELD_TYPES.int], readonly ["initiatorDelegateIds", FIELD_TYPES.ids], readonly ["responderDelegateIds", FIELD_TYPES.ids], readonly ["stateHash", FIELD_TYPES.hex], readonly ["round", FIELD_TYPES.int], readonly ["soloRound", FIELD_TYPES.int], readonly ["lockPeriod", FIELD_TYPES.int], readonly ["lockedUntil", FIELD_TYPES.int], readonly ["initiatorAuth", FIELD_TYPES.binary, "cb"], readonly ["responderAuth", FIELD_TYPES.binary, "cb"]];
|
|
281
|
+
};
|
|
282
|
+
readonly 59: {
|
|
283
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["channelId", FIELD_TYPES.id, "ch"], readonly ["fromId", FIELD_TYPES.id, "ak"], readonly ["payload", FIELD_TYPES.binary, "tx"], readonly ["ttl", FIELD_TYPES.shortInt], readonly ["fee", FIELD_TYPES.int], readonly ["nonce", FIELD_TYPES.shortInt]];
|
|
284
|
+
};
|
|
285
|
+
readonly 570: {
|
|
286
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["from", FIELD_TYPES.id, "ak"], readonly ["to", FIELD_TYPES.id, "ak"], readonly ["amount", FIELD_TYPES.int]];
|
|
287
|
+
};
|
|
288
|
+
readonly 571: {
|
|
289
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["from", FIELD_TYPES.id, "ak"], readonly ["amount", FIELD_TYPES.int]];
|
|
290
|
+
};
|
|
291
|
+
readonly 572: {
|
|
292
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["from", FIELD_TYPES.id, "ak"], readonly ["amount", FIELD_TYPES.int]];
|
|
293
|
+
};
|
|
294
|
+
readonly 573: {
|
|
295
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["owner", FIELD_TYPES.id, "ak"], readonly ["ctVersion", FIELD_TYPES.ctVersion], readonly ["code", FIELD_TYPES.binary, "cb"], readonly ["deposit", FIELD_TYPES.int], readonly ["callData", FIELD_TYPES.binary, "cb"]];
|
|
296
|
+
};
|
|
297
|
+
readonly 574: {
|
|
298
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["caller", FIELD_TYPES.id, "ak"], readonly ["contract", FIELD_TYPES.id, "ct"], readonly ["abiVersion", FIELD_TYPES.abiVersion], readonly ["amount", FIELD_TYPES.int], readonly ["callData", FIELD_TYPES.binary, "cb"], readonly ["callStack", FIELD_TYPES.callStack], readonly ["gasPrice", typeof GasPrice], readonly ["gasLimit", FIELD_TYPES.shortInt]];
|
|
299
|
+
};
|
|
300
|
+
readonly 575: {
|
|
301
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["channelId", FIELD_TYPES.id, "ch"], readonly ["round", FIELD_TYPES.int], readonly ["role", FIELD_TYPES.string], readonly ["pubkey", FIELD_TYPES.id, "ak"]];
|
|
302
|
+
};
|
|
303
|
+
readonly 60: {
|
|
304
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["accounts", FIELD_TYPES.mptrees], readonly ["calls", FIELD_TYPES.mptrees], readonly ["channels", FIELD_TYPES.mptrees], readonly ["contracts", FIELD_TYPES.mptrees], readonly ["ns", FIELD_TYPES.mptrees], readonly ["oracles", FIELD_TYPES.mptrees]];
|
|
305
|
+
};
|
|
306
|
+
readonly 62: {
|
|
307
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["contracts", FIELD_TYPES.rlpBinary], readonly ["calls", FIELD_TYPES.rlpBinary], readonly ["channels", FIELD_TYPES.rlpBinary], readonly ["ns", FIELD_TYPES.rlpBinary], readonly ["oracles", FIELD_TYPES.rlpBinary], readonly ["accounts", FIELD_TYPES.rlpBinary]];
|
|
308
|
+
};
|
|
309
|
+
readonly 63: {
|
|
310
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["values", FIELD_TYPES.rlpBinaries]];
|
|
311
|
+
};
|
|
312
|
+
readonly 64: {
|
|
313
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["key", FIELD_TYPES.hex], readonly ["value", FIELD_TYPES.rawBinary]];
|
|
314
|
+
};
|
|
315
|
+
readonly 621: {
|
|
316
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["contracts", FIELD_TYPES.rlpBinary]];
|
|
317
|
+
};
|
|
318
|
+
readonly 622: {
|
|
319
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["calls", FIELD_TYPES.rlpBinary]];
|
|
320
|
+
};
|
|
321
|
+
readonly 623: {
|
|
322
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["channels", FIELD_TYPES.rlpBinary]];
|
|
323
|
+
};
|
|
324
|
+
readonly 624: {
|
|
325
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["mtree", FIELD_TYPES.rlpBinary]];
|
|
326
|
+
};
|
|
327
|
+
readonly 625: {
|
|
328
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["otree", FIELD_TYPES.rlpBinary]];
|
|
329
|
+
};
|
|
330
|
+
readonly 626: {
|
|
331
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["accounts", FIELD_TYPES.rlpBinary]];
|
|
332
|
+
};
|
|
333
|
+
readonly 80: {
|
|
334
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["ownerId", FIELD_TYPES.id, "ak"], readonly ["nonce", FIELD_TYPES.shortInt], readonly ["code", FIELD_TYPES.binary, "cb"], readonly ["authFun", FIELD_TYPES.rawBinary], readonly ["ctVersion", FIELD_TYPES.ctVersion], readonly ["fee", FIELD_TYPES.int], readonly ["ttl", FIELD_TYPES.shortInt], readonly ["gasLimit", FIELD_TYPES.shortInt], readonly ["gasPrice", typeof GasPrice], readonly ["callData", FIELD_TYPES.binary, "cb"]];
|
|
335
|
+
};
|
|
336
|
+
readonly 81: {
|
|
337
|
+
readonly 2: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["gaId", FIELD_TYPES.id, "ak"], readonly ["authData", FIELD_TYPES.binary, "cb"], readonly ["abiVersion", FIELD_TYPES.abiVersion], readonly ["fee", FIELD_TYPES.int], readonly ["gasLimit", FIELD_TYPES.shortInt], readonly ["gasPrice", typeof GasPrice], readonly ["tx", FIELD_TYPES.rlpBinary]];
|
|
338
|
+
};
|
|
339
|
+
readonly 82: {
|
|
340
|
+
readonly 1: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["payerId", FIELD_TYPES.id, "ak"], readonly ["nonce", FIELD_TYPES.shortInt], readonly ["fee", FIELD_TYPES.int], readonly ["tx", FIELD_TYPES.rlpBinary]];
|
|
341
|
+
};
|
|
342
|
+
readonly 70: {
|
|
343
|
+
readonly 3: readonly [readonly ["tag", FIELD_TYPES.shortInt], readonly ["VSN", FIELD_TYPES.shortInt], readonly ["sourceCodeHash", FIELD_TYPES.rawBinary], readonly ["typeInfo", FIELD_TYPES.sophiaCodeTypeInfo], readonly ["byteCode", FIELD_TYPES.rawBinary], readonly ["compilerVersion", FIELD_TYPES.string], readonly ["payable", FIELD_TYPES.bool]];
|
|
344
|
+
};
|
|
345
|
+
};
|
|
346
|
+
export declare type TxTypeSchemas = {
|
|
347
|
+
[key in TX_TYPE]: BuildTxArgBySchema<typeof TX_SCHEMA[key][keyof typeof TX_SCHEMA[key]]>;
|
|
348
|
+
};
|
|
349
|
+
export declare type TxSchema = TxTypeSchemas[TX_TYPE];
|
|
350
|
+
export declare type TxParamsCommon = Partial<UnionToIntersection<TxSchema>>;
|