@aeternity/aepp-sdk 10.0.0 → 11.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/README.md +15 -14
- package/dist/aepp-sdk.browser-script.js +1 -1
- package/dist/aepp-sdk.browser-script.js.LICENSE.txt +7 -27
- 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/account/{base.js → base.mjs} +20 -10
- package/es/account/base.mjs.map +1 -0
- package/es/account/{memory.js → memory.mjs} +29 -14
- package/es/account/memory.mjs.map +1 -0
- package/es/account/{multiple.js → multiple.mjs} +10 -9
- package/es/account/multiple.mjs.map +1 -0
- package/es/ae/{aens.js → aens.mjs} +18 -22
- package/es/ae/aens.mjs.map +1 -0
- package/es/ae/{aepp.js → aepp.mjs} +9 -9
- package/es/ae/aepp.mjs.map +1 -0
- package/es/ae/contract.mjs +159 -0
- package/es/ae/contract.mjs.map +1 -0
- package/es/ae/{index.js → index.mjs} +8 -7
- package/es/ae/index.mjs.map +1 -0
- package/es/ae/{oracle.js → oracle.mjs} +33 -16
- package/es/ae/oracle.mjs.map +1 -0
- package/es/ae/{universal.js → universal.mjs} +10 -10
- package/es/ae/universal.mjs.map +1 -0
- package/es/ae/{wallet.js → wallet.mjs} +10 -10
- package/es/ae/wallet.mjs.map +1 -0
- package/es/aepp-wallet-communication/schema.d.ts +74 -0
- package/es/bignumber.d.ts +1 -7
- package/es/chain/{index.js → index.mjs} +20 -4
- package/es/chain/index.mjs.map +1 -0
- package/es/chain/{node.js → node.mjs} +121 -73
- package/es/chain/node.mjs.map +1 -0
- package/es/channel/{handlers.js → handlers.mjs} +18 -20
- package/es/channel/handlers.mjs.map +1 -0
- package/es/channel/{index.js → index.mjs} +7 -7
- package/es/channel/index.mjs.map +1 -0
- package/es/channel/{internal.js → internal.mjs} +49 -32
- package/es/channel/internal.mjs.map +1 -0
- package/es/contract/aci.mjs +477 -0
- package/es/contract/aci.mjs.map +1 -0
- package/es/contract/compiler.mjs +115 -0
- package/es/contract/compiler.mjs.map +1 -0
- package/es/contract/ga/helpers.mjs +30 -0
- package/es/contract/ga/helpers.mjs.map +1 -0
- package/es/contract/ga/{index.js → index.mjs} +36 -28
- package/es/contract/ga/index.mjs.map +1 -0
- package/es/errors.d.ts +284 -0
- package/es/index.mjs +57 -0
- package/es/index.mjs.map +1 -0
- package/es/node-pool/{index.js → index.mjs} +11 -10
- package/es/node-pool/index.mjs.map +1 -0
- package/es/{node.js → node.mjs} +9 -8
- package/es/node.mjs.map +1 -0
- package/es/tx/builder/field-types.mjs +74 -0
- package/es/tx/builder/field-types.mjs.map +1 -0
- package/es/tx/builder/{helpers.js → helpers.mjs} +114 -56
- package/es/tx/builder/helpers.mjs.map +1 -0
- package/es/tx/builder/{index.js → index.mjs} +79 -68
- package/es/tx/builder/index.mjs.map +1 -0
- package/es/tx/builder/{schema.js → schema.mjs} +11 -65
- package/es/tx/builder/schema.mjs.map +1 -0
- package/es/tx/{index.js → index.mjs} +5 -2
- package/es/tx/index.mjs.map +1 -0
- package/es/tx/{tx-object.js → tx-object.mjs} +22 -15
- package/es/tx/tx-object.mjs.map +1 -0
- package/es/tx/{tx.js → tx.mjs} +15 -14
- package/es/tx/tx.mjs.map +1 -0
- package/es/tx/{validator.js → validator.mjs} +72 -33
- package/es/tx/validator.mjs.map +1 -0
- package/es/typings/blakejs/index.d.mjs +2 -0
- package/es/typings/blakejs/{index.d.js.map → index.d.mjs.map} +1 -1
- package/es/utils/aepp-wallet-communication/connection/{browser-runtime.js → browser-runtime.mjs} +7 -6
- package/es/utils/aepp-wallet-communication/connection/browser-runtime.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/connection/{browser-window-message.js → browser-window-message.mjs} +10 -11
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/connection/{index.js → index.mjs} +5 -2
- package/es/utils/aepp-wallet-communication/connection/index.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/{content-script-bridge.js → content-script-bridge.mjs} +6 -5
- package/es/utils/aepp-wallet-communication/content-script-bridge.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/{helpers.js → helpers.mjs} +3 -14
- package/es/utils/aepp-wallet-communication/helpers.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/rpc/{aepp-rpc.js → aepp-rpc.mjs} +113 -67
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/rpc/{rpc-client.js → rpc-client.mjs} +14 -9
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/rpc/{wallet-rpc.js → wallet-rpc.mjs} +71 -63
- package/es/utils/aepp-wallet-communication/rpc/wallet-rpc.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/schema.mjs +102 -0
- package/es/utils/aepp-wallet-communication/schema.mjs.map +1 -0
- package/es/utils/aepp-wallet-communication/{wallet-detector.js → wallet-detector.mjs} +6 -5
- package/es/utils/aepp-wallet-communication/wallet-detector.mjs.map +1 -0
- package/es/utils/{amount-formatter.js → amount-formatter.mjs} +14 -7
- package/es/utils/amount-formatter.mjs.map +1 -0
- package/es/utils/{async-init.js → async-init.mjs} +8 -11
- package/es/utils/async-init.mjs.map +1 -0
- package/es/utils/{bignumber.js → bignumber.mjs} +2 -9
- package/es/utils/bignumber.mjs.map +1 -0
- package/es/utils/{bytes.js → bytes.mjs} +16 -8
- package/es/utils/bytes.mjs.map +1 -0
- package/es/utils/{crypto-ts.js → crypto-ts.mjs} +11 -3
- package/es/utils/crypto-ts.mjs.map +1 -0
- package/es/utils/{crypto.js → crypto.mjs} +40 -105
- package/es/utils/crypto.mjs.map +1 -0
- package/es/utils/errors.mjs +689 -0
- package/es/utils/errors.mjs.map +1 -0
- package/es/utils/{hd-wallet.js → hd-wallet.mjs} +33 -34
- package/es/utils/hd-wallet.mjs.map +1 -0
- package/es/utils/{json-big.js → json-big.mjs} +1 -1
- package/es/utils/{json-big.js.map → json-big.mjs.map} +1 -1
- package/es/utils/{keystore.js → keystore.mjs} +63 -51
- package/es/utils/keystore.mjs.map +1 -0
- package/es/utils/{mptree.js → mptree.mjs} +21 -12
- package/es/utils/mptree.mjs.map +1 -0
- package/es/utils/{other.js → other.mjs} +2 -2
- package/es/utils/other.mjs.map +1 -0
- package/es/utils/{semver-satisfies.js → semver-satisfies.mjs} +1 -1
- package/es/utils/{semver-satisfies.js.map → semver-satisfies.mjs.map} +1 -1
- package/es/utils/{string.js → string.mjs} +1 -1
- package/es/utils/{string.js.map → string.mjs.map} +1 -1
- package/es/utils/{swagger.js → swagger.mjs} +46 -14
- package/es/utils/swagger.mjs.map +1 -0
- package/package.json +46 -55
- package/src/account/memory.js +13 -8
- package/src/account/multiple.js +12 -4
- package/src/ae/aens.js +12 -17
- package/src/ae/aepp.js +2 -2
- package/src/ae/contract.js +15 -152
- package/src/ae/index.js +2 -1
- package/src/ae/oracle.js +25 -10
- package/src/ae/universal.js +2 -2
- package/src/ae/wallet.js +2 -2
- package/src/chain/index.js +21 -2
- package/src/chain/node.js +80 -53
- package/src/channel/handlers.js +20 -17
- package/src/channel/internal.js +30 -24
- package/src/contract/{aci/index.js → aci.js} +152 -93
- package/src/contract/compiler.js +22 -117
- package/src/contract/ga/helpers.js +7 -5
- package/src/contract/ga/index.js +27 -24
- package/src/index.js +7 -8
- package/src/node-pool/index.js +9 -8
- package/src/node.js +5 -7
- package/src/tx/builder/field-types.js +61 -0
- package/src/tx/builder/helpers.js +113 -58
- package/src/tx/builder/index.js +39 -34
- package/src/tx/builder/schema.js +11 -25
- package/src/tx/tx-object.js +10 -9
- package/src/tx/tx.js +17 -8
- package/src/tx/validator.js +25 -5
- package/src/utils/aepp-wallet-communication/connection/browser-runtime.js +8 -3
- package/src/utils/aepp-wallet-communication/connection/browser-window-message.js +10 -6
- package/src/utils/aepp-wallet-communication/content-script-bridge.js +5 -4
- package/src/utils/aepp-wallet-communication/helpers.js +2 -12
- package/src/utils/aepp-wallet-communication/rpc/aepp-rpc.js +81 -55
- package/src/utils/aepp-wallet-communication/rpc/rpc-client.js +15 -6
- package/src/utils/aepp-wallet-communication/rpc/wallet-rpc.js +60 -49
- package/src/utils/aepp-wallet-communication/schema.ts +80 -0
- package/src/utils/aepp-wallet-communication/wallet-detector.js +3 -2
- package/src/utils/amount-formatter.ts +4 -3
- package/src/utils/async-init.js +10 -6
- package/src/utils/bignumber.ts +1 -9
- package/src/utils/bytes.ts +3 -2
- package/src/utils/crypto-ts.ts +2 -2
- package/src/utils/crypto.js +9 -92
- package/src/utils/errors.ts +683 -0
- package/src/utils/hd-wallet.js +11 -26
- package/src/utils/keystore.js +47 -51
- package/src/utils/mptree.ts +12 -6
- package/src/utils/swagger.js +67 -44
- package/CHANGELOG.md +0 -1603
- package/es/account/base.js.map +0 -1
- package/es/account/memory.js.map +0 -1
- package/es/account/multiple.js.map +0 -1
- package/es/ae/aens.js.map +0 -1
- 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.map +0 -1
- package/es/ae/oracle.js.map +0 -1
- package/es/ae/universal.js.map +0 -1
- package/es/ae/wallet.js.map +0 -1
- package/es/chain/index.js.map +0 -1
- package/es/chain/node.js.map +0 -1
- package/es/channel/handlers.js.map +0 -1
- package/es/channel/index.js.map +0 -1
- 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.map +0 -1
- package/es/contract/index.js +0 -162
- package/es/contract/index.js.map +0 -1
- package/es/index.js +0 -57
- package/es/index.js.map +0 -1
- package/es/node-pool/index.js.map +0 -1
- package/es/node.js.map +0 -1
- package/es/tx/builder/helpers.js.map +0 -1
- package/es/tx/builder/index.js.map +0 -1
- package/es/tx/builder/schema.js.map +0 -1
- package/es/tx/index.js.map +0 -1
- package/es/tx/tx-object.js.map +0 -1
- package/es/tx/tx.js.map +0 -1
- package/es/tx/validator.js.map +0 -1
- package/es/typings/blakejs/index.d.js +0 -2
- package/es/utils/aepp-wallet-communication/connection/browser-runtime.js.map +0 -1
- package/es/utils/aepp-wallet-communication/connection/browser-window-message.js.map +0 -1
- package/es/utils/aepp-wallet-communication/connection/index.js.map +0 -1
- package/es/utils/aepp-wallet-communication/content-script-bridge.js.map +0 -1
- package/es/utils/aepp-wallet-communication/helpers.js.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/aepp-rpc.js.map +0 -1
- package/es/utils/aepp-wallet-communication/rpc/rpc-client.js.map +0 -1
- 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.map +0 -1
- package/es/utils/amount-formatter.js.map +0 -1
- package/es/utils/async-init.js.map +0 -1
- 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.map +0 -1
- package/es/utils/hd-wallet.js.map +0 -1
- package/es/utils/keystore.js.map +0 -1
- package/es/utils/mptree.js.map +0 -1
- package/es/utils/other.js.map +0 -1
- package/es/utils/swagger.js.map +0 -1
- package/src/contract/aci/transformation.js +0 -72
- package/src/contract/index.js +0 -163
- package/src/utils/aepp-wallet-communication/schema.js +0 -108
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/tx/builder/schema.js"],"names":["BigNumber","Name","NameId","NameFee","Deposit","VSN","VSN_2","TX_TTL","QUERY_FEE","ORACLE_TTL","type","value","QUERY_TTL","RESPONSE_TTL","AMOUNT","GAS_MAX","MIN_GAS_PRICE","MAX_AUTH_FUN_GAS","DRY_RUN_ACCOUNT","pub","amount","NAME_TTL","NAME_MAX_TTL","NAME_MAX_CLIENT_TTL","CLIENT_TTL","NAME_FEE_MULTIPLIER","NAME_FEE_BID_INCREMENT","NAME_BID_TIMEOUT_BLOCKS","NAME_MAX_LENGTH_FEE","NAME_BID_MAX_LENGTH","POINTER_KEY_BY_PREFIX","ak","ok","ct","ch","NAME_BID_RANGES","times","NAME_BID_TIMEOUTS","ID_TAG_ACCOUNT","ID_TAG_NAME","ID_TAG_COMMITMENT","ID_TAG_ORACLE","ID_TAG_CONTRACT","ID_TAG_CHANNEL","OBJECT_TAG_ACCOUNT","OBJECT_TAG_SIGNED_TRANSACTION","OBJECT_TAG_SPEND_TRANSACTION","OBJECT_TAG_ORACLE_REGISTER_TRANSACTION","OBJECT_TAG_ORACLE_QUERY_TRANSACTION","OBJECT_TAG_ORACLE_RESPONSE_TRANSACTION","OBJECT_TAG_ORACLE_EXTEND_TRANSACTION","OBJECT_TAG_NAME_SERVICE_CLAIM_TRANSACTION","OBJECT_TAG_NAME_SERVICE_PRECLAIM_TRANSACTION","OBJECT_TAG_NAME_SERVICE_UPDATE_TRANSACTION","OBJECT_TAG_NAME_SERVICE_REVOKE_TRANSACTION","OBJECT_TAG_NAME_SERVICE_TRANSFER_TRANSACTION","OBJECT_TAG_CONTRACT","OBJECT_TAG_CONTRACT_CALL","OBJECT_TAG_CONTRACT_CREATE_TRANSACTION","OBJECT_TAG_CONTRACT_CALL_TRANSACTION","OBJECT_TAG_CHANNEL_CREATE_TX","OBJECT_TAG_CHANNEL_DEPOSIT_TX","OBJECT_TAG_CHANNEL_WITHRAW_TX","OBJECT_TAG_CHANNEL_CLOSE_MUTUAL_TX","OBJECT_TAG_CHANNEL_CLOSE_SOLO_TX","OBJECT_TAG_CHANNEL_SLASH_TX","OBJECT_TAG_CHANNEL_SETTLE_TX","OBJECT_TAG_CHANNEL_FORCE_PROGRESS_TX","OBJECT_TAG_CHANNEL_OFFCHAIN_TX","OBJECT_TAG_CHANNEL","OBJECT_TAG_CHANNEL_SNAPSHOT_SOLO_TX","OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_TRANSFER_TX","OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_DEPOSIT_TX","OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_WITHDRAWAL_TX","OBJECT_TAG_CHANNEL_OFFCHAIN_CREATE_CONTRACT_TX","OBJECT_TAG_CHANNEL_OFFCHAIN_CALL_CONTRACT_TX","OBJECT_TAG_CHANNEL_RECONNECT_TX","OBJECT_TAG_PROOF_OF_INCLUSION","OBJECT_TAG_STATE_TREES","OBJECT_TAG_MERKLE_PATRICIA_TREE","OBJECT_TAG_MERKLE_PATRICIA_TREE_VALUE","OBJECT_TAG_CONTRACTS_TREE","OBJECT_TAG_CONTRACT_CALLS_TREE","OBJECT_TAG_CHANNELS_TREE","OBJECT_TAG_NAMESERVICE_TREE","OBJECT_TAG_ORACLES_TREE","OBJECT_TAG_ACCOUNTS_TREE","OBJECT_TAG_GA_ATTACH","OBJECT_TAG_GA_META","OBJECT_TAG_PAYING_FOR","OBJECT_TAG_SOPHIA_BYTE_CODE","TX_FIELD","name","prefix","TX_SCHEMA_FIELD","schema","objectId","revertObject","obj","Object","entries","reduce","acc","key","v","TX_TYPE","account","signed","spend","nameClaim","namePreClaim","nameUpdate","nameRevoke","nameTransfer","contract","contractCreate","contractCall","contractCallResult","oracleRegister","oracleExtend","oracleQuery","oracleResponse","channelCreate","channelCloseMutual","channelCloseSolo","channelSlash","channelDeposit","channelWithdraw","channelSettle","channelOffChain","channelForceProgress","channel","channelSnapshotSolo","channelOffChainUpdateTransfer","channelOffChainUpdateDeposit","channelOffChainUpdateWithdrawal","channelOffChainCreateContract","channelOffChainCallContract","channelReconnect","proofOfInclusion","stateTrees","merklePatriciaTree","merklePatriciaTreeValue","contractsTree","contractCallsTree","channelsTree","nameserviceTree","oraclesTree","accountsTree","gaAttach","gaMeta","payingFor","sophiaByteCode","VM_VERSIONS","NO_VM","SOPHIA","SOPHIA_IMPROVEMENTS_MINERVA","SOPHIA_IMPROVEMENTS_FORTUNA","FATE","SOPHIA_IMPROVEMENTS_LIMA","FATE_2","ABI_VERSIONS","NO_ABI","PROTOCOL_VERSIONS","IRIS","PROTOCOL_VM_ABI","vmVersion","abiVersion","OBJECT_ID_TX_TYPE","FIELD_TYPES","int","id","ids","string","binary","rlpBinary","rlpBinaries","rawBinary","bool","hex","signatures","pointers","offChainUpdates","callStack","mptrees","callReturnType","ctVersion","sophiaCodeTypeInfo","payload","any","stateTree","BASE_GAS","GAS_PER_BYTE","DEFAULT_FEE","KEY_BLOCK_INTERVAL","TX_FEE_BASE_GAS","txType","factor","TX_FEE_OTHER_GAS","txSize","relativeTtl","innerTxSize","plus","Math","ceil","floor","minus","ID_TAG","commitment","oracle","PREFIX_ID_TAG","nm","cm","ID_TAG_PREFIX","BASE_TX","CONTRACT_BYTE_CODE_LIMA","ACCOUNT_TX_2","SPEND_TX","SIGNED_TX","NAME_PRE_CLAIM_TX","NAME_CLAIM_TX_2","NAME_UPDATE_TX","NAME_TRANSFER_TX","NAME_REVOKE_TX","CONTRACT_TX","GA_ATTACH_TX","GA_META_TX_2","PAYING_FOR_TX","CONTRACT_CREATE_TX","CONTRACT_CALL_TX","CONTRACT_CALL_RESULT_TX","ORACLE_REGISTER_TX","ORACLE_EXTEND_TX","ORACLE_QUERY_TX","ORACLE_RESPOND_TX","CHANNEL_CREATE_TX_2","CHANNEL_DEPOSIT_TX","CHANNEL_WITHDRAW_TX","CHANNEL_CLOSE_MUTUAL_TX","CHANNEL_CLOSE_SOLO_TX","CHANNEL_SLASH_TX","CHANNEL_SETTLE_TX","CHANNEL_FORCE_PROGRESS_TX","CHANNEL_OFFCHAIN_TX_2","CHANNEL_TX_3","CHANNEL_SNAPSHOT_SOLO_TX","CHANNEL_OFFCHAIN_CREATE_CONTRACT_TX","CHANNEL_OFFCHAIN_CALL_CONTRACT_TX","CHANNEL_RECONNECT_TX","CHANNEL_OFFCHAIN_UPDATE_TRANSFER_TX","CHANNEL_OFFCHAIN_UPDATE_DEPOSIT_TX","CHANNEL_OFFCHAIN_UPDATE_WITHDRAWAL_TX","PROOF_OF_INCLUSION_TX","STATE_TREES_TX","MERKLE_PATRICIA_TREE_TX","MERKLE_PATRICIA_TREE_VALUE_TX","CONTRACTS_TREE_TX","CONTRACT_CALLS_TREE_TX","CHANNELS_TREE_TX","NAMESERVICE_TREE_TX","ORACLES_TREE_TX","ACCOUNTS_TREE_TX","TX_SERIALIZATION_SCHEMA","TX_DESERIALIZATION_SCHEMA"],"mappings":"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","sourcesContent":["/**\n * Transaction Schema for TxBuilder\n * @module @aeternity/aepp-sdk/es/tx/builder/schema\n * @export TxSchema\n * @example import { SCHEMA } from '@aeternity/aepp-sdk'\n */\n// # RLP version number\n// # https://github.com/aeternity/protocol/blob/master/serializations.md#binary-serialization\n\nimport BigNumber from 'bignumber.js'\nimport { Name, NameId, NameFee, Deposit } from './field-types'\n\nexport const VSN = 1\nexport const VSN_2 = 2\n\n// # TRANSACTION DEFAULT TTL\nexport const TX_TTL = 0\n// # ORACLE\nexport const QUERY_FEE = 30000\nexport const ORACLE_TTL = { type: 'delta', value: 500 }\nexport const QUERY_TTL = { type: 'delta', value: 10 }\nexport const RESPONSE_TTL = { type: 'delta', value: 10 }\n// # CONTRACT\nexport const AMOUNT = 0\nexport const GAS_MAX = 1600000 - 21000\nexport const MIN_GAS_PRICE = 1e9\nexport const MAX_AUTH_FUN_GAS = 50000\nexport const DRY_RUN_ACCOUNT = { pub: 'ak_11111111111111111111111111111111273Yts', amount: '100000000000000000000000000000000000' }\n// # AENS\nexport const NAME_TTL = 180000\n// # max number of block into the future that the name is going to be available\n// # https://github.com/aeternity/protocol/blob/epoch-v0.22.0/AENS.md#update\n// # https://github.com/aeternity/protocol/blob/44a93d3aab957ca820183c3520b9daf6b0fedff4/AENS.md#aens-entry\nexport const NAME_MAX_TTL = 36000\nexport const NAME_MAX_CLIENT_TTL = 84600\nexport const CLIENT_TTL = NAME_MAX_CLIENT_TTL\n// # see https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L67\nexport const NAME_FEE_MULTIPLIER = 1e14 // 100000000000000\nexport const NAME_FEE_BID_INCREMENT = 0.05 // # the increment is in percentage\n// # see https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L272\nexport const NAME_BID_TIMEOUT_BLOCKS = 480 // # ~1 day\n// # this is the max length for a domain that requires a base fee to be paid\nexport const NAME_MAX_LENGTH_FEE = 31\nexport const NAME_BID_MAX_LENGTH = 12 // # this is the max length for a domain to be part of a bid\nexport const POINTER_KEY_BY_PREFIX = {\n ak: 'account_pubkey',\n ok: 'oracle_pubkey',\n ct: 'contract_pubkey',\n ch: 'channel'\n}\n// # https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L290\n// # https://github.com/aeternity/protocol/blob/master/AENS.md#protocol-fees-and-protection-times\n// # bid ranges:\nexport const NAME_BID_RANGES = {\n 31: BigNumber(3).times(NAME_FEE_MULTIPLIER),\n 30: BigNumber(5).times(NAME_FEE_MULTIPLIER),\n 29: BigNumber(8).times(NAME_FEE_MULTIPLIER),\n 28: BigNumber(13).times(NAME_FEE_MULTIPLIER),\n 27: BigNumber(21).times(NAME_FEE_MULTIPLIER),\n 26: BigNumber(34).times(NAME_FEE_MULTIPLIER),\n 25: BigNumber(55).times(NAME_FEE_MULTIPLIER),\n 24: BigNumber(89).times(NAME_FEE_MULTIPLIER),\n 23: BigNumber(144).times(NAME_FEE_MULTIPLIER),\n 22: BigNumber(233).times(NAME_FEE_MULTIPLIER),\n 21: BigNumber(377).times(NAME_FEE_MULTIPLIER),\n 20: BigNumber(610).times(NAME_FEE_MULTIPLIER),\n 19: BigNumber(987).times(NAME_FEE_MULTIPLIER),\n 18: BigNumber(1597).times(NAME_FEE_MULTIPLIER),\n 17: BigNumber(2584).times(NAME_FEE_MULTIPLIER),\n 16: BigNumber(4181).times(NAME_FEE_MULTIPLIER),\n 15: BigNumber(6765).times(NAME_FEE_MULTIPLIER),\n 14: BigNumber(10946).times(NAME_FEE_MULTIPLIER),\n 13: BigNumber(17711).times(NAME_FEE_MULTIPLIER),\n 12: BigNumber(28657).times(NAME_FEE_MULTIPLIER),\n 11: BigNumber(46368).times(NAME_FEE_MULTIPLIER),\n 10: BigNumber(75025).times(NAME_FEE_MULTIPLIER),\n 9: BigNumber(121393).times(NAME_FEE_MULTIPLIER),\n 8: BigNumber(196418).times(NAME_FEE_MULTIPLIER),\n 7: BigNumber(317811).times(NAME_FEE_MULTIPLIER),\n 6: BigNumber(514229).times(NAME_FEE_MULTIPLIER),\n 5: BigNumber(832040).times(NAME_FEE_MULTIPLIER),\n 4: BigNumber(1346269).times(NAME_FEE_MULTIPLIER),\n 3: BigNumber(2178309).times(NAME_FEE_MULTIPLIER),\n 2: BigNumber(3524578).times(NAME_FEE_MULTIPLIER),\n 1: BigNumber(5702887).times(NAME_FEE_MULTIPLIER)\n}\n\n// # ref: https://github.com/aeternity/aeternity/blob/72e440b8731422e335f879a31ecbbee7ac23a1cf/apps/aecore/src/aec_governance.erl#L273\n// # name bid timeouts\nexport const NAME_BID_TIMEOUTS = {\n 13: BigNumber(0),\n 12: BigNumber(NAME_BID_TIMEOUT_BLOCKS), // # 480 blocks\n 8: BigNumber(31).times(NAME_BID_TIMEOUT_BLOCKS), // # 14880 blocks\n 4: BigNumber(62).times(NAME_BID_TIMEOUT_BLOCKS) // # 29760 blocks\n}\n\n// # Tag constant for ids (type uint8)\n// # see https://github.com/aeternity/protocol/blob/master/serializations.md#the-id-type\n// # <<Tag:1/unsigned-integer-unit:8, Hash:32/binary-unit:8>>\nconst ID_TAG_ACCOUNT = 1\nconst ID_TAG_NAME = 2\nconst ID_TAG_COMMITMENT = 3\nconst ID_TAG_ORACLE = 4\nconst ID_TAG_CONTRACT = 5\nconst ID_TAG_CHANNEL = 6\n\n// # OBJECT tags\n// # see https://github.com/aeternity/protocol/blob/master/serializations.md#binary-serialization\nconst OBJECT_TAG_ACCOUNT = 10\nexport const OBJECT_TAG_SIGNED_TRANSACTION = 11\nconst OBJECT_TAG_SPEND_TRANSACTION = 12\nconst OBJECT_TAG_ORACLE_REGISTER_TRANSACTION = 22\nconst OBJECT_TAG_ORACLE_QUERY_TRANSACTION = 23\nconst OBJECT_TAG_ORACLE_RESPONSE_TRANSACTION = 24\nconst OBJECT_TAG_ORACLE_EXTEND_TRANSACTION = 25\nconst OBJECT_TAG_NAME_SERVICE_CLAIM_TRANSACTION = 32\nconst OBJECT_TAG_NAME_SERVICE_PRECLAIM_TRANSACTION = 33\nconst OBJECT_TAG_NAME_SERVICE_UPDATE_TRANSACTION = 34\nconst OBJECT_TAG_NAME_SERVICE_REVOKE_TRANSACTION = 35\nconst OBJECT_TAG_NAME_SERVICE_TRANSFER_TRANSACTION = 36\nconst OBJECT_TAG_CONTRACT = 40\nconst OBJECT_TAG_CONTRACT_CALL = 41\nconst OBJECT_TAG_CONTRACT_CREATE_TRANSACTION = 42\nconst OBJECT_TAG_CONTRACT_CALL_TRANSACTION = 43\nconst OBJECT_TAG_CHANNEL_CREATE_TX = 50\nconst OBJECT_TAG_CHANNEL_DEPOSIT_TX = 51\nconst OBJECT_TAG_CHANNEL_WITHRAW_TX = 52\nconst OBJECT_TAG_CHANNEL_CLOSE_MUTUAL_TX = 53\nconst OBJECT_TAG_CHANNEL_CLOSE_SOLO_TX = 54\nconst OBJECT_TAG_CHANNEL_SLASH_TX = 55\nconst OBJECT_TAG_CHANNEL_SETTLE_TX = 56\nconst OBJECT_TAG_CHANNEL_FORCE_PROGRESS_TX = 521\nconst OBJECT_TAG_CHANNEL_OFFCHAIN_TX = 57\nconst OBJECT_TAG_CHANNEL = 58\nconst OBJECT_TAG_CHANNEL_SNAPSHOT_SOLO_TX = 59\nconst OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_TRANSFER_TX = 570\nconst OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_DEPOSIT_TX = 571\nconst OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_WITHDRAWAL_TX = 572\nconst OBJECT_TAG_CHANNEL_OFFCHAIN_CREATE_CONTRACT_TX = 573\nconst OBJECT_TAG_CHANNEL_OFFCHAIN_CALL_CONTRACT_TX = 574\nconst OBJECT_TAG_CHANNEL_RECONNECT_TX = 575\nconst OBJECT_TAG_PROOF_OF_INCLUSION = 60\nconst OBJECT_TAG_STATE_TREES = 62\nconst OBJECT_TAG_MERKLE_PATRICIA_TREE = 63\nconst OBJECT_TAG_MERKLE_PATRICIA_TREE_VALUE = 64\nconst OBJECT_TAG_CONTRACTS_TREE = 621\nconst OBJECT_TAG_CONTRACT_CALLS_TREE = 622\nconst OBJECT_TAG_CHANNELS_TREE = 623\nconst OBJECT_TAG_NAMESERVICE_TREE = 624\nconst OBJECT_TAG_ORACLES_TREE = 625\nconst OBJECT_TAG_ACCOUNTS_TREE = 626\nconst OBJECT_TAG_GA_ATTACH = 80\nconst OBJECT_TAG_GA_META = 81\nconst OBJECT_TAG_PAYING_FOR = 82\nconst OBJECT_TAG_SOPHIA_BYTE_CODE = 70\n\nconst TX_FIELD = (name, type, prefix) => [name, type, prefix]\nconst TX_SCHEMA_FIELD = (schema, objectId) => [schema, objectId]\n\nconst revertObject = (obj) => Object.entries(obj)\n .reduce((acc, [key, v]) => (acc[v] = key) && acc, {})\n\n/**\n * @constant\n * @description Object with transaction types\n * @alias module:@aeternity/aepp-sdk/es/tx/builder/schema\n * @property {String} signed\n * @property {String} spend\n * @property {String} nameClaim\n * @property {String} namePreClaim\n * @property {String} nameUpdate\n * @property {String} nameRevoke\n * @property {String} nameTransfer\n * @property {String} contractCreate\n * @property {String} contractCall\n * @property {String} oracleRegister\n * @property {String} oracleExtend\n * @property {String} oracleQuery\n * @property {String} oracleResponse\n */\nexport const TX_TYPE = {\n account: 'account',\n signed: 'signedTx',\n spend: 'spendTx',\n // AENS\n nameClaim: 'nameClaimTx',\n namePreClaim: 'namePreClaimTx',\n nameUpdate: 'nameUpdateTx',\n nameRevoke: 'nameRevokeTx',\n nameTransfer: 'nameTransfer',\n // CONTRACT\n contract: 'contract',\n contractCreate: 'contractCreateTx',\n contractCall: 'contractCallTx',\n contractCallResult: 'contractCallResult',\n // ORACLE\n oracleRegister: 'oracleRegister',\n oracleExtend: 'oracleExtend',\n oracleQuery: 'oracleQuery',\n oracleResponse: 'oracleResponse',\n // STATE CHANNEL\n channelCreate: 'channelCreate',\n channelCloseMutual: 'channelCloseMutual',\n channelCloseSolo: 'channelCloseSolo',\n channelSlash: 'channelSlash',\n channelDeposit: 'channelDeposit',\n channelWithdraw: 'channelWithdraw',\n channelSettle: 'channelSettle',\n channelOffChain: 'channelOffChain',\n channelForceProgress: 'channelForceProgress',\n channel: 'channel',\n channelSnapshotSolo: 'channelSnapshotSolo',\n channelOffChainUpdateTransfer: 'channelOffChainUpdateTransfer',\n channelOffChainUpdateDeposit: 'channelOffChainUpdateDeposit',\n channelOffChainUpdateWithdrawal: 'channelOffChainUpdateWithdrawal',\n channelOffChainCreateContract: 'channelOffChainCreateContract',\n channelOffChainCallContract: 'channelOffChainCallContract',\n channelReconnect: 'channelReconnect',\n proofOfInclusion: 'proofOfInclusion',\n stateTrees: 'stateTrees',\n merklePatriciaTree: 'merklePatriciaTree',\n merklePatriciaTreeValue: 'merklePatriciaTreeValue',\n contractsTree: 'contractsTree',\n contractCallsTree: 'contractCallsTree',\n channelsTree: 'channelsTree',\n nameserviceTree: 'nameserviceTree',\n oraclesTree: 'oraclesTree',\n accountsTree: 'accountsTree',\n gaAttach: 'gaAttach',\n gaMeta: 'gaMeta',\n payingFor: 'payingFor',\n sophiaByteCode: 'sophiaByteCode'\n}\n\n// # see https://github.com/aeternity/protocol/blob/minerva/contracts/contract_vms.md#virtual-machines-on-the-%C3%A6ternity-blockchain\nexport const VM_VERSIONS = {\n NO_VM: 0,\n SOPHIA: 1,\n SOPHIA_IMPROVEMENTS_MINERVA: 3,\n SOPHIA_IMPROVEMENTS_FORTUNA: 4,\n FATE: 5,\n SOPHIA_IMPROVEMENTS_LIMA: 6,\n FATE_2: 7\n}\n// # see https://github.com/aeternity/protocol/blob/minerva/contracts/contract_vms.md#virtual-machines-on-the-%C3%A6ternity-blockchain\nexport const ABI_VERSIONS = {\n NO_ABI: 0,\n SOPHIA: 1,\n FATE: 3\n}\n\nexport const PROTOCOL_VERSIONS = {\n IRIS: 5\n}\n\n// First abi/vm by default\nexport const PROTOCOL_VM_ABI = {\n [PROTOCOL_VERSIONS.IRIS]: {\n [TX_TYPE.contractCreate]: {\n vmVersion: [VM_VERSIONS.FATE_2], abiVersion: [ABI_VERSIONS.FATE]\n },\n // TODO: Ensure that AEVM is still available here\n [TX_TYPE.contractCall]: {\n vmVersion: [\n VM_VERSIONS.FATE_2,\n VM_VERSIONS.FATE,\n VM_VERSIONS.SOPHIA_IMPROVEMENTS_LIMA,\n VM_VERSIONS.SOPHIA_IMPROVEMENTS_FORTUNA,\n VM_VERSIONS.SOPHIA,\n VM_VERSIONS.SOPHIA_IMPROVEMENTS_MINERVA\n ],\n abiVersion: [ABI_VERSIONS.FATE, ABI_VERSIONS.SOPHIA]\n },\n [TX_TYPE.oracleRegister]: {\n vmVersion: [], abiVersion: [ABI_VERSIONS.NO_ABI, ABI_VERSIONS.SOPHIA]\n }\n }\n}\n\nexport const OBJECT_ID_TX_TYPE = {\n [OBJECT_TAG_ACCOUNT]: TX_TYPE.account,\n [OBJECT_TAG_SIGNED_TRANSACTION]: TX_TYPE.signed,\n [OBJECT_TAG_SPEND_TRANSACTION]: TX_TYPE.spend,\n // AENS\n [OBJECT_TAG_NAME_SERVICE_CLAIM_TRANSACTION]: TX_TYPE.nameClaim,\n [OBJECT_TAG_NAME_SERVICE_PRECLAIM_TRANSACTION]: TX_TYPE.namePreClaim,\n [OBJECT_TAG_NAME_SERVICE_UPDATE_TRANSACTION]: TX_TYPE.nameUpdate,\n [OBJECT_TAG_NAME_SERVICE_REVOKE_TRANSACTION]: TX_TYPE.nameRevoke,\n [OBJECT_TAG_NAME_SERVICE_TRANSFER_TRANSACTION]: TX_TYPE.nameTransfer,\n // CONTRACT\n [OBJECT_TAG_CONTRACT]: TX_TYPE.contract,\n [OBJECT_TAG_CONTRACT_CREATE_TRANSACTION]: TX_TYPE.contractCreate,\n [OBJECT_TAG_CONTRACT_CALL_TRANSACTION]: TX_TYPE.contractCall,\n [OBJECT_TAG_CONTRACT_CALL]: TX_TYPE.contractCallResult,\n // ORACLE\n [OBJECT_TAG_ORACLE_REGISTER_TRANSACTION]: TX_TYPE.oracleRegister,\n [OBJECT_TAG_ORACLE_EXTEND_TRANSACTION]: TX_TYPE.oracleExtend,\n [OBJECT_TAG_ORACLE_QUERY_TRANSACTION]: TX_TYPE.oracleQuery,\n [OBJECT_TAG_ORACLE_RESPONSE_TRANSACTION]: TX_TYPE.oracleResponse,\n // STATE CHANNEL\n [OBJECT_TAG_CHANNEL_CREATE_TX]: TX_TYPE.channelCreate,\n [OBJECT_TAG_CHANNEL_CLOSE_MUTUAL_TX]: TX_TYPE.channelCloseMutual,\n [OBJECT_TAG_CHANNEL_CLOSE_SOLO_TX]: TX_TYPE.channelCloseSolo,\n [OBJECT_TAG_CHANNEL_SLASH_TX]: TX_TYPE.channelSlash,\n [OBJECT_TAG_CHANNEL_FORCE_PROGRESS_TX]: TX_TYPE.channelForceProgress,\n [OBJECT_TAG_CHANNEL_DEPOSIT_TX]: TX_TYPE.channelDeposit,\n [OBJECT_TAG_CHANNEL_WITHRAW_TX]: TX_TYPE.channelWithdraw,\n [OBJECT_TAG_CHANNEL_SETTLE_TX]: TX_TYPE.channelSettle,\n [OBJECT_TAG_CHANNEL_OFFCHAIN_TX]: TX_TYPE.channelOffChain,\n [OBJECT_TAG_CHANNEL]: TX_TYPE.channel,\n [OBJECT_TAG_CHANNEL_SNAPSHOT_SOLO_TX]: TX_TYPE.channelSnapshotSolo,\n [OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_TRANSFER_TX]: TX_TYPE.channelOffChainUpdateTransfer,\n [OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_DEPOSIT_TX]: TX_TYPE.channelOffChainUpdateDeposit,\n [OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_WITHDRAWAL_TX]: TX_TYPE.channelOffChainUpdateWithdrawal,\n [OBJECT_TAG_CHANNEL_OFFCHAIN_CREATE_CONTRACT_TX]: TX_TYPE.channelOffChainCreateContract,\n [OBJECT_TAG_CHANNEL_OFFCHAIN_CALL_CONTRACT_TX]: TX_TYPE.channelOffChainCallContract,\n [OBJECT_TAG_CHANNEL_RECONNECT_TX]: TX_TYPE.channelReconnect,\n [OBJECT_TAG_PROOF_OF_INCLUSION]: TX_TYPE.proofOfInclusion,\n [OBJECT_TAG_STATE_TREES]: TX_TYPE.stateTrees,\n [OBJECT_TAG_MERKLE_PATRICIA_TREE]: TX_TYPE.merklePatriciaTree,\n [OBJECT_TAG_MERKLE_PATRICIA_TREE_VALUE]: TX_TYPE.merklePatriciaTreeValue,\n [OBJECT_TAG_CONTRACTS_TREE]: TX_TYPE.contractsTree,\n [OBJECT_TAG_CONTRACT_CALLS_TREE]: TX_TYPE.contractCallsTree,\n [OBJECT_TAG_CHANNELS_TREE]: TX_TYPE.channelsTree,\n [OBJECT_TAG_NAMESERVICE_TREE]: TX_TYPE.nameserviceTree,\n [OBJECT_TAG_ORACLES_TREE]: TX_TYPE.oraclesTree,\n [OBJECT_TAG_ACCOUNTS_TREE]: TX_TYPE.accountsTree,\n [OBJECT_TAG_GA_ATTACH]: TX_TYPE.gaAttach,\n [OBJECT_TAG_GA_META]: TX_TYPE.gaMeta,\n [OBJECT_TAG_PAYING_FOR]: TX_TYPE.payingFor,\n [OBJECT_TAG_SOPHIA_BYTE_CODE]: TX_TYPE.sophiaByteCode\n}\n\nexport const FIELD_TYPES = {\n int: 'int',\n amount: 'amount',\n id: 'id',\n ids: 'ids',\n string: 'string',\n binary: 'binary',\n rlpBinary: 'rlpBinary',\n rlpBinaries: 'rlpBinaries',\n rawBinary: 'rawBinary',\n bool: 'bool',\n hex: 'hex',\n signatures: 'signatures',\n pointers: 'pointers',\n offChainUpdates: 'offChainUpdates',\n callStack: 'callStack',\n proofOfInclusion: 'proofOfInclusion',\n mptrees: 'mptrees',\n callReturnType: 'callReturnType',\n ctVersion: 'ctVersion',\n sophiaCodeTypeInfo: 'sophiaCodeTypeInfo',\n payload: 'payload',\n any: 'any',\n stateTree: 'stateTree'\n}\n\n// FEE CALCULATION\nexport const BASE_GAS = 15000\nexport const GAS_PER_BYTE = 20\nexport const DEFAULT_FEE = 20000\nexport const KEY_BLOCK_INTERVAL = 3\n\n// MAP WITH FEE CALCULATION https://github.com/aeternity/protocol/blob/master/consensus/consensus.md#gas\nexport const TX_FEE_BASE_GAS = (txType) => {\n const factor = ({\n [TX_TYPE.channelForceProgress]: 30,\n [TX_TYPE.channelOffChain]: 0,\n [TX_TYPE.channelOffChainCallContract]: 0,\n [TX_TYPE.channelOffChainCreateContract]: 0,\n [TX_TYPE.channelOffChainUpdateDeposit]: 0,\n [TX_TYPE.channelOffChainUpdateWithdrawal]: 0,\n [TX_TYPE.channelOffChainUpdateTransfer]: 0,\n [TX_TYPE.contractCreate]: 5,\n [TX_TYPE.contractCall]: 12,\n [TX_TYPE.gaAttach]: 5,\n [TX_TYPE.gaMeta]: 5,\n [TX_TYPE.payingFor]: 1 / 5\n })[txType] || 1\n return new BigNumber(factor * BASE_GAS)\n}\n\nexport const TX_FEE_OTHER_GAS = (txType, txSize, { relativeTtl, innerTxSize }) => {\n switch (txType) {\n case TX_TYPE.oracleRegister:\n case TX_TYPE.oracleExtend:\n case TX_TYPE.oracleQuery:\n case TX_TYPE.oracleResponse:\n return new BigNumber(txSize)\n .times(GAS_PER_BYTE)\n .plus(\n Math.ceil(32000 * relativeTtl / Math.floor(60 * 24 * 365 / KEY_BLOCK_INTERVAL))\n )\n case TX_TYPE.gaMeta:\n case TX_TYPE.payingFor:\n return new BigNumber(txSize).minus(innerTxSize).times(GAS_PER_BYTE)\n default:\n return new BigNumber(txSize).times(GAS_PER_BYTE)\n }\n}\n\nexport const ID_TAG = {\n account: ID_TAG_ACCOUNT,\n name: ID_TAG_NAME,\n commitment: ID_TAG_COMMITMENT,\n oracle: ID_TAG_ORACLE,\n contract: ID_TAG_CONTRACT,\n channel: ID_TAG_CHANNEL\n}\nexport const PREFIX_ID_TAG = {\n ak: ID_TAG.account,\n nm: ID_TAG.name,\n cm: ID_TAG.commitment,\n ok: ID_TAG.oracle,\n ct: ID_TAG.contract,\n ch: ID_TAG.channel\n}\nexport const ID_TAG_PREFIX = revertObject(PREFIX_ID_TAG)\n\nconst BASE_TX = [\n TX_FIELD('tag', FIELD_TYPES.int),\n TX_FIELD('VSN', FIELD_TYPES.int)\n]\n\nexport const CONTRACT_BYTE_CODE_LIMA = [\n ...BASE_TX,\n TX_FIELD('sourceCodeHash', FIELD_TYPES.rawBinary),\n TX_FIELD('typeInfo', FIELD_TYPES.sophiaCodeTypeInfo),\n TX_FIELD('byteCode', FIELD_TYPES.rawBinary),\n TX_FIELD('compilerVersion', FIELD_TYPES.string),\n TX_FIELD('payable', FIELD_TYPES.bool)\n]\n\nconst ACCOUNT_TX_2 = [\n ...BASE_TX,\n TX_FIELD('flags', FIELD_TYPES.int),\n TX_FIELD('nonce', FIELD_TYPES.int),\n TX_FIELD('balance', FIELD_TYPES.int),\n TX_FIELD('gaContract', FIELD_TYPES.id, ['ct', 'nm']),\n TX_FIELD('gaAuthFun', FIELD_TYPES.binary, 'cb')\n]\n\nconst SPEND_TX = [\n ...BASE_TX,\n TX_FIELD('senderId', FIELD_TYPES.id, 'ak'),\n TX_FIELD('recipientId', FIELD_TYPES.id, ['ak', 'nm']),\n TX_FIELD('amount', FIELD_TYPES.amount),\n TX_FIELD('fee', FIELD_TYPES.int),\n TX_FIELD('ttl', FIELD_TYPES.int),\n TX_FIELD('nonce', FIELD_TYPES.int),\n TX_FIELD('payload', FIELD_TYPES.payload)\n]\n\nconst SIGNED_TX = [\n ...BASE_TX,\n TX_FIELD('signatures', FIELD_TYPES.signatures),\n TX_FIELD('encodedTx', FIELD_TYPES.rlpBinary)\n]\n\nconst NAME_PRE_CLAIM_TX = [\n ...BASE_TX,\n TX_FIELD('accountId', FIELD_TYPES.id, 'ak'),\n TX_FIELD('nonce', FIELD_TYPES.int),\n TX_FIELD('commitmentId', FIELD_TYPES.id, 'cm'),\n TX_FIELD('fee', FIELD_TYPES.int),\n TX_FIELD('ttl', FIELD_TYPES.int)\n]\n\nconst NAME_CLAIM_TX_2 = [\n ...BASE_TX,\n TX_FIELD('accountId', FIELD_TYPES.id, 'ak'),\n TX_FIELD('nonce', FIELD_TYPES.int),\n TX_FIELD('name', Name),\n TX_FIELD('nameSalt', FIELD_TYPES.int),\n TX_FIELD('nameFee', NameFee),\n TX_FIELD('fee', FIELD_TYPES.int),\n TX_FIELD('ttl', FIELD_TYPES.int)\n]\n\nconst NAME_UPDATE_TX = [\n ...BASE_TX,\n TX_FIELD('accountId', FIELD_TYPES.id, 'ak'),\n TX_FIELD('nonce', FIELD_TYPES.int),\n TX_FIELD('nameId', NameId),\n TX_FIELD('nameTtl', FIELD_TYPES.int),\n TX_FIELD('pointers', FIELD_TYPES.pointers),\n TX_FIELD('clientTtl', FIELD_TYPES.int),\n TX_FIELD('fee', FIELD_TYPES.int),\n TX_FIELD('ttl', FIELD_TYPES.int)\n]\n\nconst NAME_TRANSFER_TX = [\n ...BASE_TX,\n TX_FIELD('accountId', FIELD_TYPES.id, 'ak'),\n TX_FIELD('nonce', FIELD_TYPES.int),\n TX_FIELD('nameId', NameId),\n TX_FIELD('recipientId', FIELD_TYPES.id, ['ak', 'nm']),\n TX_FIELD('fee', FIELD_TYPES.int),\n TX_FIELD('ttl', FIELD_TYPES.int)\n]\n\nconst NAME_REVOKE_TX = [\n ...BASE_TX,\n TX_FIELD('accountId', FIELD_TYPES.id, 'ak'),\n TX_FIELD('nonce', FIELD_TYPES.int),\n TX_FIELD('nameId', NameId),\n TX_FIELD('fee', FIELD_TYPES.int),\n TX_FIELD('ttl', FIELD_TYPES.int)\n]\n\nconst CONTRACT_TX = [\n ...BASE_TX,\n TX_FIELD('owner', FIELD_TYPES.id, 'ak'),\n TX_FIELD('ctVersion', FIELD_TYPES.int),\n TX_FIELD('code', FIELD_TYPES.binary, 'cb'),\n TX_FIELD('log', FIELD_TYPES.binary, 'cb'),\n TX_FIELD('active', FIELD_TYPES.bool),\n TX_FIELD('referers', FIELD_TYPES.ids, 'ak'),\n TX_FIELD('deposit', Deposit)\n]\n\nconst GA_ATTACH_TX = [\n ...BASE_TX,\n TX_FIELD('ownerId', FIELD_TYPES.id, 'ak'),\n TX_FIELD('nonce', FIELD_TYPES.int),\n TX_FIELD('code', FIELD_TYPES.binary, 'cb'),\n TX_FIELD('authFun', FIELD_TYPES.rawBinary),\n TX_FIELD('ctVersion', FIELD_TYPES.ctVersion),\n TX_FIELD('fee', FIELD_TYPES.int),\n TX_FIELD('ttl', FIELD_TYPES.int),\n TX_FIELD('gas', FIELD_TYPES.int),\n TX_FIELD('gasPrice', FIELD_TYPES.int),\n TX_FIELD('callData', FIELD_TYPES.binary, 'cb')\n]\n\nconst GA_META_TX_2 = [\n ...BASE_TX,\n TX_FIELD('gaId', FIELD_TYPES.id, 'ak'),\n TX_FIELD('authData', FIELD_TYPES.binary, 'cb'),\n TX_FIELD('abiVersion', FIELD_TYPES.int),\n TX_FIELD('fee', FIELD_TYPES.int),\n TX_FIELD('gas', FIELD_TYPES.int),\n TX_FIELD('gasPrice', FIELD_TYPES.int),\n TX_FIELD('tx', FIELD_TYPES.rlpBinary)\n]\n\nconst PAYING_FOR_TX = [\n ...BASE_TX,\n TX_FIELD('payerId', FIELD_TYPES.id, 'ak'),\n TX_FIELD('nonce', FIELD_TYPES.int),\n TX_FIELD('fee', FIELD_TYPES.int),\n TX_FIELD('tx', FIELD_TYPES.rlpBinary)\n]\n\nconst CONTRACT_CREATE_TX = [\n ...BASE_TX,\n TX_FIELD('ownerId', FIELD_TYPES.id, 'ak'),\n TX_FIELD('nonce', FIELD_TYPES.int),\n TX_FIELD('code', FIELD_TYPES.binary, 'cb'),\n TX_FIELD('ctVersion', FIELD_TYPES.ctVersion),\n TX_FIELD('fee', FIELD_TYPES.int),\n TX_FIELD('ttl', FIELD_TYPES.int),\n TX_FIELD('deposit', Deposit),\n TX_FIELD('amount', FIELD_TYPES.amount),\n TX_FIELD('gas', FIELD_TYPES.int),\n TX_FIELD('gasPrice', FIELD_TYPES.int),\n TX_FIELD('callData', FIELD_TYPES.binary, 'cb')\n]\n\nconst CONTRACT_CALL_TX = [\n ...BASE_TX,\n TX_FIELD('callerId', FIELD_TYPES.id, 'ak'),\n TX_FIELD('nonce', FIELD_TYPES.int),\n TX_FIELD('contractId', FIELD_TYPES.id, ['ct', 'nm']),\n TX_FIELD('abiVersion', FIELD_TYPES.int),\n TX_FIELD('fee', FIELD_TYPES.int),\n TX_FIELD('ttl', FIELD_TYPES.int),\n TX_FIELD('amount', FIELD_TYPES.amount),\n TX_FIELD('gas', FIELD_TYPES.int),\n TX_FIELD('gasPrice', FIELD_TYPES.int),\n TX_FIELD('callData', FIELD_TYPES.binary, 'cb')\n]\n\nconst CONTRACT_CALL_RESULT_TX = [\n ...BASE_TX,\n TX_FIELD('callerId', FIELD_TYPES.id, 'ak'),\n TX_FIELD('callerNonce', FIELD_TYPES.int),\n TX_FIELD('height', FIELD_TYPES.int),\n TX_FIELD('contractId', FIELD_TYPES.id, 'ct'),\n TX_FIELD('gasPrice', FIELD_TYPES.int),\n TX_FIELD('gasUsed', FIELD_TYPES.int),\n TX_FIELD('returnValue', FIELD_TYPES.binary, 'cb'),\n TX_FIELD('returnType', FIELD_TYPES.callReturnType),\n // TODO: add serialization for\n // <log> :: [ { <address> :: id, [ <topics> :: binary() ], <data> :: binary() } ]\n TX_FIELD('log', FIELD_TYPES.rawBinary)\n]\n\nconst ORACLE_REGISTER_TX = [\n ...BASE_TX,\n TX_FIELD('accountId', FIELD_TYPES.id, 'ak'),\n TX_FIELD('nonce', FIELD_TYPES.int),\n TX_FIELD('queryFormat', FIELD_TYPES.string),\n TX_FIELD('responseFormat', FIELD_TYPES.string),\n TX_FIELD('queryFee', FIELD_TYPES.amount),\n TX_FIELD('oracleTtlType', FIELD_TYPES.int),\n TX_FIELD('oracleTtlValue', FIELD_TYPES.int),\n TX_FIELD('fee', FIELD_TYPES.int),\n TX_FIELD('ttl', FIELD_TYPES.int),\n TX_FIELD('abiVersion', FIELD_TYPES.int)\n]\n\nconst ORACLE_EXTEND_TX = [\n ...BASE_TX,\n TX_FIELD('oracleId', FIELD_TYPES.id, ['ok', 'nm']),\n TX_FIELD('nonce', FIELD_TYPES.int),\n TX_FIELD('oracleTtlType', FIELD_TYPES.int),\n TX_FIELD('oracleTtlValue', FIELD_TYPES.int),\n TX_FIELD('fee', FIELD_TYPES.int),\n TX_FIELD('ttl', FIELD_TYPES.int)\n]\n\nconst ORACLE_QUERY_TX = [\n ...BASE_TX,\n TX_FIELD('senderId', FIELD_TYPES.id, 'ak'),\n TX_FIELD('nonce', FIELD_TYPES.int),\n TX_FIELD('oracleId', FIELD_TYPES.id, ['ok', 'nm']),\n TX_FIELD('query', FIELD_TYPES.string),\n TX_FIELD('queryFee', FIELD_TYPES.amount),\n TX_FIELD('queryTtlType', FIELD_TYPES.int),\n TX_FIELD('queryTtlValue', FIELD_TYPES.int),\n TX_FIELD('responseTtlType', FIELD_TYPES.int),\n TX_FIELD('responseTtlValue', FIELD_TYPES.int),\n TX_FIELD('fee', FIELD_TYPES.int),\n TX_FIELD('ttl', FIELD_TYPES.int)\n]\nconst ORACLE_RESPOND_TX = [\n ...BASE_TX,\n TX_FIELD('oracleId', FIELD_TYPES.id, 'ok'),\n TX_FIELD('nonce', FIELD_TYPES.int),\n TX_FIELD('queryId', FIELD_TYPES.binary, 'oq'),\n TX_FIELD('response', FIELD_TYPES.string),\n TX_FIELD('responseTtlType', FIELD_TYPES.int),\n TX_FIELD('responseTtlValue', FIELD_TYPES.int),\n TX_FIELD('fee', FIELD_TYPES.int),\n TX_FIELD('ttl', FIELD_TYPES.int)\n]\n\nconst CHANNEL_CREATE_TX_2 = [\n ...BASE_TX,\n TX_FIELD('initiator', FIELD_TYPES.id, 'ak'),\n TX_FIELD('initiatorAmount', FIELD_TYPES.int),\n TX_FIELD('responder', FIELD_TYPES.id, 'ak'),\n TX_FIELD('responderAmount', FIELD_TYPES.int),\n TX_FIELD('channelReserve', FIELD_TYPES.int),\n TX_FIELD('lockPeriod', FIELD_TYPES.int),\n TX_FIELD('ttl', FIELD_TYPES.int),\n TX_FIELD('fee', FIELD_TYPES.int),\n TX_FIELD('initiatorDelegateIds', FIELD_TYPES.string),\n TX_FIELD('responderDelegateIds', FIELD_TYPES.string),\n TX_FIELD('stateHash', FIELD_TYPES.binary, 'st'),\n TX_FIELD('nonce', FIELD_TYPES.int)\n]\n\nconst CHANNEL_DEPOSIT_TX = [\n ...BASE_TX,\n TX_FIELD('channelId', FIELD_TYPES.id, 'ch'),\n TX_FIELD('fromId', FIELD_TYPES.id, 'ak'),\n TX_FIELD('amount', FIELD_TYPES.int),\n TX_FIELD('ttl', FIELD_TYPES.int),\n TX_FIELD('fee', FIELD_TYPES.int),\n TX_FIELD('stateHash', FIELD_TYPES.binary, 'st'),\n TX_FIELD('round', FIELD_TYPES.int),\n TX_FIELD('nonce', FIELD_TYPES.int)\n]\n\nconst CHANNEL_WITHDRAW_TX = [\n ...BASE_TX,\n TX_FIELD('channelId', FIELD_TYPES.id, 'ch'),\n TX_FIELD('toId', FIELD_TYPES.id, 'ak'),\n TX_FIELD('amount', FIELD_TYPES.int),\n TX_FIELD('ttl', FIELD_TYPES.int),\n TX_FIELD('fee', FIELD_TYPES.int),\n TX_FIELD('stateHash', FIELD_TYPES.binary, 'st'),\n TX_FIELD('round', FIELD_TYPES.int),\n TX_FIELD('nonce', FIELD_TYPES.int)\n]\n\nconst CHANNEL_CLOSE_MUTUAL_TX = [\n ...BASE_TX,\n TX_FIELD('channelId', FIELD_TYPES.id, 'ch'),\n TX_FIELD('fromId', FIELD_TYPES.id, 'ak'),\n TX_FIELD('initiatorAmountFinal', FIELD_TYPES.int),\n TX_FIELD('responderAmountFinal', FIELD_TYPES.int),\n TX_FIELD('ttl', FIELD_TYPES.int),\n TX_FIELD('fee', FIELD_TYPES.int),\n TX_FIELD('nonce', FIELD_TYPES.int)\n]\n\nconst CHANNEL_CLOSE_SOLO_TX = [\n ...BASE_TX,\n TX_FIELD('channelId', FIELD_TYPES.id, 'ch'),\n TX_FIELD('fromId', FIELD_TYPES.id, 'ak'),\n TX_FIELD('payload', FIELD_TYPES.binary, 'tx'),\n TX_FIELD('poi', FIELD_TYPES.binary, 'pi'),\n TX_FIELD('ttl', FIELD_TYPES.int),\n TX_FIELD('fee', FIELD_TYPES.int),\n TX_FIELD('nonce', FIELD_TYPES.int)\n]\n\nconst CHANNEL_SLASH_TX = [\n ...BASE_TX,\n TX_FIELD('channelId', FIELD_TYPES.id, 'ch'),\n TX_FIELD('fromId', FIELD_TYPES.id, 'ak'),\n TX_FIELD('payload', FIELD_TYPES.binary, 'tx'),\n TX_FIELD('poi', FIELD_TYPES.binary, 'pi'),\n TX_FIELD('ttl', FIELD_TYPES.int),\n TX_FIELD('fee', FIELD_TYPES.int),\n TX_FIELD('nonce', FIELD_TYPES.int)\n]\n\nconst CHANNEL_SETTLE_TX = [\n ...BASE_TX,\n TX_FIELD('channelId', FIELD_TYPES.id, 'ch'),\n TX_FIELD('fromId', FIELD_TYPES.id, 'ak'),\n TX_FIELD('initiatorAmountFinal', FIELD_TYPES.int),\n TX_FIELD('responderAmountFinal', FIELD_TYPES.int),\n TX_FIELD('ttl', FIELD_TYPES.int),\n TX_FIELD('fee', FIELD_TYPES.int),\n TX_FIELD('nonce', FIELD_TYPES.int)\n]\n\nconst CHANNEL_FORCE_PROGRESS_TX = [\n ...BASE_TX,\n TX_FIELD('channelId', FIELD_TYPES.id, 'ch'),\n TX_FIELD('fromId', FIELD_TYPES.id, 'ak'),\n TX_FIELD('payload', FIELD_TYPES.binary, 'tx'),\n TX_FIELD('round', FIELD_TYPES.int),\n TX_FIELD('update', FIELD_TYPES.binary, 'cb'),\n TX_FIELD('stateHash', FIELD_TYPES.binary, 'st'),\n TX_FIELD('offChainTrees', FIELD_TYPES.stateTree),\n TX_FIELD('ttl', FIELD_TYPES.int),\n TX_FIELD('fee', FIELD_TYPES.int),\n TX_FIELD('nonce', FIELD_TYPES.int)\n]\n\nconst CHANNEL_OFFCHAIN_TX_2 = [\n ...BASE_TX,\n TX_FIELD('channelId', FIELD_TYPES.id, 'ch'),\n TX_FIELD('round', FIELD_TYPES.int),\n TX_FIELD('stateHash', FIELD_TYPES.binary, 'st')\n]\n\nconst CHANNEL_TX_3 = [\n ...BASE_TX,\n TX_FIELD('initiator', FIELD_TYPES.id, 'ak'),\n TX_FIELD('responder', FIELD_TYPES.id, 'ak'),\n TX_FIELD('channelAmount', FIELD_TYPES.int),\n TX_FIELD('initiatorAmount', FIELD_TYPES.int),\n TX_FIELD('responderAmount', FIELD_TYPES.int),\n TX_FIELD('channelReserve', FIELD_TYPES.int),\n TX_FIELD('initiatorDelegateIds', FIELD_TYPES.ids),\n TX_FIELD('responderDelegateIds', FIELD_TYPES.ids),\n TX_FIELD('stateHash', FIELD_TYPES.hex),\n TX_FIELD('round', FIELD_TYPES.int),\n TX_FIELD('soloRound', FIELD_TYPES.int),\n TX_FIELD('lockPeriod', FIELD_TYPES.int),\n TX_FIELD('lockedUntil', FIELD_TYPES.int),\n TX_FIELD('initiatorAuth', FIELD_TYPES.binary, 'cb'),\n TX_FIELD('responderAuth', FIELD_TYPES.binary, 'cb')\n]\n\nconst CHANNEL_SNAPSHOT_SOLO_TX = [\n ...BASE_TX,\n TX_FIELD('channelId', FIELD_TYPES.id, 'ch'),\n TX_FIELD('fromId', FIELD_TYPES.id, 'ak'),\n TX_FIELD('payload', FIELD_TYPES.binary, 'tx'),\n TX_FIELD('ttl', FIELD_TYPES.int),\n TX_FIELD('fee', FIELD_TYPES.int),\n TX_FIELD('nonce', FIELD_TYPES.int)\n]\n\nconst CHANNEL_OFFCHAIN_CREATE_CONTRACT_TX = [\n ...BASE_TX,\n TX_FIELD('owner', FIELD_TYPES.id, 'ak'),\n TX_FIELD('ctVersion', FIELD_TYPES.int),\n TX_FIELD('code', FIELD_TYPES.binary, 'cb'),\n TX_FIELD('deposit', FIELD_TYPES.int),\n TX_FIELD('callData', FIELD_TYPES.binary, 'cb')\n]\n\nconst CHANNEL_OFFCHAIN_CALL_CONTRACT_TX = [\n ...BASE_TX,\n TX_FIELD('caller', FIELD_TYPES.id, 'ak'),\n TX_FIELD('contract', FIELD_TYPES.id, 'ct'),\n TX_FIELD('abiVersion', FIELD_TYPES.int),\n TX_FIELD('amount', FIELD_TYPES.int),\n TX_FIELD('callData', FIELD_TYPES.binary, 'cb'),\n TX_FIELD('callStack', FIELD_TYPES.callStack),\n TX_FIELD('gasPrice', FIELD_TYPES.int),\n TX_FIELD('gasLimit', FIELD_TYPES.int)\n]\n\nconst CHANNEL_RECONNECT_TX = [\n ...BASE_TX,\n TX_FIELD('channelId', FIELD_TYPES.id, 'ch'),\n TX_FIELD('round', FIELD_TYPES.int),\n TX_FIELD('role', FIELD_TYPES.string),\n TX_FIELD('pubkey', FIELD_TYPES.id, 'ak')\n]\n\nconst CHANNEL_OFFCHAIN_UPDATE_TRANSFER_TX = [\n ...BASE_TX,\n TX_FIELD('from', FIELD_TYPES.id, 'ak'),\n TX_FIELD('to', FIELD_TYPES.id, 'ak'),\n TX_FIELD('amount', FIELD_TYPES.int)\n]\n\nconst CHANNEL_OFFCHAIN_UPDATE_DEPOSIT_TX = [\n ...BASE_TX,\n TX_FIELD('from', FIELD_TYPES.id, 'ak'),\n TX_FIELD('amount', FIELD_TYPES.int)\n]\n\nconst CHANNEL_OFFCHAIN_UPDATE_WITHDRAWAL_TX = [\n ...BASE_TX,\n TX_FIELD('from', FIELD_TYPES.id, 'ak'),\n TX_FIELD('amount', FIELD_TYPES.int)\n]\n\nconst PROOF_OF_INCLUSION_TX = [\n ...BASE_TX,\n TX_FIELD('accounts', FIELD_TYPES.mptrees),\n TX_FIELD('calls', FIELD_TYPES.mptrees),\n TX_FIELD('channels', FIELD_TYPES.mptrees),\n TX_FIELD('contracts', FIELD_TYPES.mptrees),\n TX_FIELD('ns', FIELD_TYPES.mptrees),\n TX_FIELD('oracles', FIELD_TYPES.mptrees)\n]\n\nconst STATE_TREES_TX = [\n ...BASE_TX,\n TX_FIELD('contracts', FIELD_TYPES.rlpBinary),\n TX_FIELD('calls', FIELD_TYPES.rlpBinary),\n TX_FIELD('channels', FIELD_TYPES.rlpBinary),\n TX_FIELD('ns', FIELD_TYPES.rlpBinary),\n TX_FIELD('oracles', FIELD_TYPES.rlpBinary),\n TX_FIELD('accounts', FIELD_TYPES.rlpBinary)\n]\n\nconst MERKLE_PATRICIA_TREE_TX = [\n ...BASE_TX,\n TX_FIELD('values', FIELD_TYPES.rlpBinaries)\n]\n\nconst MERKLE_PATRICIA_TREE_VALUE_TX = [\n ...BASE_TX,\n TX_FIELD('key', FIELD_TYPES.hex),\n TX_FIELD('value', FIELD_TYPES.rawBinary)\n]\n\nconst CONTRACTS_TREE_TX = [\n ...BASE_TX,\n TX_FIELD('contracts', FIELD_TYPES.rlpBinary)\n]\n\nconst CONTRACT_CALLS_TREE_TX = [\n ...BASE_TX,\n TX_FIELD('calls', FIELD_TYPES.rlpBinary)\n]\n\nconst CHANNELS_TREE_TX = [\n ...BASE_TX,\n TX_FIELD('channels', FIELD_TYPES.rlpBinary)\n]\n\nconst NAMESERVICE_TREE_TX = [\n ...BASE_TX,\n TX_FIELD('mtree', FIELD_TYPES.rlpBinary)\n]\n\nconst ORACLES_TREE_TX = [\n ...BASE_TX,\n TX_FIELD('otree', FIELD_TYPES.rlpBinary)\n]\n\nconst ACCOUNTS_TREE_TX = [\n ...BASE_TX,\n TX_FIELD('accounts', FIELD_TYPES.rlpBinary)\n]\n\nexport const TX_SERIALIZATION_SCHEMA = {\n [TX_TYPE.account]: {\n 2: TX_SCHEMA_FIELD(ACCOUNT_TX_2, OBJECT_TAG_ACCOUNT)\n },\n [TX_TYPE.signed]: {\n 1: TX_SCHEMA_FIELD(SIGNED_TX, OBJECT_TAG_SIGNED_TRANSACTION)\n },\n [TX_TYPE.spend]: {\n 1: TX_SCHEMA_FIELD(SPEND_TX, OBJECT_TAG_SPEND_TRANSACTION)\n },\n [TX_TYPE.namePreClaim]: {\n 1: TX_SCHEMA_FIELD(NAME_PRE_CLAIM_TX, OBJECT_TAG_NAME_SERVICE_PRECLAIM_TRANSACTION)\n },\n [TX_TYPE.nameClaim]: {\n 2: TX_SCHEMA_FIELD(NAME_CLAIM_TX_2, OBJECT_TAG_NAME_SERVICE_CLAIM_TRANSACTION)\n },\n [TX_TYPE.nameUpdate]: {\n 1: TX_SCHEMA_FIELD(NAME_UPDATE_TX, OBJECT_TAG_NAME_SERVICE_UPDATE_TRANSACTION)\n },\n [TX_TYPE.nameTransfer]: {\n 1: TX_SCHEMA_FIELD(NAME_TRANSFER_TX, OBJECT_TAG_NAME_SERVICE_TRANSFER_TRANSACTION)\n },\n [TX_TYPE.nameRevoke]: {\n 1: TX_SCHEMA_FIELD(NAME_REVOKE_TX, OBJECT_TAG_NAME_SERVICE_REVOKE_TRANSACTION)\n },\n [TX_TYPE.contract]: {\n 1: TX_SCHEMA_FIELD(CONTRACT_TX, OBJECT_TAG_CONTRACT)\n },\n [TX_TYPE.contractCreate]: {\n 1: TX_SCHEMA_FIELD(CONTRACT_CREATE_TX, OBJECT_TAG_CONTRACT_CREATE_TRANSACTION)\n },\n [TX_TYPE.contractCall]: {\n 1: TX_SCHEMA_FIELD(CONTRACT_CALL_TX, OBJECT_TAG_CONTRACT_CALL_TRANSACTION)\n },\n [TX_TYPE.contractCallResult]: {\n 1: TX_SCHEMA_FIELD(CONTRACT_CALL_RESULT_TX, OBJECT_TAG_CONTRACT_CALL)\n },\n [TX_TYPE.oracleRegister]: {\n 1: TX_SCHEMA_FIELD(ORACLE_REGISTER_TX, OBJECT_TAG_ORACLE_REGISTER_TRANSACTION)\n },\n [TX_TYPE.oracleExtend]: {\n 1: TX_SCHEMA_FIELD(ORACLE_EXTEND_TX, OBJECT_TAG_ORACLE_EXTEND_TRANSACTION)\n },\n [TX_TYPE.oracleQuery]: {\n 1: TX_SCHEMA_FIELD(ORACLE_QUERY_TX, OBJECT_TAG_ORACLE_QUERY_TRANSACTION)\n },\n [TX_TYPE.oracleResponse]: {\n 1: TX_SCHEMA_FIELD(ORACLE_RESPOND_TX, OBJECT_TAG_ORACLE_RESPONSE_TRANSACTION)\n },\n [TX_TYPE.channelCreate]: {\n 2: TX_SCHEMA_FIELD(CHANNEL_CREATE_TX_2, OBJECT_TAG_CHANNEL_CREATE_TX)\n },\n [TX_TYPE.channelCloseMutual]: {\n 1: TX_SCHEMA_FIELD(CHANNEL_CLOSE_MUTUAL_TX, OBJECT_TAG_CHANNEL_CLOSE_MUTUAL_TX)\n },\n [TX_TYPE.channelCloseSolo]: {\n 1: TX_SCHEMA_FIELD(CHANNEL_CLOSE_SOLO_TX, OBJECT_TAG_CHANNEL_CLOSE_SOLO_TX)\n },\n [TX_TYPE.channelSlash]: {\n 1: TX_SCHEMA_FIELD(CHANNEL_SLASH_TX, OBJECT_TAG_CHANNEL_SLASH_TX)\n },\n [TX_TYPE.channelDeposit]: {\n 1: TX_SCHEMA_FIELD(CHANNEL_DEPOSIT_TX, OBJECT_TAG_CHANNEL_DEPOSIT_TX)\n },\n [TX_TYPE.channelWithdraw]: {\n 1: TX_SCHEMA_FIELD(CHANNEL_WITHDRAW_TX, OBJECT_TAG_CHANNEL_WITHRAW_TX)\n },\n [TX_TYPE.channelSettle]: {\n 1: TX_SCHEMA_FIELD(CHANNEL_SETTLE_TX, OBJECT_TAG_CHANNEL_SETTLE_TX)\n },\n [TX_TYPE.channelForceProgress]: {\n 1: TX_SCHEMA_FIELD(CHANNEL_FORCE_PROGRESS_TX, OBJECT_TAG_CHANNEL_FORCE_PROGRESS_TX)\n },\n [TX_TYPE.channelOffChain]: {\n 2: TX_SCHEMA_FIELD(CHANNEL_OFFCHAIN_TX_2, OBJECT_TAG_CHANNEL_OFFCHAIN_TX)\n },\n [TX_TYPE.channel]: {\n 3: TX_SCHEMA_FIELD(CHANNEL_TX_3, OBJECT_TAG_CHANNEL)\n },\n [TX_TYPE.channelSnapshotSolo]: {\n 1: TX_SCHEMA_FIELD(CHANNEL_SNAPSHOT_SOLO_TX, OBJECT_TAG_CHANNEL_SNAPSHOT_SOLO_TX)\n },\n [TX_TYPE.channelOffChainUpdateTransfer]: {\n 1: TX_SCHEMA_FIELD(\n CHANNEL_OFFCHAIN_UPDATE_TRANSFER_TX, OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_TRANSFER_TX\n )\n },\n [TX_TYPE.channelOffChainUpdateDeposit]: {\n 1: TX_SCHEMA_FIELD(\n CHANNEL_OFFCHAIN_UPDATE_DEPOSIT_TX, OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_DEPOSIT_TX\n )\n },\n [TX_TYPE.channelOffChainUpdateWithdrawal]: {\n 1: TX_SCHEMA_FIELD(\n CHANNEL_OFFCHAIN_UPDATE_WITHDRAWAL_TX, OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_WITHDRAWAL_TX\n )\n },\n [TX_TYPE.channelOffChainCreateContract]: {\n 1: TX_SCHEMA_FIELD(\n CHANNEL_OFFCHAIN_CREATE_CONTRACT_TX, OBJECT_TAG_CHANNEL_OFFCHAIN_CREATE_CONTRACT_TX\n )\n },\n [TX_TYPE.channelOffChainCallContract]: {\n 1: TX_SCHEMA_FIELD(\n CHANNEL_OFFCHAIN_CALL_CONTRACT_TX, OBJECT_TAG_CHANNEL_OFFCHAIN_CALL_CONTRACT_TX\n )\n },\n [TX_TYPE.channelReconnect]: {\n 1: TX_SCHEMA_FIELD(CHANNEL_RECONNECT_TX, OBJECT_TAG_CHANNEL_RECONNECT_TX)\n },\n [TX_TYPE.proofOfInclusion]: {\n 1: TX_SCHEMA_FIELD(PROOF_OF_INCLUSION_TX, OBJECT_TAG_PROOF_OF_INCLUSION)\n },\n [TX_TYPE.stateTrees]: {\n 1: TX_SCHEMA_FIELD(STATE_TREES_TX, OBJECT_TAG_STATE_TREES)\n },\n [TX_TYPE.merklePatriciaTree]: {\n 1: TX_SCHEMA_FIELD(MERKLE_PATRICIA_TREE_TX, OBJECT_TAG_MERKLE_PATRICIA_TREE)\n },\n [TX_TYPE.merklePatriciaTreeValue]: {\n 1: TX_SCHEMA_FIELD(MERKLE_PATRICIA_TREE_VALUE_TX, OBJECT_TAG_MERKLE_PATRICIA_TREE_VALUE)\n },\n [TX_TYPE.contractsTree]: {\n 1: TX_SCHEMA_FIELD(CONTRACTS_TREE_TX, OBJECT_TAG_CONTRACTS_TREE)\n },\n [TX_TYPE.contractCallsTree]: {\n 1: TX_SCHEMA_FIELD(CONTRACT_CALLS_TREE_TX, OBJECT_TAG_CONTRACT_CALLS_TREE)\n },\n [TX_TYPE.channelsTree]: {\n 1: TX_SCHEMA_FIELD(CHANNELS_TREE_TX, OBJECT_TAG_CHANNELS_TREE)\n },\n [TX_TYPE.nameserviceTree]: {\n 1: TX_SCHEMA_FIELD(NAMESERVICE_TREE_TX, OBJECT_TAG_NAMESERVICE_TREE)\n },\n [TX_TYPE.oraclesTree]: {\n 1: TX_SCHEMA_FIELD(ORACLES_TREE_TX, OBJECT_TAG_ORACLES_TREE)\n },\n [TX_TYPE.accountsTree]: {\n 1: TX_SCHEMA_FIELD(ACCOUNTS_TREE_TX, OBJECT_TAG_ACCOUNTS_TREE)\n },\n [TX_TYPE.gaAttach]: {\n 1: TX_SCHEMA_FIELD(GA_ATTACH_TX, OBJECT_TAG_GA_ATTACH)\n },\n [TX_TYPE.gaMeta]: {\n 2: TX_SCHEMA_FIELD(GA_META_TX_2, OBJECT_TAG_GA_META)\n },\n [TX_TYPE.payingFor]: {\n 1: TX_SCHEMA_FIELD(PAYING_FOR_TX, OBJECT_TAG_PAYING_FOR)\n }\n}\n\nexport const TX_DESERIALIZATION_SCHEMA = {\n [OBJECT_TAG_ACCOUNT]: {\n 2: TX_SCHEMA_FIELD(ACCOUNT_TX_2, OBJECT_TAG_ACCOUNT)\n },\n [OBJECT_TAG_SIGNED_TRANSACTION]: {\n 1: TX_SCHEMA_FIELD(SIGNED_TX, OBJECT_TAG_SIGNED_TRANSACTION)\n },\n [OBJECT_TAG_SPEND_TRANSACTION]: {\n 1: TX_SCHEMA_FIELD(SPEND_TX, OBJECT_TAG_SPEND_TRANSACTION)\n },\n [OBJECT_TAG_NAME_SERVICE_PRECLAIM_TRANSACTION]: {\n 1: TX_SCHEMA_FIELD(NAME_PRE_CLAIM_TX, OBJECT_TAG_NAME_SERVICE_PRECLAIM_TRANSACTION)\n },\n [OBJECT_TAG_NAME_SERVICE_CLAIM_TRANSACTION]: {\n 2: TX_SCHEMA_FIELD(NAME_CLAIM_TX_2, OBJECT_TAG_NAME_SERVICE_CLAIM_TRANSACTION)\n },\n [OBJECT_TAG_NAME_SERVICE_UPDATE_TRANSACTION]: {\n 1: TX_SCHEMA_FIELD(NAME_UPDATE_TX, OBJECT_TAG_NAME_SERVICE_UPDATE_TRANSACTION)\n },\n [OBJECT_TAG_NAME_SERVICE_TRANSFER_TRANSACTION]: {\n 1: TX_SCHEMA_FIELD(NAME_TRANSFER_TX, OBJECT_TAG_NAME_SERVICE_TRANSFER_TRANSACTION)\n },\n [OBJECT_TAG_NAME_SERVICE_REVOKE_TRANSACTION]: {\n 1: TX_SCHEMA_FIELD(NAME_REVOKE_TX, OBJECT_TAG_NAME_SERVICE_REVOKE_TRANSACTION)\n },\n [OBJECT_TAG_CONTRACT]: {\n 1: TX_SCHEMA_FIELD(CONTRACT_TX, OBJECT_TAG_CONTRACT)\n },\n [OBJECT_TAG_CONTRACT_CREATE_TRANSACTION]: {\n 1: TX_SCHEMA_FIELD(CONTRACT_CREATE_TX, OBJECT_TAG_CONTRACT_CREATE_TRANSACTION)\n },\n [OBJECT_TAG_CONTRACT_CALL_TRANSACTION]: {\n 1: TX_SCHEMA_FIELD(CONTRACT_CALL_TX, OBJECT_TAG_CONTRACT_CALL_TRANSACTION)\n },\n [OBJECT_TAG_CONTRACT_CALL]: {\n 1: TX_SCHEMA_FIELD(CONTRACT_CALL_RESULT_TX, OBJECT_TAG_CONTRACT_CALL)\n },\n [OBJECT_TAG_ORACLE_REGISTER_TRANSACTION]: {\n 1: TX_SCHEMA_FIELD(ORACLE_REGISTER_TX, OBJECT_TAG_ORACLE_REGISTER_TRANSACTION)\n },\n [OBJECT_TAG_ORACLE_EXTEND_TRANSACTION]: {\n 1: TX_SCHEMA_FIELD(ORACLE_EXTEND_TX, OBJECT_TAG_ORACLE_EXTEND_TRANSACTION)\n },\n [OBJECT_TAG_ORACLE_QUERY_TRANSACTION]: {\n 1: TX_SCHEMA_FIELD(ORACLE_QUERY_TX, OBJECT_TAG_ORACLE_QUERY_TRANSACTION)\n },\n [OBJECT_TAG_ORACLE_RESPONSE_TRANSACTION]: {\n 1: TX_SCHEMA_FIELD(ORACLE_RESPOND_TX, OBJECT_TAG_ORACLE_RESPONSE_TRANSACTION)\n },\n [OBJECT_TAG_CHANNEL_CREATE_TX]: {\n 2: TX_SCHEMA_FIELD(CHANNEL_CREATE_TX_2, OBJECT_TAG_CHANNEL_CREATE_TX)\n },\n [OBJECT_TAG_CHANNEL_CLOSE_MUTUAL_TX]: {\n 1: TX_SCHEMA_FIELD(CHANNEL_CLOSE_MUTUAL_TX, OBJECT_TAG_CHANNEL_CLOSE_MUTUAL_TX)\n },\n [OBJECT_TAG_CHANNEL_CLOSE_SOLO_TX]: {\n 1: TX_SCHEMA_FIELD(CHANNEL_CLOSE_SOLO_TX, OBJECT_TAG_CHANNEL_CLOSE_SOLO_TX)\n },\n [OBJECT_TAG_CHANNEL_SLASH_TX]: {\n 1: TX_SCHEMA_FIELD(CHANNEL_SLASH_TX, OBJECT_TAG_CHANNEL_SLASH_TX)\n },\n [OBJECT_TAG_CHANNEL_DEPOSIT_TX]: {\n 1: TX_SCHEMA_FIELD(CHANNEL_DEPOSIT_TX, OBJECT_TAG_CHANNEL_DEPOSIT_TX)\n },\n [OBJECT_TAG_CHANNEL_WITHRAW_TX]: {\n 1: TX_SCHEMA_FIELD(CHANNEL_WITHDRAW_TX, OBJECT_TAG_CHANNEL_WITHRAW_TX)\n },\n [OBJECT_TAG_CHANNEL_SETTLE_TX]: {\n 1: TX_SCHEMA_FIELD(CHANNEL_SETTLE_TX, OBJECT_TAG_CHANNEL_SETTLE_TX)\n },\n [OBJECT_TAG_CHANNEL_OFFCHAIN_TX]: {\n 2: TX_SCHEMA_FIELD(CHANNEL_OFFCHAIN_TX_2, OBJECT_TAG_CHANNEL_OFFCHAIN_TX)\n },\n [OBJECT_TAG_CHANNEL]: {\n 3: TX_SCHEMA_FIELD(CHANNEL_TX_3, OBJECT_TAG_CHANNEL)\n },\n [OBJECT_TAG_CHANNEL_SNAPSHOT_SOLO_TX]: {\n 1: TX_SCHEMA_FIELD(CHANNEL_SNAPSHOT_SOLO_TX, OBJECT_TAG_CHANNEL_SNAPSHOT_SOLO_TX)\n },\n [OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_TRANSFER_TX]: {\n 1: TX_SCHEMA_FIELD(\n CHANNEL_OFFCHAIN_UPDATE_TRANSFER_TX, OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_TRANSFER_TX\n )\n },\n [OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_DEPOSIT_TX]: {\n 1: TX_SCHEMA_FIELD(\n CHANNEL_OFFCHAIN_UPDATE_DEPOSIT_TX, OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_DEPOSIT_TX\n )\n },\n [OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_WITHDRAWAL_TX]: {\n 1: TX_SCHEMA_FIELD(\n CHANNEL_OFFCHAIN_UPDATE_WITHDRAWAL_TX, OBJECT_TAG_CHANNEL_OFFCHAIN_UPDATE_WITHDRAWAL_TX\n )\n },\n [OBJECT_TAG_CHANNEL_OFFCHAIN_CREATE_CONTRACT_TX]: {\n 1: TX_SCHEMA_FIELD(\n CHANNEL_OFFCHAIN_CREATE_CONTRACT_TX, OBJECT_TAG_CHANNEL_OFFCHAIN_CREATE_CONTRACT_TX\n )\n },\n [OBJECT_TAG_CHANNEL_OFFCHAIN_CALL_CONTRACT_TX]: {\n 1: TX_SCHEMA_FIELD(\n CHANNEL_OFFCHAIN_CALL_CONTRACT_TX, OBJECT_TAG_CHANNEL_OFFCHAIN_CALL_CONTRACT_TX\n )\n },\n [OBJECT_TAG_CHANNEL_RECONNECT_TX]: {\n 1: TX_SCHEMA_FIELD(CHANNEL_RECONNECT_TX, OBJECT_TAG_CHANNEL_RECONNECT_TX)\n },\n [OBJECT_TAG_PROOF_OF_INCLUSION]: {\n 1: TX_SCHEMA_FIELD(PROOF_OF_INCLUSION_TX, OBJECT_TAG_PROOF_OF_INCLUSION)\n },\n [OBJECT_TAG_STATE_TREES]: {\n 1: TX_SCHEMA_FIELD(STATE_TREES_TX, OBJECT_TAG_STATE_TREES)\n },\n [OBJECT_TAG_MERKLE_PATRICIA_TREE]: {\n 1: TX_SCHEMA_FIELD(MERKLE_PATRICIA_TREE_TX, OBJECT_TAG_MERKLE_PATRICIA_TREE)\n },\n [OBJECT_TAG_MERKLE_PATRICIA_TREE_VALUE]: {\n 1: TX_SCHEMA_FIELD(MERKLE_PATRICIA_TREE_VALUE_TX, OBJECT_TAG_MERKLE_PATRICIA_TREE_VALUE)\n },\n [OBJECT_TAG_CONTRACTS_TREE]: {\n 1: TX_SCHEMA_FIELD(CONTRACTS_TREE_TX, OBJECT_TAG_CONTRACTS_TREE)\n },\n [OBJECT_TAG_CONTRACT_CALLS_TREE]: {\n 1: TX_SCHEMA_FIELD(CONTRACT_CALLS_TREE_TX, OBJECT_TAG_CONTRACT_CALLS_TREE)\n },\n [OBJECT_TAG_CHANNELS_TREE]: {\n 1: TX_SCHEMA_FIELD(CHANNELS_TREE_TX, OBJECT_TAG_CHANNELS_TREE)\n },\n [OBJECT_TAG_NAMESERVICE_TREE]: {\n 1: TX_SCHEMA_FIELD(NAMESERVICE_TREE_TX, OBJECT_TAG_NAMESERVICE_TREE)\n },\n [OBJECT_TAG_ORACLES_TREE]: {\n 1: TX_SCHEMA_FIELD(ORACLES_TREE_TX, OBJECT_TAG_ORACLES_TREE)\n },\n [OBJECT_TAG_ACCOUNTS_TREE]: {\n 1: TX_SCHEMA_FIELD(ACCOUNTS_TREE_TX, OBJECT_TAG_ACCOUNTS_TREE)\n },\n [OBJECT_TAG_GA_ATTACH]: {\n 1: TX_SCHEMA_FIELD(GA_ATTACH_TX, OBJECT_TAG_GA_ATTACH)\n },\n [OBJECT_TAG_GA_META]: {\n 2: TX_SCHEMA_FIELD(GA_META_TX_2, OBJECT_TAG_GA_META)\n },\n [OBJECT_TAG_PAYING_FOR]: {\n 1: TX_SCHEMA_FIELD(PAYING_FOR_TX, OBJECT_TAG_PAYING_FOR)\n },\n [OBJECT_TAG_CHANNEL_FORCE_PROGRESS_TX]: {\n 1: TX_SCHEMA_FIELD(CHANNEL_FORCE_PROGRESS_TX, OBJECT_TAG_CHANNEL_FORCE_PROGRESS_TX)\n },\n [OBJECT_TAG_SOPHIA_BYTE_CODE]: {\n 3: TX_SCHEMA_FIELD(CONTRACT_BYTE_CODE_LIMA, OBJECT_TAG_SOPHIA_BYTE_CODE)\n }\n}\n"],"file":"schema.mjs"}
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
* @example import { Tx } from '@aeternity/aepp-sdk'
|
|
23
23
|
*/
|
|
24
24
|
import stampit from '@stamp/it';
|
|
25
|
-
import
|
|
25
|
+
import _stampRequired from '@stamp/required';
|
|
26
26
|
/**
|
|
27
27
|
* Basic Tx Stamp
|
|
28
28
|
*
|
|
@@ -40,6 +40,9 @@ import { required } from '@stamp/required';
|
|
|
40
40
|
* @example Tx()
|
|
41
41
|
*/
|
|
42
42
|
|
|
43
|
+
const {
|
|
44
|
+
required
|
|
45
|
+
} = _stampRequired;
|
|
43
46
|
const Tx = stampit(required({
|
|
44
47
|
methods: {
|
|
45
48
|
spendTx: required,
|
|
@@ -297,4 +300,4 @@ const Tx = stampit(required({
|
|
|
297
300
|
*/
|
|
298
301
|
|
|
299
302
|
export default Tx;
|
|
300
|
-
//# sourceMappingURL=index.
|
|
303
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/tx/index.js"],"names":["stampit","Tx","required","methods","spendTx","namePreclaimTx","nameClaimTx","nameTransferTx","nameUpdateTx","nameRevokeTx","contractCreateTx","contractCallTx","oracleRegisterTx","oracleExtendTx","oraclePostQueryTx","oracleRespondTx","getAccountNonce","channelCloseSoloTx","channelSlashTx","channelSettleTx","channelSnapshotSoloTx","gaAttachTx","getVmVersion","prepareTxParams"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA,OAAOA,OAAP,MAAoB,WAApB;AACA,2BAAyB,iBAAzB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AACA,MAAMC,EAAE,GAAGD,OAAO,CAACE,QAAQ,CAAC;AAC1BC,EAAAA,OAAO,EAAE;AACPC,IAAAA,OAAO,EAAEF,QADF;AAEPG,IAAAA,cAAc,EAAEH,QAFT;AAGPI,IAAAA,WAAW,EAAEJ,QAHN;AAIPK,IAAAA,cAAc,EAAEL,QAJT;AAKPM,IAAAA,YAAY,EAAEN,QALP;AAMPO,IAAAA,YAAY,EAAEP,QANP;AAOPQ,IAAAA,gBAAgB,EAAER,QAPX;AAQPS,IAAAA,cAAc,EAAET,QART;AASPU,IAAAA,gBAAgB,EAAEV,QATX;AAUPW,IAAAA,cAAc,EAAEX,QAVT;AAWPY,IAAAA,iBAAiB,EAAEZ,QAXZ;AAYPa,IAAAA,eAAe,EAAEb,QAZV;AAaPc,IAAAA,eAAe,EAAEd,QAbV;AAcPe,IAAAA,kBAAkB,EAAEf,QAdb;AAePgB,IAAAA,cAAc,EAAEhB,QAfT;AAgBPiB,IAAAA,eAAe,EAAEjB,QAhBV;AAiBPkB,IAAAA,qBAAqB,EAAElB,QAjBhB;AAkBPmB,IAAAA,UAAU,EAAEnB,QAlBL;AAmBPoB,IAAAA,YAAY,EAAEpB,QAnBP;AAoBPqB,IAAAA,eAAe,EAAErB;AApBV;AADiB,CAAD,CAAT,CAAlB;AAyBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAeD,EAAf","sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2018 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\n\n/**\n * Tx module\n * @module @aeternity/aepp-sdk/es/tx\n * @export Tx\n * @example import { Tx } from '@aeternity/aepp-sdk'\n */\n\nimport stampit from '@stamp/it'\nimport { required } from '@stamp/required'\n\n/**\n * Basic Tx Stamp\n *\n * Attempting to create instances from the Stamp without overwriting all\n * abstract methods using composition will result in an exception.\n *\n * Tx is one of the three basic building blocks of an\n * {@link module:@aeternity/aepp-sdk/es/ae--Ae} client and provides methods to\n * create aeternity transactions.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @return {Object} Tx instance\n * @example Tx()\n */\nconst Tx = stampit(required({\n methods: {\n spendTx: required,\n namePreclaimTx: required,\n nameClaimTx: required,\n nameTransferTx: required,\n nameUpdateTx: required,\n nameRevokeTx: required,\n contractCreateTx: required,\n contractCallTx: required,\n oracleRegisterTx: required,\n oracleExtendTx: required,\n oraclePostQueryTx: required,\n oracleRespondTx: required,\n getAccountNonce: required,\n channelCloseSoloTx: required,\n channelSlashTx: required,\n channelSettleTx: required,\n channelSnapshotSoloTx: required,\n gaAttachTx: required,\n getVmVersion: required,\n prepareTxParams: required\n }\n}))\n\n/**\n * Create a `spend_tx` transaction\n * @function spendTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({\n * sender?: String,\n * recipientId: String,\n * amount: Number,\n * fee?: Number,\n * ttl?: Number,\n * nonce?: Number,\n * payload?: String\n * }) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `spend_tx` transaction\n */\n\n/**\n * Create a `name_preclaim_tx` transaction\n * @function namePreclaimTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({\n * account?: String, commitment: String, fee?: Number, ttl?: Number, nonce?: Number\n * }) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `name_preclaim_tx` transaction\n */\n\n/**\n * Create a `name_claim_tx` transaction\n * @function nameClaimTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({\n * account?: String, name: String, nameSalt: String, fee?: Number, ttl?: Number, nonce?: Number\n * }) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `name_claim_tx` transaction\n */\n\n/**\n * Create a `name_transfer_tx` transaction\n * @function nameTransferTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({\n * account?: String,\n * nameId: String,\n * recipientId: String,\n * fee?: Number,\n * ttl?: Number,\n * nonce?: Number\n * }) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `name_transfer_tx` transaction\n */\n\n/**\n * Create a `name_update_tx` transaction\n * @function nameUpdateTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({\n * account?: String,\n * nameId: String,\n * pointers: Object,\n * nameTtl: Number,\n * clientTtl: Number,\n * fee?: Number,\n * ttl?: Number,\n * nonce?: Number\n * }) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `name_update_tx` transaction\n */\n\n/**\n * Create a `name_revoke_tx` transaction\n * @function nameRevokeTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({\n * account?: String, nameId: String, fee?: Number, ttl?: Number, nonce?: Number\n * }) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `name_revoke_tx` transaction\n */\n\n/**\n * Create a `contract_create_tx` transaction\n * @function contractCreateTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({\n * owner: String,\n * code: String,\n * callData: String,\n * vmVersion: Number,\n * deposit: Number,\n * amount: Number,\n * gas: Number,\n * gasPrice: Number,\n * fee?: Number,\n * ttl?: Number,\n * nonce?: Number\n * }) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `contract_create_tx` transaction\n */\n\n/**\n * Create a `contract_call_tx` transaction\n * @function contractCallTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({\n * callerId: String,\n * contract: String,\n * callData: String,\n * vmVersion: Number,\n * amount: Number,\n * gas: Number,\n * gasPrice: Number,\n * fee?: Number,\n * ttl?: Number,\n * nonce?: Number\n * }) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `contract_call_tx` transaction\n */\n\n/**\n * Create a `oracle_register_tx` transaction\n * @function oracleRegisterTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({\n * accountId: String,\n * queryFormat: String,\n * responseFormat: String,\n * queryFee: String|Number,\n * oracleTtl: Object,\n * vmVersion: Number = ORACLE_VM_VERSION,\n * fee?: Number,\n * ttl?: Number,\n * nonce?: Number\n * }) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `oracle_register_tx` transaction\n */\n\n/**\n * Create a `oracle_extend_tx` transaction\n * @function oracleExtendTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({\n * oracleId: String,\n * callerId: String,\n * oracleTtl: Object,\n * fee?: Number,\n * ttl: Number,\n * nonce?: Number\n * }) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `oracle_extend_tx` transaction\n */\n\n/**\n * Create a `oracle_post_query_tx` transaction\n * @function oraclePostQuery\n * @instance\n * @abstract\n * @category async\n * @rtype ({\n * oracleId: String,\n * responseTtl: Object,\n * query: String,\n * queryTtl: Object,\n * queryFee: String|Number,\n * senderId: String,\n * fee?: Number,\n * ttl: Number,\n * nonce?: Number\n * }) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `oracle_post_query_tx` transaction\n */\n\n/**\n * Create a `oracle_respond_tx` transaction\n * @function oracleRespondTx\n * @instance\n * @abstract\n * @category async\n * @rtype ({\n * oracleId: String,\n * callerId: String,\n * responseTtl: Object,\n * queryId: String,\n * response: String,\n * fee?: Number,\n * ttl?: Number,\n * nonce?: Number\n * }) => tx: Promise[String]\n * @param {Object} options - The object to extract properties from\n * @return {String} `oracle_respond_tx` transaction\n */\n\n/**\n * Get Account Nonce\n * @function getAccountNonce\n * @instance\n * @abstract\n * @category async\n * @rtype (address) => result: Number\n * @param {String} address - Account public key\n * @return {Number} Result\n */\n\nexport default Tx\n"],"file":"index.mjs"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import _buffer from "buffer";
|
|
2
|
+
const {
|
|
3
|
+
Buffer: _Buffer
|
|
4
|
+
} = _buffer;
|
|
5
|
+
|
|
1
6
|
/**
|
|
2
7
|
* TxObject module
|
|
3
8
|
* @module @aeternity/aepp-sdk/es/tx/tx-object
|
|
@@ -5,10 +10,11 @@
|
|
|
5
10
|
* @example import TxObject from '@aeternity/aepp-sdk/es/tx/tx-object'
|
|
6
11
|
*/
|
|
7
12
|
import stampit from '@stamp/it';
|
|
8
|
-
import { buildTx, calculateFee, unpackTx } from
|
|
9
|
-
import { TX_TYPE } from
|
|
10
|
-
import { encode } from
|
|
11
|
-
import { isHex } from
|
|
13
|
+
import { buildTx, calculateFee, unpackTx } from "./builder/index.mjs";
|
|
14
|
+
import { TX_TYPE } from "./builder/schema.mjs";
|
|
15
|
+
import { encode } from "./builder/helpers.mjs";
|
|
16
|
+
import { isHex } from "../utils/string.mjs";
|
|
17
|
+
import { InvalidTxError, TypeError, UnknownTxError, InvalidSignatureError } from "../utils/errors.mjs";
|
|
12
18
|
/**
|
|
13
19
|
* Build transaction from object
|
|
14
20
|
* @alias module:@aeternity/aepp-sdk/es/tx/tx-object
|
|
@@ -23,8 +29,8 @@ import { isHex } from '../utils/string';
|
|
|
23
29
|
|
|
24
30
|
const buildTransaction = function (type, params) {
|
|
25
31
|
let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
26
|
-
if (typeof params !== 'object') throw new
|
|
27
|
-
if (typeof type !== 'string' || !Object.values(TX_TYPE).includes(type)) throw new
|
|
32
|
+
if (typeof params !== 'object') throw new TypeError('tx "params" should be an object');
|
|
33
|
+
if (typeof type !== 'string' || !Object.values(TX_TYPE).includes(type)) throw new UnknownTxError(`Unknown transaction type ${type}`);
|
|
28
34
|
const fee = calculateFee(params.fee, type, {
|
|
29
35
|
gas: params.gas,
|
|
30
36
|
params,
|
|
@@ -52,7 +58,7 @@ const buildTransaction = function (type, params) {
|
|
|
52
58
|
/**
|
|
53
59
|
* Unpack transaction from RLP encoded binary or base64c string
|
|
54
60
|
* @alias module:@aeternity/aepp-sdk/es/tx/tx-object
|
|
55
|
-
* @param {
|
|
61
|
+
* @param {Uint8Array|String} tx RLP encoded binary or base64c(rlpBinary) string
|
|
56
62
|
* @throws {Error} Arguments validation error's
|
|
57
63
|
* @return {{
|
|
58
64
|
* encodedTx: String, binary: Array<Buffer>, rlpEncoded: Buffer, type: String, params: Object
|
|
@@ -61,7 +67,7 @@ const buildTransaction = function (type, params) {
|
|
|
61
67
|
|
|
62
68
|
|
|
63
69
|
const unpackTransaction = tx => {
|
|
64
|
-
if (!tx) throw new
|
|
70
|
+
if (!tx) throw new InvalidTxError(`Invalid transaction: ${tx}`);
|
|
65
71
|
|
|
66
72
|
if (typeof tx === 'string') {
|
|
67
73
|
const {
|
|
@@ -79,7 +85,7 @@ const unpackTransaction = tx => {
|
|
|
79
85
|
};
|
|
80
86
|
}
|
|
81
87
|
|
|
82
|
-
if (
|
|
88
|
+
if (tx instanceof Uint8Array) {
|
|
83
89
|
const {
|
|
84
90
|
txType: type,
|
|
85
91
|
tx: params,
|
|
@@ -94,6 +100,8 @@ const unpackTransaction = tx => {
|
|
|
94
100
|
binary
|
|
95
101
|
};
|
|
96
102
|
}
|
|
103
|
+
|
|
104
|
+
throw new InvalidTxError(`"tx" should be a string or Uint8Array, got ${tx} instead`);
|
|
97
105
|
};
|
|
98
106
|
/**
|
|
99
107
|
* Helper which build or unpack transaction base on constructor arguments
|
|
@@ -119,7 +127,7 @@ const initTransaction = function () {
|
|
|
119
127
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
120
128
|
if (params && type) return buildTransaction(type, params, options);
|
|
121
129
|
if (tx) return unpackTransaction(tx);
|
|
122
|
-
throw new
|
|
130
|
+
throw new InvalidTxError('Invalid TxObject arguments. Please provide one of { tx: "tx_asdasd23..." } or { type: "spendTx", params: {...} }');
|
|
123
131
|
};
|
|
124
132
|
/**
|
|
125
133
|
* Transaction Validator Stamp
|
|
@@ -204,7 +212,7 @@ export const TxObject = stampit({
|
|
|
204
212
|
setProp() {
|
|
205
213
|
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
206
214
|
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
207
|
-
if (typeof props !== 'object') throw new
|
|
215
|
+
if (typeof props !== 'object') throw new TypeError('Props should be an object');
|
|
208
216
|
this.isSigned = false;
|
|
209
217
|
this.signatures = [];
|
|
210
218
|
Object.assign(this, buildTransaction(this.type, { ...this.params,
|
|
@@ -222,7 +230,6 @@ export const TxObject = stampit({
|
|
|
222
230
|
* @return {Array} Array of signatures
|
|
223
231
|
*/
|
|
224
232
|
getSignatures() {
|
|
225
|
-
if (!this.isSigned) throw new Error('Signature not found, transaction is not signed');
|
|
226
233
|
return this.signatures;
|
|
227
234
|
},
|
|
228
235
|
|
|
@@ -233,8 +240,8 @@ export const TxObject = stampit({
|
|
|
233
240
|
* @return {void}
|
|
234
241
|
*/
|
|
235
242
|
addSignature(signature) {
|
|
236
|
-
signature = isHex(signature) ?
|
|
237
|
-
if (!
|
|
243
|
+
signature = isHex(signature) ? _Buffer.from(signature, 'hex') : signature;
|
|
244
|
+
if (!_Buffer.isBuffer(signature) && !(signature instanceof Uint8Array)) throw new InvalidSignatureError('Invalid signature, signature must be of type Buffer or Uint8Array');
|
|
238
245
|
Object.assign(this, buildTransaction(TX_TYPE.signed, {
|
|
239
246
|
encodedTx: this.rlpEncoded,
|
|
240
247
|
signatures: [[...this.signatures, signature]]
|
|
@@ -273,4 +280,4 @@ export const TxObject = stampit({
|
|
|
273
280
|
}
|
|
274
281
|
});
|
|
275
282
|
export default TxObject;
|
|
276
|
-
//# sourceMappingURL=tx-object.
|
|
283
|
+
//# sourceMappingURL=tx-object.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/tx/tx-object.js"],"names":["stampit","buildTx","calculateFee","unpackTx","TX_TYPE","encode","isHex","InvalidTxError","TypeError","UnknownTxError","InvalidSignatureError","buildTransaction","type","params","options","Object","values","includes","fee","gas","vsn","rlpEncoded","binary","tx","encodedTx","txObject","unpackTransaction","txType","Uint8Array","initTransaction","TxObject","init","signatures","assign","signed","isSigned","statics","fromString","fromRlp","methods","setProp","props","getSignatures","addSignature","signature","from","isBuffer","calculateMinFee"],"mappings":"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","sourcesContent":["/**\n * TxObject module\n * @module @aeternity/aepp-sdk/es/tx/tx-object\n * @export TxObject\n * @example import TxObject from '@aeternity/aepp-sdk/es/tx/tx-object'\n */\nimport stampit from '@stamp/it'\nimport { buildTx, calculateFee, unpackTx } from './builder'\nimport { TX_TYPE } from './builder/schema'\nimport { encode } from './builder/helpers'\nimport { isHex } from '../utils/string'\nimport { InvalidTxError, TypeError, UnknownTxError, InvalidSignatureError } from '../utils/errors'\n\n/**\n * Build transaction from object\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @param {String} type Transaction type\n * @param {Object} params Transaction params\n * @param {Object} [options={}] Options\n * @throws {Error} Arguments validation error's\n * @return {{\n * encodedTx: String, binary: Array<Buffer>, rlpEncoded: Buffer, params: Object, type: String\n * }}\n */\nconst buildTransaction = (type, params, options = {}) => {\n if (typeof params !== 'object') throw new TypeError('tx \"params\" should be an object')\n if (typeof type !== 'string' || !Object.values(TX_TYPE).includes(type)) throw new UnknownTxError(`Unknown transaction type ${type}`)\n const fee = calculateFee(params.fee, type, { gas: params.gas, params, vsn: params.vsn })\n const { rlpEncoded, binary, tx: encodedTx, txObject } = buildTx(\n { ...params, fee }, type, { vsn: params.vsn, ...options }\n )\n return { rlpEncoded, binary, encodedTx, params: txObject, type }\n}\n\n/**\n * Unpack transaction from RLP encoded binary or base64c string\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @param {Uint8Array|String} tx RLP encoded binary or base64c(rlpBinary) string\n * @throws {Error} Arguments validation error's\n * @return {{\n * encodedTx: String, binary: Array<Buffer>, rlpEncoded: Buffer, type: String, params: Object\n * }}\n */\nconst unpackTransaction = (tx) => {\n if (!tx) throw new InvalidTxError(`Invalid transaction: ${tx}`)\n if (typeof tx === 'string') {\n const { txType: type, tx: params, rlpEncoded, binary } = unpackTx(tx)\n return { encodedTx: tx, type, params, rlpEncoded, binary }\n }\n if (tx instanceof Uint8Array) {\n const { txType: type, tx: params, rlpEncoded, binary } = unpackTx(tx, true)\n return { encodedTx: encode(tx, 'tx'), type, params, rlpEncoded, binary }\n }\n throw new InvalidTxError(`\"tx\" should be a string or Uint8Array, got ${tx} instead`)\n}\n\n/**\n * Helper which build or unpack transaction base on constructor arguments\n * Need to provide one of arguments: [tx] -> unpack flow or [params, type] -> build flow\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @param {Buffer|String} [tx] Transaction rlp binary or vase64c string\n * @param {Object} params Transaction params\n * @param {String} type Transaction type\n * @param {Object} [options={}] Options\n * @throws {Error} Arguments validation error's\n * @return {{\n * encodedTx: String, binary: Array<Buffer>, rlpEncoded: Buffer, type: String, params: Object\n * }}\n */\nconst initTransaction = ({ tx, params, type, options = {} } = {}) => {\n if (params && type) return buildTransaction(type, params, options)\n if (tx) return unpackTransaction(tx)\n throw new InvalidTxError('Invalid TxObject arguments. Please provide one of { tx: \"tx_asdasd23...\" } or { type: \"spendTx\", params: {...} }')\n}\n\n/**\n * Transaction Validator Stamp\n * This stamp give us possibility to unpack and validate some of transaction properties,\n * to make sure we can post it to the chain\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @param {Buffer|String} [options.tx] - Rlp binary or base64c transaction\n * @param {Object} [options.params] - Transaction params\n * @param {String} [options.type] - Transaction type\n * @param {Object} [options.options] - Build options\n * @return {Object} TxObject instance\n * @example TxObject({ params: {...}, type: 'spendTx' })\n */\nexport const TxObject = stampit({\n init ({ tx, params, type, options = {} } = {}) {\n this.options = options\n this.signatures = []\n Object.assign(this, initTransaction({ tx, params, type, options }))\n\n if (this.type === TX_TYPE.signed) {\n const { signatures, encodedTx: { txType, tx } } = this.params\n this.signatures = signatures\n this.params = tx\n this.type = txType\n this.isSigned = true\n }\n },\n statics: {\n /**\n * Create txObject from base64c RLP encoded transaction string with 'tx_' prefix\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @static\n * @param {String} tx Transaction string (tx_23fsdgsdfg...)\n * @return {TxObject}\n */\n fromString: (tx) => TxObject({ tx }),\n /**\n * Create txObject from transaction RLP binary\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @static\n * @param {Buffer} tx Transaction RLP binary\n * @return {TxObject}\n */\n fromRlp: (tx) => TxObject({ tx })\n },\n methods: {\n /**\n * Rebuild transaction with new params and recalculate fee\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @param {Object} props Transaction properties for update\n * @param options\n * @return {TxObject}\n */\n setProp (props = {}, options = {}) {\n if (typeof props !== 'object') throw new TypeError('Props should be an object')\n this.isSigned = false\n this.signatures = []\n Object.assign(\n this,\n buildTransaction(\n this.type, { ...this.params, ...props, fee: null }, { ...this.options, ...options }\n )\n )\n return this\n },\n /**\n * Get signatures\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @return {Array} Array of signatures\n */\n getSignatures () {\n return this.signatures\n },\n /**\n * Add signature\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @param {Buffer|String} signature Signature to add ( Can be: Buffer | Uint8Array | HexString )\n * @return {void}\n */\n addSignature (signature) {\n signature = isHex(signature) ? Buffer.from(signature, 'hex') : signature\n if (!Buffer.isBuffer(signature) && !(signature instanceof Uint8Array)) throw new InvalidSignatureError('Invalid signature, signature must be of type Buffer or Uint8Array')\n Object.assign(\n this,\n buildTransaction(\n TX_TYPE.signed,\n { encodedTx: this.rlpEncoded, signatures: [[...this.signatures, signature]] }\n )\n )\n\n const { signatures, encodedTx: { txType, tx } } = this.params\n this.signatures = signatures\n this.params = tx\n this.type = txType\n this.isSigned = true\n },\n /**\n * Calculate fee\n * @alias module:@aeternity/aepp-sdk/es/tx/tx-object\n * @param {Object} props\n * @return {String} fee\n */\n calculateMinFee (props = {}) {\n const params = { ...this.params, ...props }\n return calculateFee(0, this.type, { gas: params.gas, params, vsn: params.vsn })\n }\n }\n})\n\nexport default TxObject\n"],"file":"tx-object.mjs"}
|
package/es/tx/{tx.js → tx.mjs}
RENAMED
|
@@ -21,12 +21,13 @@
|
|
|
21
21
|
* @export Transaction
|
|
22
22
|
* @example import { Transaction } from '@aeternity/aepp-sdk'
|
|
23
23
|
*/
|
|
24
|
-
import ChainNode from
|
|
25
|
-
import Tx from
|
|
26
|
-
import { buildTx, calculateFee, unpackTx } from
|
|
27
|
-
import { ABI_VERSIONS, MIN_GAS_PRICE, PROTOCOL_VM_ABI, TX_TYPE, TX_TTL } from
|
|
28
|
-
import { buildContractId } from
|
|
29
|
-
import { TxObject } from
|
|
24
|
+
import ChainNode from "../chain/node.mjs";
|
|
25
|
+
import Tx from "./index.mjs";
|
|
26
|
+
import { buildTx, calculateFee, unpackTx } from "./builder/index.mjs";
|
|
27
|
+
import { ABI_VERSIONS, MIN_GAS_PRICE, PROTOCOL_VM_ABI, TX_TYPE, TX_TTL } from "./builder/schema.mjs";
|
|
28
|
+
import { buildContractId, encode } from "./builder/helpers.mjs";
|
|
29
|
+
import { TxObject } from "./tx-object.mjs";
|
|
30
|
+
import { ArgumentError, UnsupportedABIversionError, UnsupportedVMversionError, UnsupportedProtocolError, UnknownTxError } from "../utils/errors.mjs";
|
|
30
31
|
|
|
31
32
|
async function spendTx(_ref) {
|
|
32
33
|
let {
|
|
@@ -138,7 +139,8 @@ async function nameClaimTx(_ref3) {
|
|
|
138
139
|
} : await this.api.postNameClaim({ ...arguments[0],
|
|
139
140
|
nonce,
|
|
140
141
|
ttl,
|
|
141
|
-
fee: parseInt(fee)
|
|
142
|
+
fee: parseInt(fee),
|
|
143
|
+
name: encode(name, 'nm')
|
|
142
144
|
});
|
|
143
145
|
return tx;
|
|
144
146
|
}
|
|
@@ -257,7 +259,6 @@ async function contractCreateTx(_ref7) {
|
|
|
257
259
|
code,
|
|
258
260
|
vmVersion,
|
|
259
261
|
abiVersion,
|
|
260
|
-
deposit,
|
|
261
262
|
amount,
|
|
262
263
|
gas,
|
|
263
264
|
gasPrice = MIN_GAS_PRICE,
|
|
@@ -770,18 +771,18 @@ function getVmVersion(txType) {
|
|
|
770
771
|
consensusProtocolVersion
|
|
771
772
|
} = this.getNodeInfo();
|
|
772
773
|
const supportedProtocol = PROTOCOL_VM_ABI[consensusProtocolVersion];
|
|
773
|
-
if (!supportedProtocol) throw new
|
|
774
|
+
if (!supportedProtocol) throw new UnsupportedProtocolError('Not supported consensus protocol version');
|
|
774
775
|
const protocolForTX = supportedProtocol[txType];
|
|
775
|
-
if (!protocolForTX) throw new
|
|
776
|
+
if (!protocolForTX) throw new UnknownTxError('Not supported tx type');
|
|
776
777
|
abiVersion = abiVersion || protocolForTX.abiVersion[0];
|
|
777
778
|
vmVersion = vmVersion || protocolForTX.vmVersion[0];
|
|
778
779
|
|
|
779
780
|
if (!protocolForTX.vmVersion.includes(vmVersion)) {
|
|
780
|
-
throw new
|
|
781
|
+
throw new UnsupportedVMversionError(`VM VERSION ${vmVersion} do not support by this node. Supported: [${protocolForTX.vmVersion}]`);
|
|
781
782
|
}
|
|
782
783
|
|
|
783
784
|
if (!protocolForTX.abiVersion.includes(abiVersion)) {
|
|
784
|
-
throw new
|
|
785
|
+
throw new UnsupportedABIversionError(`ABI VERSION ${abiVersion} do not support by this node. Supported: [${protocolForTX.abiVersion}]`);
|
|
785
786
|
}
|
|
786
787
|
|
|
787
788
|
return {
|
|
@@ -802,7 +803,7 @@ async function calculateTtl() {
|
|
|
802
803
|
let ttl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : TX_TTL;
|
|
803
804
|
let relative = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
804
805
|
if (ttl === 0) return 0;
|
|
805
|
-
if (ttl < 0) throw new
|
|
806
|
+
if (ttl < 0) throw new ArgumentError('ttl', 'greater or equal to 0', ttl);
|
|
806
807
|
|
|
807
808
|
if (relative) {
|
|
808
809
|
const {
|
|
@@ -934,4 +935,4 @@ const Transaction = ChainNode.compose(Tx, {
|
|
|
934
935
|
}
|
|
935
936
|
});
|
|
936
937
|
export default Transaction;
|
|
937
|
-
//# sourceMappingURL=tx.
|
|
938
|
+
//# sourceMappingURL=tx.mjs.map
|
package/es/tx/tx.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/tx/tx.js"],"names":["ChainNode","Tx","buildTx","calculateFee","unpackTx","ABI_VERSIONS","MIN_GAS_PRICE","PROTOCOL_VM_ABI","TX_TYPE","TX_TTL","buildContractId","encode","TxObject","ArgumentError","UnsupportedABIversionError","UnsupportedVMversionError","UnsupportedProtocolError","UnknownTxError","spendTx","senderId","recipientId","amount","payload","fee","ttl","nonce","prepareTxParams","spend","arguments","tx","nativeMode","params","type","encodedTx","api","postSpend","parseInt","namePreclaimTx","accountId","commitmentId","namePreClaim","postNamePreclaim","nameClaimTx","name","nameSalt","vsn","nameClaim","postNameClaim","nameTransferTx","nameId","nameTransfer","postNameTransfer","nameUpdateTx","nameTtl","pointers","clientTtl","nameUpdate","postNameUpdate","nameRevokeTx","nameRevoke","postNameRevoke","contractCreateTx","ownerId","code","vmVersion","abiVersion","gas","gasPrice","callData","ctVersion","getVmVersion","contractCreate","contractId","postContractCreate","contractCallTx","callerId","contractCall","postContractCall","oracleRegisterTx","queryFormat","responseFormat","queryFee","oracleTtl","NO_ABI","oracleRegister","postOracleRegister","oracleExtendTx","oracleId","oracleExtend","postOracleExtend","oraclePostQueryTx","responseTtl","query","queryTtl","oracleQuery","postOracleQuery","oracleRespondTx","queryId","response","oracleResponse","postOracleRespond","channelCloseSoloTx","channelId","fromId","poi","channelCloseSolo","postChannelCloseSolo","channelSlashTx","channelSlash","postChannelSlash","channelSettleTx","initiatorAmountFinal","responderAmountFinal","channelSettle","postChannelSettle","channelSnapshotSoloTx","channelSnapshotSolo","postChannelSnapshotSolo","gaAttachTx","authFun","gaAttach","payingForTx","payerId","args","payingFor","txType","consensusProtocolVersion","getNodeInfo","supportedProtocol","protocolForTX","includes","calculateTtl","relative","height","getCurrentKeyBlock","getAccountNonce","accountNonce","getAccountByPubkey","catch","n","t","f","absoluteTtl","strategy","getAccountNextNonce","e","nextNonce","call","showWarning","Transaction","compose","init","props","methods"],"mappings":"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","sourcesContent":["/*\n * ISC License (ISC)\n * Copyright (c) 2018 aeternity developers\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n * PERFORMANCE OF THIS SOFTWARE.\n */\n\n/**\n * Transaction module\n * @module @aeternity/aepp-sdk/es/tx/tx\n * @export Transaction\n * @example import { Transaction } from '@aeternity/aepp-sdk'\n */\n\nimport ChainNode from '../chain/node'\nimport Tx from './'\nimport { buildTx, calculateFee, unpackTx } from './builder'\nimport { ABI_VERSIONS, MIN_GAS_PRICE, PROTOCOL_VM_ABI, TX_TYPE, TX_TTL } from './builder/schema'\nimport { buildContractId, encode } from './builder/helpers'\nimport { TxObject } from './tx-object'\nimport {\n ArgumentError,\n UnsupportedABIversionError,\n UnsupportedVMversionError,\n UnsupportedProtocolError,\n UnknownTxError\n} from '../utils/errors'\n\nasync function spendTx ({ senderId, recipientId, amount, payload = '' }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.spend, { senderId, ...arguments[0], payload }\n )\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: {\n ...arguments[0],\n recipientId,\n senderId,\n nonce,\n ttl,\n payload\n },\n type: TX_TYPE.spend\n }).encodedTx\n }\n : await this.api.postSpend({\n ...arguments[0],\n amount: parseInt(amount),\n recipientId,\n senderId,\n nonce,\n ttl,\n fee: parseInt(fee),\n payload\n })\n\n return tx\n}\n\nasync function namePreclaimTx ({ accountId, commitmentId }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.namePreClaim, { senderId: accountId, ...arguments[0] }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee },\n type: TX_TYPE.namePreClaim\n }).encodedTx\n }\n : await this.api.postNamePreclaim({ ...arguments[0], nonce, ttl, fee: parseInt(fee) })\n\n return tx\n}\n\nasync function nameClaimTx ({ accountId, name, nameSalt, vsn = 2 }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.nameClaim, { senderId: accountId, ...arguments[0], vsn }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee, vsn },\n type: TX_TYPE.nameClaim\n }).encodedTx\n }\n : await this.api.postNameClaim({\n ...arguments[0], nonce, ttl, fee: parseInt(fee), name: encode(name, 'nm')\n })\n\n return tx\n}\n\nasync function nameTransferTx ({ accountId, nameId, recipientId }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.nameTransfer, { senderId: accountId, ...arguments[0] }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], recipientId, nonce, ttl, fee },\n type: TX_TYPE.nameTransfer\n }).encodedTx\n }\n : await this.api.postNameTransfer({\n ...arguments[0], recipientId, nonce, ttl, fee: parseInt(fee)\n })\n\n return tx\n}\n\nasync function nameUpdateTx ({ accountId, nameId, nameTtl, pointers, clientTtl }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.nameUpdate, { senderId: accountId, ...arguments[0] }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee },\n type: TX_TYPE.nameUpdate\n }).encodedTx\n }\n : await this.api.postNameUpdate({ ...arguments[0], nonce, ttl, fee: parseInt(fee) })\n\n return tx\n}\n\nasync function nameRevokeTx ({ accountId, nameId }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.nameRevoke, { senderId: accountId, ...arguments[0] }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee },\n type: TX_TYPE.nameRevoke\n }).encodedTx\n }\n : await this.api.postNameRevoke({ ...arguments[0], nonce, ttl, fee: parseInt(fee) })\n\n return tx\n}\n\nasync function contractCreateTx ({\n ownerId, code, vmVersion, abiVersion, amount, gas, gasPrice = MIN_GAS_PRICE, callData\n}) {\n // Get VM_ABI version\n const ctVersion = this.getVmVersion(TX_TYPE.contractCreate, arguments[0])\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.contractCreate, { senderId: ownerId, ...arguments[0], ctVersion, gasPrice }\n )\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n return this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee, ctVersion, gasPrice },\n type: TX_TYPE.contractCreate\n }).encodedTx,\n contractId: buildContractId(ownerId, nonce)\n }\n : this.api.postContractCreate({\n ...arguments[0],\n nonce,\n ttl,\n fee: parseInt(fee),\n gas: parseInt(gas),\n gasPrice,\n vmVersion: ctVersion.vmVersion,\n abiVersion: ctVersion.abiVersion\n })\n}\n\nasync function contractCallTx ({\n callerId, contractId, abiVersion, amount, gas, gasPrice = MIN_GAS_PRICE, callData\n}) {\n const ctVersion = this.getVmVersion(TX_TYPE.contractCall, arguments[0])\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.contractCall,\n { senderId: callerId, ...arguments[0], gasPrice, abiVersion: ctVersion.abiVersion }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee, abiVersion: ctVersion.abiVersion, gasPrice },\n type: TX_TYPE.contractCall\n }).encodedTx\n }\n : await this.api.postContractCall({\n ...arguments[0],\n nonce,\n ttl,\n fee: parseInt(fee),\n gas: parseInt(gas),\n gasPrice,\n abiVersion: ctVersion.abiVersion\n })\n\n return tx\n}\n\nasync function oracleRegisterTx ({\n accountId, queryFormat, responseFormat, queryFee, oracleTtl, abiVersion = ABI_VERSIONS.NO_ABI\n}) {\n // const { abiVersion: abi } = this.getVmVersion(TX_TYPE.oracleRegister, arguments[0])\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.oracleRegister, { senderId: accountId, ...arguments[0], abiVersion }\n )\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: {\n accountId,\n queryFee,\n abiVersion,\n fee,\n oracleTtl,\n nonce,\n ttl,\n queryFormat,\n responseFormat\n },\n type: TX_TYPE.oracleRegister\n }).encodedTx\n }\n : await this.api.postOracleRegister({\n accountId,\n queryFee,\n abiVersion,\n fee: parseInt(fee),\n oracleTtl,\n nonce,\n ttl,\n queryFormat,\n responseFormat\n })\n\n return tx\n}\n\nasync function oracleExtendTx ({ oracleId, callerId, oracleTtl }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.oracleExtend, { senderId: callerId, ...arguments[0] }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { oracleId, fee, oracleTtl, nonce, ttl },\n type: TX_TYPE.oracleExtend\n }).encodedTx\n }\n : await this.api.postOracleExtend({ oracleId, fee: parseInt(fee), oracleTtl, nonce, ttl })\n\n return tx\n}\n\nasync function oraclePostQueryTx ({ oracleId, responseTtl, query, queryTtl, queryFee, senderId }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.oracleQuery, { senderId, ...arguments[0] }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { oracleId, responseTtl, query, queryTtl, fee, queryFee, ttl, nonce, senderId },\n type: TX_TYPE.oracleQuery\n }).encodedTx\n }\n : await this.api.postOracleQuery({\n oracleId,\n responseTtl,\n query,\n queryTtl,\n fee: parseInt(fee),\n queryFee,\n ttl,\n nonce,\n senderId\n })\n\n return tx\n}\n\nasync function oracleRespondTx ({ oracleId, callerId, responseTtl, queryId, response }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.oracleResponse, { senderId: callerId, ...arguments[0] }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? {\n tx: TxObject({\n params: { oracleId, responseTtl, queryId, response, fee, ttl, nonce },\n type: TX_TYPE.oracleResponse\n }).encodedTx\n }\n : await this.api.postOracleRespond({\n oracleId, responseTtl, queryId, response, fee: parseInt(fee), ttl, nonce\n })\n return tx\n}\n\nasync function channelCloseSoloTx ({ channelId, fromId, payload, poi }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.channelCloseSolo, { senderId: fromId, ...arguments[0], payload }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? buildTx({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n poi,\n ttl,\n fee,\n nonce\n }, TX_TYPE.channelCloseSolo)\n : await this.api.postChannelCloseSolo({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n poi,\n ttl,\n fee: parseInt(fee),\n nonce\n })\n\n return tx\n}\n\nasync function channelSlashTx ({ channelId, fromId, payload, poi }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.channelSlash, { senderId: fromId, ...arguments[0], payload }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? buildTx({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n poi,\n ttl,\n fee,\n nonce\n }, TX_TYPE.channelSlash)\n : await this.api.postChannelSlash({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n poi,\n ttl,\n fee: parseInt(fee),\n nonce\n })\n\n return tx\n}\n\nasync function channelSettleTx ({ channelId, fromId, initiatorAmountFinal, responderAmountFinal }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.channelSettle, { senderId: fromId, ...arguments[0] }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? buildTx({\n ...arguments[0],\n channelId,\n fromId,\n initiatorAmountFinal,\n responderAmountFinal,\n ttl,\n fee,\n nonce\n }, TX_TYPE.channelSettle)\n : await this.api.postChannelSettle({\n ...arguments[0],\n channelId,\n fromId,\n initiatorAmountFinal: parseInt(initiatorAmountFinal),\n responderAmountFinal: parseInt(responderAmountFinal),\n ttl,\n fee: parseInt(fee),\n nonce\n })\n\n return tx\n}\n\nasync function channelSnapshotSoloTx ({ channelId, fromId, payload }) {\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.channelSnapshotSolo, { senderId: fromId, ...arguments[0], payload }\n )\n\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n const { tx } = this.nativeMode\n ? buildTx({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n ttl,\n fee,\n nonce\n }, TX_TYPE.channelSnapshotSolo)\n : await this.api.postChannelSnapshotSolo({\n ...arguments[0],\n channelId,\n fromId,\n payload,\n ttl,\n fee: parseInt(fee),\n nonce\n })\n\n return tx\n}\n\nasync function gaAttachTx ({\n ownerId, code, vmVersion, abiVersion, authFun, gas, gasPrice = MIN_GAS_PRICE, callData\n}) {\n // Get VM_ABI version\n const ctVersion = this.getVmVersion(TX_TYPE.contractCreate, arguments[0])\n // Calculate fee, get absolute ttl (ttl + height), get account nonce\n const { fee, ttl, nonce } = await this.prepareTxParams(\n TX_TYPE.gaAttach, { senderId: ownerId, ...arguments[0], ctVersion, gasPrice }\n )\n // Build transaction using sdk (if nativeMode) or build on `AETERNITY NODE` side\n return {\n tx: TxObject({\n params: { ...arguments[0], nonce, ttl, fee, ctVersion, gasPrice },\n type: TX_TYPE.gaAttach\n }).encodedTx,\n contractId: buildContractId(ownerId, nonce)\n }\n}\n\nasync function payingForTx ({ tx, payerId, ...args }) {\n const params = { tx: unpackTx(tx), payerId }\n const { fee, nonce } = await this.prepareTxParams(TX_TYPE.payingFor, {\n ...params, ...args, senderId: payerId\n })\n return buildTx({ ...params, ...args, fee, nonce }, TX_TYPE.payingFor).tx\n}\n\n/**\n * Validated vm/abi version or get default based on transaction type and NODE version\n *\n * @param {string} txType Type of transaction\n * @param {object} vmAbi Object with vm and abi version fields\n * @return {object} Object with vm/abi version ({ vmVersion: number, abiVersion: number })\n */\nfunction getVmVersion (txType, { vmVersion, abiVersion } = {}) {\n const { consensusProtocolVersion } = this.getNodeInfo()\n const supportedProtocol = PROTOCOL_VM_ABI[consensusProtocolVersion]\n if (!supportedProtocol) throw new UnsupportedProtocolError('Not supported consensus protocol version')\n const protocolForTX = supportedProtocol[txType]\n if (!protocolForTX) throw new UnknownTxError('Not supported tx type')\n\n abiVersion = abiVersion || protocolForTX.abiVersion[0]\n vmVersion = vmVersion || protocolForTX.vmVersion[0]\n if (!protocolForTX.vmVersion.includes(vmVersion)) {\n throw new UnsupportedVMversionError(`VM VERSION ${vmVersion} do not support by this node. Supported: [${protocolForTX.vmVersion}]`)\n }\n if (!protocolForTX.abiVersion.includes(abiVersion)) {\n throw new UnsupportedABIversionError(`ABI VERSION ${abiVersion} do not support by this node. Supported: [${protocolForTX.abiVersion}]`)\n }\n\n return { vmVersion, abiVersion }\n}\n\n/**\n * Compute the absolute ttl by adding the ttl to the current height of the chain\n *\n * @param {number} ttl\n * @param {boolean} relative ttl is absolute or relative(default: true(relative))\n * @return {number} Absolute Ttl\n */\nasync function calculateTtl (ttl = TX_TTL, relative = true) {\n if (ttl === 0) return 0\n if (ttl < 0) throw new ArgumentError('ttl', 'greater or equal to 0', ttl)\n\n if (relative) {\n const { height } = await this.api.getCurrentKeyBlock()\n return +(height) + ttl\n }\n return ttl\n}\n\n/**\n * Get the next nonce to be used for a transaction for an account\n *\n * @param {string} accountId\n * @param {number} nonce\n * @return {number} Next Nonce\n */\nasync function getAccountNonce (accountId, nonce) {\n if (nonce) return nonce\n const { nonce: accountNonce } = await this.api.getAccountByPubkey(accountId)\n .catch(() => ({ nonce: 0 }))\n return accountNonce + 1\n}\n\n/**\n * Calculate fee, get absolute ttl (ttl + height), get account nonce\n *\n * @param {String} txType Type of transaction\n * @param {Object} params Object which contains all tx data\n * @return {Object} { ttl, nonce, fee } Object with account nonce, absolute ttl and transaction fee\n */\nasync function prepareTxParams (\n txType,\n { senderId, nonce: n, ttl: t, fee: f, gas, absoluteTtl, vsn, strategy }\n) {\n n = n || (\n await this.api.getAccountNextNonce(senderId, { strategy }).catch(e => ({ nextNonce: 1 }))\n ).nextNonce\n const ttl = await calculateTtl.call(this, t, !absoluteTtl)\n const fee = calculateFee(\n f,\n txType,\n { showWarning: this.showWarning, gas, params: { ...arguments[1], nonce: n, ttl }, vsn }\n )\n return { fee, ttl, nonce: n }\n}\n\n/**\n * Transaction Stamp\n *\n * This is implementation of [Tx](api/tx.md) relays\n * the creation of transactions to {@link module:@aeternity/aepp-sdk/es/Node}.\n * This stamp provide ability to create native transaction's,\n * or transaction's using Node API.\n * As there is no built-in security between Node and client communication,\n * creating transaction using {@link module:@aeternity/aepp-sdk/es/Node} API\n * must never be used for production but can be very useful to verify other\n * implementations.\n * @function\n * @alias module:@aeternity/aepp-sdk/es/tx/tx\n * @rtype Stamp\n * @param {Object} [options={}] - Initializer object\n * @param {Boolean} [options.nativeMode=true] options.nativeMode - Use Native build of transaction's\n * @param {String} options.url - Node url\n * @param {String} options.internalUrl - Node internal url\n * @return {Object} Transaction instance\n * @example Transaction({url: 'https://testnet.aeternity.io/'})\n */\nconst Transaction = ChainNode.compose(Tx, {\n init ({ nativeMode = true, showWarning = false }) {\n this.nativeMode = nativeMode\n this.showWarning = showWarning\n },\n props: {\n nativeMode: true,\n showWarning: false\n },\n methods: {\n spendTx,\n namePreclaimTx,\n nameClaimTx,\n nameTransferTx,\n nameUpdateTx,\n nameRevokeTx,\n contractCreateTx,\n contractCallTx,\n prepareTxParams,\n oracleRegisterTx,\n oracleExtendTx,\n oraclePostQueryTx,\n oracleRespondTx,\n channelCloseSoloTx,\n channelSlashTx,\n channelSettleTx,\n channelSnapshotSoloTx,\n gaAttachTx,\n payingForTx,\n getAccountNonce,\n getVmVersion\n }\n})\n\nexport default Transaction\n"],"file":"tx.mjs"}
|