algosdk 2.9.0 → 3.0.0-beta.1
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 +8 -4
- package/dist/browser/algosdk.min.js +1 -1
- package/dist/browser/algosdk.min.js.LICENSE.txt +0 -9
- package/dist/browser/algosdk.min.js.map +1 -1
- package/dist/cjs/abi/abi_type.js +34 -27
- package/dist/cjs/abi/abi_type.js.map +1 -1
- package/dist/cjs/abi/contract.js +3 -3
- package/dist/cjs/abi/contract.js.map +1 -1
- package/dist/cjs/abi/index.js +6 -6
- package/dist/cjs/abi/index.js.map +1 -1
- package/dist/cjs/abi/interface.js +3 -3
- package/dist/cjs/abi/interface.js.map +1 -1
- package/dist/cjs/abi/method.js +10 -10
- package/dist/cjs/abi/method.js.map +1 -1
- package/dist/cjs/abi/reference.js +1 -1
- package/dist/cjs/abi/reference.js.map +1 -1
- package/dist/cjs/abi/transaction.js +2 -2
- package/dist/cjs/abi/transaction.js.map +1 -1
- package/dist/cjs/account.js +4 -4
- package/dist/cjs/account.js.map +1 -1
- package/dist/cjs/boxStorage.js +17 -17
- package/dist/cjs/boxStorage.js.map +1 -1
- package/dist/cjs/client/client.js +77 -41
- package/dist/cjs/client/client.js.map +1 -1
- package/dist/cjs/client/index.js +29 -0
- package/dist/cjs/client/index.js.map +1 -0
- package/dist/cjs/client/kmd.js +69 -86
- package/dist/cjs/client/kmd.js.map +1 -1
- package/dist/cjs/client/urlTokenBaseHTTPClient.js +16 -11
- package/dist/cjs/client/urlTokenBaseHTTPClient.js.map +1 -1
- package/dist/cjs/client/v2/algod/accountApplicationInformation.js +11 -7
- package/dist/cjs/client/v2/algod/accountApplicationInformation.js.map +1 -1
- package/dist/cjs/client/v2/algod/accountAssetInformation.js +11 -7
- package/dist/cjs/client/v2/algod/accountAssetInformation.js.map +1 -1
- package/dist/cjs/client/v2/algod/accountInformation.js +11 -6
- package/dist/cjs/client/v2/algod/accountInformation.js.map +1 -1
- package/dist/cjs/client/v2/algod/algod.js +85 -83
- package/dist/cjs/client/v2/algod/algod.js.map +1 -1
- package/dist/cjs/client/v2/algod/block.js +6 -33
- package/dist/cjs/client/v2/algod/block.js.map +1 -1
- package/dist/cjs/client/v2/algod/compile.js +17 -11
- package/dist/cjs/client/v2/algod/compile.js.map +1 -1
- package/dist/cjs/client/v2/algod/disassemble.js +17 -11
- package/dist/cjs/client/v2/algod/disassemble.js.map +1 -1
- package/dist/cjs/client/v2/algod/dryrun.js +18 -37
- package/dist/cjs/client/v2/algod/dryrun.js.map +1 -1
- package/dist/cjs/client/v2/algod/genesis.js +6 -2
- package/dist/cjs/client/v2/algod/genesis.js.map +1 -1
- package/dist/cjs/client/v2/algod/getApplicationBoxByName.js +10 -10
- package/dist/cjs/client/v2/algod/getApplicationBoxByName.js.map +1 -1
- package/dist/cjs/client/v2/algod/getApplicationBoxes.js +8 -8
- package/dist/cjs/client/v2/algod/getApplicationBoxes.js.map +1 -1
- package/dist/cjs/client/v2/algod/getApplicationByID.js +10 -5
- package/dist/cjs/client/v2/algod/getApplicationByID.js.map +1 -1
- package/dist/cjs/client/v2/algod/getAssetByID.js +10 -5
- package/dist/cjs/client/v2/algod/getAssetByID.js.map +1 -1
- package/dist/cjs/client/v2/algod/getBlockHash.js +10 -6
- package/dist/cjs/client/v2/algod/getBlockHash.js.map +1 -1
- package/dist/cjs/client/v2/algod/getBlockOffsetTimestamp.js +6 -5
- package/dist/cjs/client/v2/algod/getBlockOffsetTimestamp.js.map +1 -1
- package/dist/cjs/client/v2/algod/getBlockTxids.js +10 -4
- package/dist/cjs/client/v2/algod/getBlockTxids.js.map +1 -1
- package/dist/cjs/client/v2/algod/getLedgerStateDelta.js +11 -6
- package/dist/cjs/client/v2/algod/getLedgerStateDelta.js.map +1 -1
- package/dist/cjs/client/v2/algod/getLedgerStateDeltaForTransactionGroup.js +11 -6
- package/dist/cjs/client/v2/algod/getLedgerStateDeltaForTransactionGroup.js.map +1 -1
- package/dist/cjs/client/v2/algod/getSyncRound.js +6 -5
- package/dist/cjs/client/v2/algod/getSyncRound.js.map +1 -1
- package/dist/cjs/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.js +9 -9
- package/dist/cjs/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.js.map +1 -1
- package/dist/cjs/client/v2/algod/getTransactionProof.js +10 -6
- package/dist/cjs/client/v2/algod/getTransactionProof.js.map +1 -1
- package/dist/cjs/client/v2/algod/healthCheck.js +4 -9
- package/dist/cjs/client/v2/algod/healthCheck.js.map +1 -1
- package/dist/cjs/{types → client/v2/algod}/index.js +5 -3
- package/dist/cjs/client/v2/algod/index.js.map +1 -0
- package/dist/cjs/client/v2/algod/lightBlockHeaderProof.js +10 -5
- package/dist/cjs/client/v2/algod/lightBlockHeaderProof.js.map +1 -1
- package/dist/cjs/client/v2/algod/models/types.js +3701 -1828
- package/dist/cjs/client/v2/algod/models/types.js.map +1 -1
- package/dist/cjs/client/v2/algod/pendingTransactionInformation.js +6 -32
- package/dist/cjs/client/v2/algod/pendingTransactionInformation.js.map +1 -1
- package/dist/cjs/client/v2/algod/pendingTransactions.js +6 -31
- package/dist/cjs/client/v2/algod/pendingTransactions.js.map +1 -1
- package/dist/cjs/client/v2/algod/pendingTransactionsByAddress.js +7 -33
- package/dist/cjs/client/v2/algod/pendingTransactionsByAddress.js.map +1 -1
- package/dist/cjs/client/v2/algod/ready.js +4 -2
- package/dist/cjs/client/v2/algod/ready.js.map +1 -1
- package/dist/cjs/client/v2/algod/sendRawTransaction.js +17 -8
- package/dist/cjs/client/v2/algod/sendRawTransaction.js.map +1 -1
- package/dist/cjs/client/v2/algod/setBlockOffsetTimestamp.js +13 -8
- package/dist/cjs/client/v2/algod/setBlockOffsetTimestamp.js.map +1 -1
- package/dist/cjs/client/v2/algod/setSyncRound.js +13 -8
- package/dist/cjs/client/v2/algod/setSyncRound.js.map +1 -1
- package/dist/cjs/client/v2/algod/simulateTransaction.js +15 -35
- package/dist/cjs/client/v2/algod/simulateTransaction.js.map +1 -1
- package/dist/cjs/client/v2/algod/stateproof.js +10 -5
- package/dist/cjs/client/v2/algod/stateproof.js.map +1 -1
- package/dist/cjs/client/v2/algod/status.js +8 -2
- package/dist/cjs/client/v2/algod/status.js.map +1 -1
- package/dist/cjs/client/v2/algod/statusAfterBlock.js +10 -5
- package/dist/cjs/client/v2/algod/statusAfterBlock.js.map +1 -1
- package/dist/cjs/client/v2/algod/suggestedParams.js +13 -9
- package/dist/cjs/client/v2/algod/suggestedParams.js.map +1 -1
- package/dist/cjs/client/v2/algod/supply.js +8 -2
- package/dist/cjs/client/v2/algod/supply.js.map +1 -1
- package/dist/cjs/client/v2/algod/unsetSyncRound.js +11 -5
- package/dist/cjs/client/v2/algod/unsetSyncRound.js.map +1 -1
- package/dist/cjs/client/v2/algod/versions.js +8 -2
- package/dist/cjs/client/v2/algod/versions.js.map +1 -1
- package/dist/cjs/client/v2/indexer/index.js +22 -0
- package/dist/cjs/client/v2/indexer/index.js.map +1 -0
- package/dist/cjs/client/v2/indexer/indexer.js +44 -43
- package/dist/cjs/client/v2/indexer/indexer.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupAccountAppLocalStates.js +11 -6
- package/dist/cjs/client/v2/indexer/lookupAccountAppLocalStates.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupAccountAssets.js +11 -6
- package/dist/cjs/client/v2/indexer/lookupAccountAssets.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupAccountByID.js +11 -6
- package/dist/cjs/client/v2/indexer/lookupAccountByID.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupAccountCreatedApplications.js +11 -6
- package/dist/cjs/client/v2/indexer/lookupAccountCreatedApplications.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupAccountCreatedAssets.js +11 -6
- package/dist/cjs/client/v2/indexer/lookupAccountCreatedAssets.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupAccountTransactions.js +19 -12
- package/dist/cjs/client/v2/indexer/lookupAccountTransactions.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupApplicationBoxByIDandName.js +10 -10
- package/dist/cjs/client/v2/indexer/lookupApplicationBoxByIDandName.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupApplicationLogs.js +10 -5
- package/dist/cjs/client/v2/indexer/lookupApplicationLogs.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupApplications.js +10 -5
- package/dist/cjs/client/v2/indexer/lookupApplications.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupAssetBalances.js +10 -5
- package/dist/cjs/client/v2/indexer/lookupAssetBalances.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupAssetByID.js +10 -5
- package/dist/cjs/client/v2/indexer/lookupAssetByID.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupAssetTransactions.js +19 -12
- package/dist/cjs/client/v2/indexer/lookupAssetTransactions.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupBlock.js +10 -5
- package/dist/cjs/client/v2/indexer/lookupBlock.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupTransactionByID.js +10 -5
- package/dist/cjs/client/v2/indexer/lookupTransactionByID.js.map +1 -1
- package/dist/cjs/client/v2/indexer/makeHealthCheck.js +8 -2
- package/dist/cjs/client/v2/indexer/makeHealthCheck.js.map +1 -1
- package/dist/cjs/client/v2/indexer/models/types.js +3591 -1651
- package/dist/cjs/client/v2/indexer/models/types.js.map +1 -1
- package/dist/cjs/client/v2/indexer/searchAccounts.js +9 -3
- package/dist/cjs/client/v2/indexer/searchAccounts.js.map +1 -1
- package/dist/cjs/client/v2/indexer/searchForApplicationBoxes.js +8 -8
- package/dist/cjs/client/v2/indexer/searchForApplicationBoxes.js.map +1 -1
- package/dist/cjs/client/v2/indexer/searchForApplications.js +9 -3
- package/dist/cjs/client/v2/indexer/searchForApplications.js.map +1 -1
- package/dist/cjs/client/v2/indexer/searchForAssets.js +9 -3
- package/dist/cjs/client/v2/indexer/searchForAssets.js.map +1 -1
- package/dist/cjs/client/v2/indexer/searchForTransactions.js +17 -9
- package/dist/cjs/client/v2/indexer/searchForTransactions.js.map +1 -1
- package/dist/cjs/client/v2/jsonrequest.js +22 -54
- package/dist/cjs/client/v2/jsonrequest.js.map +1 -1
- package/dist/cjs/client/v2/serviceClient.js +5 -25
- package/dist/cjs/client/v2/serviceClient.js.map +1 -1
- package/dist/cjs/client/v2/untypedmodel.js +22 -0
- package/dist/cjs/client/v2/untypedmodel.js.map +1 -0
- package/dist/cjs/composer.js +64 -58
- package/dist/cjs/composer.js.map +1 -1
- package/dist/cjs/convert.js.map +1 -1
- package/dist/cjs/dryrun.js +107 -203
- package/dist/cjs/dryrun.js.map +1 -1
- package/dist/cjs/encoding/address.js +88 -104
- package/dist/cjs/encoding/address.js.map +1 -1
- package/dist/cjs/encoding/bigint.js +2 -3
- package/dist/cjs/encoding/bigint.js.map +1 -1
- package/dist/cjs/encoding/binarydata.js +82 -0
- package/dist/cjs/encoding/binarydata.js.map +1 -0
- package/dist/cjs/encoding/encoding.js +353 -38
- package/dist/cjs/encoding/encoding.js.map +1 -1
- package/dist/cjs/encoding/schema/address.js +41 -0
- package/dist/cjs/encoding/schema/address.js.map +1 -0
- package/dist/cjs/encoding/schema/array.js +43 -0
- package/dist/cjs/encoding/schema/array.js.map +1 -0
- package/dist/cjs/encoding/schema/binarystring.js +55 -0
- package/dist/cjs/encoding/schema/binarystring.js.map +1 -0
- package/dist/cjs/encoding/schema/blockhash.js +67 -0
- package/dist/cjs/encoding/schema/blockhash.js.map +1 -0
- package/dist/cjs/encoding/schema/boolean.js +42 -0
- package/dist/cjs/encoding/schema/boolean.js.map +1 -0
- package/dist/cjs/encoding/schema/bytearray.js +98 -0
- package/dist/cjs/encoding/schema/bytearray.js.map +1 -0
- package/dist/cjs/encoding/schema/index.js +34 -0
- package/dist/cjs/encoding/schema/index.js.map +1 -0
- package/dist/cjs/encoding/schema/map.js +528 -0
- package/dist/cjs/encoding/schema/map.js.map +1 -0
- package/dist/cjs/encoding/schema/optional.js +58 -0
- package/dist/cjs/encoding/schema/optional.js.map +1 -0
- package/dist/cjs/encoding/schema/string.js +43 -0
- package/dist/cjs/encoding/schema/string.js.map +1 -0
- package/dist/cjs/encoding/schema/uint64.js +36 -0
- package/dist/cjs/encoding/schema/uint64.js.map +1 -0
- package/dist/cjs/encoding/schema/untyped.js +33 -0
- package/dist/cjs/encoding/schema/untyped.js.map +1 -0
- package/dist/cjs/encoding/uint64.js +2 -2
- package/dist/cjs/encoding/uint64.js.map +1 -1
- package/dist/cjs/group.js +23 -60
- package/dist/cjs/group.js.map +1 -1
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/logic/sourcemap.js +56 -25
- package/dist/cjs/logic/sourcemap.js.map +1 -1
- package/dist/cjs/logicsig.js +113 -146
- package/dist/cjs/logicsig.js.map +1 -1
- package/dist/cjs/main.js +113 -122
- package/dist/cjs/main.js.map +1 -1
- package/dist/cjs/makeTxn.js +310 -570
- package/dist/cjs/makeTxn.js.map +1 -1
- package/dist/cjs/mnemonic/mnemonic.js +8 -8
- package/dist/cjs/mnemonic/mnemonic.js.map +1 -1
- package/dist/cjs/multisig.js +60 -312
- package/dist/cjs/multisig.js.map +1 -1
- package/dist/cjs/multisigSigning.js +285 -0
- package/dist/cjs/multisigSigning.js.map +1 -0
- package/dist/cjs/nacl/naclWrappers.js +2 -2
- package/dist/cjs/nacl/naclWrappers.js.map +1 -1
- package/dist/cjs/signedTransaction.js +106 -0
- package/dist/cjs/signedTransaction.js.map +1 -0
- package/dist/cjs/signer.js +7 -7
- package/dist/cjs/signer.js.map +1 -1
- package/dist/cjs/signing.js +105 -0
- package/dist/cjs/signing.js.map +1 -0
- package/dist/cjs/stateproof.js +421 -0
- package/dist/cjs/stateproof.js.map +1 -0
- package/dist/cjs/transaction.js +724 -1009
- package/dist/cjs/transaction.js.map +1 -1
- package/dist/cjs/types/block.js +813 -0
- package/dist/cjs/types/block.js.map +1 -0
- package/dist/cjs/types/intDecoding.js +1 -1
- package/dist/cjs/types/intDecoding.js.map +1 -1
- package/dist/cjs/types/statedelta.js +1155 -0
- package/dist/cjs/types/statedelta.js.map +1 -0
- package/dist/cjs/types/transactions/base.js +22 -5
- package/dist/cjs/types/transactions/base.js.map +1 -1
- package/dist/cjs/types/transactions/encoded.js +67 -0
- package/dist/cjs/types/transactions/encoded.js.map +1 -1
- package/dist/cjs/types/transactions/index.js +2 -5
- package/dist/cjs/types/transactions/index.js.map +1 -1
- package/dist/cjs/utils/utils.js +86 -22
- package/dist/cjs/utils/utils.js.map +1 -1
- package/dist/cjs/wait.js +4 -4
- package/dist/cjs/wait.js.map +1 -1
- package/dist/esm/abi/abi_type.js +22 -15
- package/dist/esm/abi/abi_type.js.map +1 -1
- package/dist/esm/abi/contract.js +1 -1
- package/dist/esm/abi/contract.js.map +1 -1
- package/dist/esm/abi/index.js +6 -6
- package/dist/esm/abi/index.js.map +1 -1
- package/dist/esm/abi/interface.js +1 -1
- package/dist/esm/abi/interface.js.map +1 -1
- package/dist/esm/abi/method.js +4 -4
- package/dist/esm/abi/method.js.map +1 -1
- package/dist/esm/abi/transaction.js +1 -1
- package/dist/esm/abi/transaction.js.map +1 -1
- package/dist/esm/account.js +4 -4
- package/dist/esm/account.js.map +1 -1
- package/dist/esm/boxStorage.js +15 -15
- package/dist/esm/boxStorage.js.map +1 -1
- package/dist/esm/client/client.js +74 -40
- package/dist/esm/client/client.js.map +1 -1
- package/dist/esm/client/index.js +7 -0
- package/dist/esm/client/index.js.map +1 -0
- package/dist/esm/client/kmd.js +67 -62
- package/dist/esm/client/kmd.js.map +1 -1
- package/dist/esm/client/urlTokenBaseHTTPClient.js +16 -11
- package/dist/esm/client/urlTokenBaseHTTPClient.js.map +1 -1
- package/dist/esm/client/v2/algod/accountApplicationInformation.js +10 -6
- package/dist/esm/client/v2/algod/accountApplicationInformation.js.map +1 -1
- package/dist/esm/client/v2/algod/accountAssetInformation.js +10 -6
- package/dist/esm/client/v2/algod/accountAssetInformation.js.map +1 -1
- package/dist/esm/client/v2/algod/accountInformation.js +10 -5
- package/dist/esm/client/v2/algod/accountInformation.js.map +1 -1
- package/dist/esm/client/v2/algod/algod.js +71 -70
- package/dist/esm/client/v2/algod/algod.js.map +1 -1
- package/dist/esm/client/v2/algod/block.js +5 -9
- package/dist/esm/client/v2/algod/block.js.map +1 -1
- package/dist/esm/client/v2/algod/compile.js +16 -10
- package/dist/esm/client/v2/algod/compile.js.map +1 -1
- package/dist/esm/client/v2/algod/disassemble.js +16 -10
- package/dist/esm/client/v2/algod/disassemble.js.map +1 -1
- package/dist/esm/client/v2/algod/dryrun.js +16 -12
- package/dist/esm/client/v2/algod/dryrun.js.map +1 -1
- package/dist/esm/client/v2/algod/genesis.js +5 -1
- package/dist/esm/client/v2/algod/genesis.js.map +1 -1
- package/dist/esm/client/v2/algod/getApplicationBoxByName.js +9 -9
- package/dist/esm/client/v2/algod/getApplicationBoxByName.js.map +1 -1
- package/dist/esm/client/v2/algod/getApplicationBoxes.js +7 -7
- package/dist/esm/client/v2/algod/getApplicationBoxes.js.map +1 -1
- package/dist/esm/client/v2/algod/getApplicationByID.js +9 -4
- package/dist/esm/client/v2/algod/getApplicationByID.js.map +1 -1
- package/dist/esm/client/v2/algod/getAssetByID.js +9 -4
- package/dist/esm/client/v2/algod/getAssetByID.js.map +1 -1
- package/dist/esm/client/v2/algod/getBlockHash.js +9 -5
- package/dist/esm/client/v2/algod/getBlockHash.js.map +1 -1
- package/dist/esm/client/v2/algod/getBlockOffsetTimestamp.js +5 -4
- package/dist/esm/client/v2/algod/getBlockOffsetTimestamp.js.map +1 -1
- package/dist/esm/client/v2/algod/getBlockTxids.js +9 -3
- package/dist/esm/client/v2/algod/getBlockTxids.js.map +1 -1
- package/dist/esm/client/v2/algod/getLedgerStateDelta.js +10 -5
- package/dist/esm/client/v2/algod/getLedgerStateDelta.js.map +1 -1
- package/dist/esm/client/v2/algod/getLedgerStateDeltaForTransactionGroup.js +10 -5
- package/dist/esm/client/v2/algod/getLedgerStateDeltaForTransactionGroup.js.map +1 -1
- package/dist/esm/client/v2/algod/getSyncRound.js +5 -4
- package/dist/esm/client/v2/algod/getSyncRound.js.map +1 -1
- package/dist/esm/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.js +8 -8
- package/dist/esm/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.js.map +1 -1
- package/dist/esm/client/v2/algod/getTransactionProof.js +9 -5
- package/dist/esm/client/v2/algod/getTransactionProof.js.map +1 -1
- package/dist/esm/client/v2/algod/healthCheck.js +3 -8
- package/dist/esm/client/v2/algod/healthCheck.js.map +1 -1
- package/dist/esm/client/v2/algod/index.js +4 -0
- package/dist/esm/client/v2/algod/index.js.map +1 -0
- package/dist/esm/client/v2/algod/lightBlockHeaderProof.js +9 -4
- package/dist/esm/client/v2/algod/lightBlockHeaderProof.js.map +1 -1
- package/dist/esm/client/v2/algod/models/types.js +3701 -1825
- package/dist/esm/client/v2/algod/models/types.js.map +1 -1
- package/dist/esm/client/v2/algod/pendingTransactionInformation.js +5 -8
- package/dist/esm/client/v2/algod/pendingTransactionInformation.js.map +1 -1
- package/dist/esm/client/v2/algod/pendingTransactions.js +5 -7
- package/dist/esm/client/v2/algod/pendingTransactions.js.map +1 -1
- package/dist/esm/client/v2/algod/pendingTransactionsByAddress.js +6 -9
- package/dist/esm/client/v2/algod/pendingTransactionsByAddress.js.map +1 -1
- package/dist/esm/client/v2/algod/ready.js +3 -1
- package/dist/esm/client/v2/algod/ready.js.map +1 -1
- package/dist/esm/client/v2/algod/sendRawTransaction.js +15 -6
- package/dist/esm/client/v2/algod/sendRawTransaction.js.map +1 -1
- package/dist/esm/client/v2/algod/setBlockOffsetTimestamp.js +12 -7
- package/dist/esm/client/v2/algod/setBlockOffsetTimestamp.js.map +1 -1
- package/dist/esm/client/v2/algod/setSyncRound.js +12 -7
- package/dist/esm/client/v2/algod/setSyncRound.js.map +1 -1
- package/dist/esm/client/v2/algod/simulateTransaction.js +14 -11
- package/dist/esm/client/v2/algod/simulateTransaction.js.map +1 -1
- package/dist/esm/client/v2/algod/stateproof.js +9 -4
- package/dist/esm/client/v2/algod/stateproof.js.map +1 -1
- package/dist/esm/client/v2/algod/status.js +7 -1
- package/dist/esm/client/v2/algod/status.js.map +1 -1
- package/dist/esm/client/v2/algod/statusAfterBlock.js +9 -4
- package/dist/esm/client/v2/algod/statusAfterBlock.js.map +1 -1
- package/dist/esm/client/v2/algod/suggestedParams.js +12 -8
- package/dist/esm/client/v2/algod/suggestedParams.js.map +1 -1
- package/dist/esm/client/v2/algod/supply.js +7 -1
- package/dist/esm/client/v2/algod/supply.js.map +1 -1
- package/dist/esm/client/v2/algod/unsetSyncRound.js +10 -4
- package/dist/esm/client/v2/algod/unsetSyncRound.js.map +1 -1
- package/dist/esm/client/v2/algod/versions.js +7 -1
- package/dist/esm/client/v2/algod/versions.js.map +1 -1
- package/dist/esm/client/v2/indexer/index.js +4 -0
- package/dist/esm/client/v2/indexer/index.js.map +1 -0
- package/dist/esm/client/v2/indexer/indexer.js +42 -42
- package/dist/esm/client/v2/indexer/indexer.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupAccountAppLocalStates.js +10 -5
- package/dist/esm/client/v2/indexer/lookupAccountAppLocalStates.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupAccountAssets.js +10 -5
- package/dist/esm/client/v2/indexer/lookupAccountAssets.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupAccountByID.js +10 -5
- package/dist/esm/client/v2/indexer/lookupAccountByID.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupAccountCreatedApplications.js +10 -5
- package/dist/esm/client/v2/indexer/lookupAccountCreatedApplications.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupAccountCreatedAssets.js +10 -5
- package/dist/esm/client/v2/indexer/lookupAccountCreatedAssets.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupAccountTransactions.js +18 -11
- package/dist/esm/client/v2/indexer/lookupAccountTransactions.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupApplicationBoxByIDandName.js +9 -9
- package/dist/esm/client/v2/indexer/lookupApplicationBoxByIDandName.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupApplicationLogs.js +9 -4
- package/dist/esm/client/v2/indexer/lookupApplicationLogs.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupApplications.js +9 -4
- package/dist/esm/client/v2/indexer/lookupApplications.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupAssetBalances.js +9 -4
- package/dist/esm/client/v2/indexer/lookupAssetBalances.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupAssetByID.js +9 -4
- package/dist/esm/client/v2/indexer/lookupAssetByID.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupAssetTransactions.js +17 -10
- package/dist/esm/client/v2/indexer/lookupAssetTransactions.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupBlock.js +9 -4
- package/dist/esm/client/v2/indexer/lookupBlock.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupTransactionByID.js +9 -4
- package/dist/esm/client/v2/indexer/lookupTransactionByID.js.map +1 -1
- package/dist/esm/client/v2/indexer/makeHealthCheck.js +7 -1
- package/dist/esm/client/v2/indexer/makeHealthCheck.js.map +1 -1
- package/dist/esm/client/v2/indexer/models/types.js +3591 -1648
- package/dist/esm/client/v2/indexer/models/types.js.map +1 -1
- package/dist/esm/client/v2/indexer/searchAccounts.js +8 -2
- package/dist/esm/client/v2/indexer/searchAccounts.js.map +1 -1
- package/dist/esm/client/v2/indexer/searchForApplicationBoxes.js +7 -7
- package/dist/esm/client/v2/indexer/searchForApplicationBoxes.js.map +1 -1
- package/dist/esm/client/v2/indexer/searchForApplications.js +8 -2
- package/dist/esm/client/v2/indexer/searchForApplications.js.map +1 -1
- package/dist/esm/client/v2/indexer/searchForAssets.js +8 -2
- package/dist/esm/client/v2/indexer/searchForAssets.js.map +1 -1
- package/dist/esm/client/v2/indexer/searchForTransactions.js +15 -7
- package/dist/esm/client/v2/indexer/searchForTransactions.js.map +1 -1
- package/dist/esm/client/v2/jsonrequest.js +22 -51
- package/dist/esm/client/v2/jsonrequest.js.map +1 -1
- package/dist/esm/client/v2/serviceClient.js +3 -20
- package/dist/esm/client/v2/serviceClient.js.map +1 -1
- package/dist/esm/client/v2/untypedmodel.js +18 -0
- package/dist/esm/client/v2/untypedmodel.js.map +1 -0
- package/dist/esm/composer.js +43 -37
- package/dist/esm/composer.js.map +1 -1
- package/dist/esm/convert.js.map +1 -1
- package/dist/esm/dryrun.js +98 -195
- package/dist/esm/dryrun.js.map +1 -1
- package/dist/esm/encoding/address.js +85 -100
- package/dist/esm/encoding/address.js.map +1 -1
- package/dist/esm/encoding/bigint.js +2 -3
- package/dist/esm/encoding/bigint.js.map +1 -1
- package/dist/esm/encoding/binarydata.js +73 -0
- package/dist/esm/encoding/binarydata.js.map +1 -0
- package/dist/esm/encoding/encoding.js +337 -12
- package/dist/esm/encoding/encoding.js.map +1 -1
- package/dist/esm/encoding/schema/address.js +37 -0
- package/dist/esm/encoding/schema/address.js.map +1 -0
- package/dist/esm/encoding/schema/array.js +39 -0
- package/dist/esm/encoding/schema/array.js.map +1 -0
- package/dist/esm/encoding/schema/binarystring.js +51 -0
- package/dist/esm/encoding/schema/binarystring.js.map +1 -0
- package/dist/esm/encoding/schema/blockhash.js +60 -0
- package/dist/esm/encoding/schema/blockhash.js.map +1 -0
- package/dist/esm/encoding/schema/boolean.js +38 -0
- package/dist/esm/encoding/schema/boolean.js.map +1 -0
- package/dist/esm/encoding/schema/bytearray.js +93 -0
- package/dist/esm/encoding/schema/bytearray.js.map +1 -0
- package/dist/esm/encoding/schema/index.js +12 -0
- package/dist/esm/encoding/schema/index.js.map +1 -0
- package/dist/esm/encoding/schema/map.js +517 -0
- package/dist/esm/encoding/schema/map.js.map +1 -0
- package/dist/esm/encoding/schema/optional.js +54 -0
- package/dist/esm/encoding/schema/optional.js.map +1 -0
- package/dist/esm/encoding/schema/string.js +39 -0
- package/dist/esm/encoding/schema/string.js.map +1 -0
- package/dist/esm/encoding/schema/uint64.js +32 -0
- package/dist/esm/encoding/schema/uint64.js.map +1 -0
- package/dist/esm/encoding/schema/untyped.js +29 -0
- package/dist/esm/encoding/schema/untyped.js.map +1 -0
- package/dist/esm/encoding/uint64.js +1 -1
- package/dist/esm/encoding/uint64.js.map +1 -1
- package/dist/esm/group.js +22 -58
- package/dist/esm/group.js.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/logic/sourcemap.js +54 -23
- package/dist/esm/logic/sourcemap.js.map +1 -1
- package/dist/esm/logicsig.js +110 -141
- package/dist/esm/logicsig.js.map +1 -1
- package/dist/esm/main.js +47 -76
- package/dist/esm/main.js.map +1 -1
- package/dist/esm/makeTxn.js +304 -529
- package/dist/esm/makeTxn.js.map +1 -1
- package/dist/esm/mnemonic/mnemonic.js +5 -5
- package/dist/esm/mnemonic/mnemonic.js.map +1 -1
- package/dist/esm/multisig.js +56 -305
- package/dist/esm/multisig.js.map +1 -1
- package/dist/esm/multisigSigning.js +254 -0
- package/dist/esm/multisigSigning.js.map +1 -0
- package/dist/esm/nacl/naclWrappers.js +1 -1
- package/dist/esm/nacl/naclWrappers.js.map +1 -1
- package/dist/esm/package.json +1 -0
- package/dist/esm/signedTransaction.js +100 -0
- package/dist/esm/signedTransaction.js.map +1 -0
- package/dist/esm/signer.js +3 -3
- package/dist/esm/signer.js.map +1 -1
- package/dist/esm/signing.js +77 -0
- package/dist/esm/signing.js.map +1 -0
- package/dist/esm/stateproof.js +408 -0
- package/dist/esm/stateproof.js.map +1 -0
- package/dist/esm/transaction.js +723 -1005
- package/dist/esm/transaction.js.map +1 -1
- package/dist/esm/types/block.js +797 -0
- package/dist/esm/types/block.js.map +1 -0
- package/dist/esm/types/intDecoding.js +1 -1
- package/dist/esm/types/intDecoding.js.map +1 -1
- package/dist/esm/types/statedelta.js +1129 -0
- package/dist/esm/types/statedelta.js.map +1 -0
- package/dist/esm/types/transactions/base.js +18 -2
- package/dist/esm/types/transactions/base.js.map +1 -1
- package/dist/esm/types/transactions/encoded.js +62 -1
- package/dist/esm/types/transactions/encoded.js.map +1 -1
- package/dist/esm/types/transactions/index.js +2 -3
- package/dist/esm/types/transactions/index.js.map +1 -1
- package/dist/esm/utils/utils.js +80 -21
- package/dist/esm/utils/utils.js.map +1 -1
- package/dist/esm/wait.js +4 -4
- package/dist/esm/wait.js.map +1 -1
- package/dist/types/abi/abi_type.d.ts +1 -1
- package/dist/types/abi/contract.d.ts +2 -2
- package/dist/types/abi/index.d.ts +6 -6
- package/dist/types/abi/interface.d.ts +1 -1
- package/dist/types/abi/method.d.ts +6 -6
- package/dist/types/abi/transaction.d.ts +1 -1
- package/dist/types/account.d.ts +1 -1
- package/dist/types/boxStorage.d.ts +4 -5
- package/dist/types/client/baseHTTPClient.d.ts +9 -6
- package/dist/types/client/client.d.ts +59 -18
- package/dist/types/client/index.d.ts +5 -0
- package/dist/types/client/kmd.d.ts +12 -10
- package/dist/types/client/urlTokenBaseHTTPClient.d.ts +8 -5
- package/dist/types/client/v2/algod/accountApplicationInformation.d.ts +8 -6
- package/dist/types/client/v2/algod/accountAssetInformation.d.ts +8 -6
- package/dist/types/client/v2/algod/accountInformation.d.ts +7 -5
- package/dist/types/client/v2/algod/algod.d.ts +53 -52
- package/dist/types/client/v2/algod/block.d.ts +5 -4
- package/dist/types/client/v2/algod/compile.d.ts +7 -9
- package/dist/types/client/v2/algod/disassemble.d.ts +7 -9
- package/dist/types/client/v2/algod/dryrun.d.ts +7 -9
- package/dist/types/client/v2/algod/genesis.d.ts +4 -2
- package/dist/types/client/v2/algod/getApplicationBoxByName.d.ts +6 -7
- package/dist/types/client/v2/algod/getApplicationBoxes.d.ts +6 -7
- package/dist/types/client/v2/algod/getApplicationByID.d.ts +6 -5
- package/dist/types/client/v2/algod/getAssetByID.d.ts +6 -5
- package/dist/types/client/v2/algod/getBlockHash.d.ts +7 -6
- package/dist/types/client/v2/algod/getBlockOffsetTimestamp.d.ts +5 -4
- package/dist/types/client/v2/algod/getBlockTxids.d.ts +6 -5
- package/dist/types/client/v2/algod/getLedgerStateDelta.d.ts +6 -5
- package/dist/types/client/v2/algod/getLedgerStateDeltaForTransactionGroup.d.ts +6 -5
- package/dist/types/client/v2/algod/getSyncRound.d.ts +5 -4
- package/dist/types/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.d.ts +6 -7
- package/dist/types/client/v2/algod/getTransactionProof.d.ts +6 -5
- package/dist/types/client/v2/algod/healthCheck.d.ts +4 -3
- package/dist/types/client/v2/algod/index.d.ts +2 -0
- package/dist/types/client/v2/algod/lightBlockHeaderProof.d.ts +6 -5
- package/dist/types/client/v2/algod/models/types.d.ts +604 -317
- package/dist/types/client/v2/algod/pendingTransactionInformation.d.ts +5 -4
- package/dist/types/client/v2/algod/pendingTransactions.d.ts +5 -4
- package/dist/types/client/v2/algod/pendingTransactionsByAddress.d.ts +7 -5
- package/dist/types/client/v2/algod/ready.d.ts +4 -2
- package/dist/types/client/v2/algod/sendRawTransaction.d.ts +7 -5
- package/dist/types/client/v2/algod/setBlockOffsetTimestamp.d.ts +6 -6
- package/dist/types/client/v2/algod/setSyncRound.d.ts +6 -6
- package/dist/types/client/v2/algod/simulateTransaction.d.ts +7 -7
- package/dist/types/client/v2/algod/stateproof.d.ts +6 -5
- package/dist/types/client/v2/algod/status.d.ts +5 -2
- package/dist/types/client/v2/algod/statusAfterBlock.d.ts +6 -5
- package/dist/types/client/v2/algod/suggestedParams.d.ts +25 -4
- package/dist/types/client/v2/algod/supply.d.ts +5 -2
- package/dist/types/client/v2/algod/unsetSyncRound.d.ts +5 -3
- package/dist/types/client/v2/algod/versions.d.ts +5 -2
- package/dist/types/client/v2/indexer/index.d.ts +2 -0
- package/dist/types/client/v2/indexer/indexer.d.ts +31 -30
- package/dist/types/client/v2/indexer/lookupAccountAppLocalStates.d.ts +7 -5
- package/dist/types/client/v2/indexer/lookupAccountAssets.d.ts +7 -5
- package/dist/types/client/v2/indexer/lookupAccountByID.d.ts +7 -5
- package/dist/types/client/v2/indexer/lookupAccountCreatedApplications.d.ts +7 -5
- package/dist/types/client/v2/indexer/lookupAccountCreatedAssets.d.ts +7 -5
- package/dist/types/client/v2/indexer/lookupAccountTransactions.d.ts +11 -9
- package/dist/types/client/v2/indexer/lookupApplicationBoxByIDandName.d.ts +6 -7
- package/dist/types/client/v2/indexer/lookupApplicationLogs.d.ts +6 -5
- package/dist/types/client/v2/indexer/lookupApplications.d.ts +6 -5
- package/dist/types/client/v2/indexer/lookupAssetBalances.d.ts +6 -5
- package/dist/types/client/v2/indexer/lookupAssetByID.d.ts +6 -5
- package/dist/types/client/v2/indexer/lookupAssetTransactions.d.ts +12 -10
- package/dist/types/client/v2/indexer/lookupBlock.d.ts +6 -5
- package/dist/types/client/v2/indexer/lookupTransactionByID.d.ts +6 -5
- package/dist/types/client/v2/indexer/makeHealthCheck.d.ts +5 -2
- package/dist/types/client/v2/indexer/models/types.d.ts +513 -267
- package/dist/types/client/v2/indexer/searchAccounts.d.ts +7 -3
- package/dist/types/client/v2/indexer/searchForApplicationBoxes.d.ts +6 -7
- package/dist/types/client/v2/indexer/searchForApplications.d.ts +7 -3
- package/dist/types/client/v2/indexer/searchForAssets.d.ts +7 -3
- package/dist/types/client/v2/indexer/searchForTransactions.d.ts +11 -7
- package/dist/types/client/v2/jsonrequest.d.ts +20 -33
- package/dist/types/client/v2/serviceClient.d.ts +4 -18
- package/dist/types/client/v2/untypedmodel.d.ts +10 -0
- package/dist/types/composer.d.ts +18 -17
- package/dist/types/dryrun.d.ts +8 -80
- package/dist/types/encoding/address.d.ts +40 -31
- package/dist/types/encoding/binarydata.d.ts +30 -0
- package/dist/types/encoding/encoding.d.ts +219 -7
- package/dist/types/encoding/schema/address.d.ts +10 -0
- package/dist/types/encoding/schema/array.d.ts +11 -0
- package/dist/types/encoding/schema/binarystring.d.ts +18 -0
- package/dist/types/encoding/schema/blockhash.d.ts +16 -0
- package/dist/types/encoding/schema/boolean.d.ts +10 -0
- package/dist/types/encoding/schema/bytearray.d.ts +19 -0
- package/dist/types/encoding/schema/index.d.ts +11 -0
- package/dist/types/encoding/schema/map.d.ts +125 -0
- package/dist/types/encoding/schema/optional.d.ts +24 -0
- package/dist/types/encoding/schema/string.d.ts +9 -0
- package/dist/types/encoding/schema/uint64.d.ts +9 -0
- package/dist/types/encoding/schema/untyped.d.ts +9 -0
- package/dist/types/encoding/uint64.d.ts +1 -0
- package/dist/types/group.d.ts +6 -25
- package/dist/types/index.d.ts +2 -2
- package/dist/types/logic/sourcemap.d.ts +39 -13
- package/dist/types/logicsig.d.ts +27 -57
- package/dist/types/main.d.ts +43 -54
- package/dist/types/makeTxn.d.ts +117 -404
- package/dist/types/mnemonic/mnemonic.d.ts +1 -1
- package/dist/types/multisig.d.ts +28 -99
- package/dist/types/multisigSigning.d.ts +72 -0
- package/dist/types/signedTransaction.d.ts +55 -0
- package/dist/types/signer.d.ts +5 -5
- package/dist/types/signing.d.ts +29 -0
- package/dist/types/stateproof.d.ts +194 -0
- package/dist/types/transaction.d.ts +103 -182
- package/dist/types/types/account.d.ts +2 -1
- package/dist/types/types/block.d.ts +407 -0
- package/dist/types/types/intDecoding.d.ts +1 -1
- package/dist/types/types/statedelta.d.ts +575 -0
- package/dist/types/types/transactions/base.d.ts +206 -118
- package/dist/types/types/transactions/encoded.d.ts +7 -301
- package/dist/types/types/transactions/index.d.ts +2 -15
- package/dist/types/types/utils.d.ts +7 -7
- package/dist/types/utils/utils.d.ts +21 -16
- package/dist/types/wait.d.ts +3 -2
- package/package.json +48 -20
- package/src/abi/abi_type.ts +28 -18
- package/src/abi/contract.ts +2 -2
- package/src/abi/index.ts +6 -6
- package/src/abi/interface.ts +1 -1
- package/src/abi/method.ts +11 -9
- package/src/abi/transaction.ts +2 -2
- package/src/account.ts +5 -5
- package/src/boxStorage.ts +25 -23
- package/src/client/baseHTTPClient.ts +12 -6
- package/src/client/client.ts +147 -75
- package/src/client/index.ts +6 -0
- package/src/client/kmd.ts +79 -72
- package/src/client/urlTokenBaseHTTPClient.ts +25 -14
- package/src/client/v2/algod/accountApplicationInformation.ts +16 -9
- package/src/client/v2/algod/accountAssetInformation.ts +16 -9
- package/src/client/v2/algod/accountInformation.ts +16 -11
- package/src/client/v2/algod/algod.ts +83 -105
- package/src/client/v2/algod/block.ts +7 -11
- package/src/client/v2/algod/compile.ts +27 -19
- package/src/client/v2/algod/disassemble.ts +27 -19
- package/src/client/v2/algod/dryrun.ts +23 -19
- package/src/client/v2/algod/genesis.ts +8 -2
- package/src/client/v2/algod/getApplicationBoxByName.ts +10 -15
- package/src/client/v2/algod/getApplicationBoxes.ts +12 -13
- package/src/client/v2/algod/getApplicationByID.ts +15 -7
- package/src/client/v2/algod/getAssetByID.ts +15 -7
- package/src/client/v2/algod/getBlockHash.ts +13 -9
- package/src/client/v2/algod/getBlockOffsetTimestamp.ts +7 -8
- package/src/client/v2/algod/getBlockTxids.ts +12 -6
- package/src/client/v2/algod/getLedgerStateDelta.ts +16 -8
- package/src/client/v2/algod/getLedgerStateDeltaForTransactionGroup.ts +16 -8
- package/src/client/v2/algod/getSyncRound.ts +7 -8
- package/src/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.ts +15 -15
- package/src/client/v2/algod/getTransactionProof.ts +11 -9
- package/src/client/v2/algod/healthCheck.ts +5 -9
- package/src/client/v2/algod/index.ts +3 -0
- package/src/client/v2/algod/lightBlockHeaderProof.ts +15 -8
- package/src/client/v2/algod/models/types.ts +4699 -2263
- package/src/client/v2/algod/pendingTransactionInformation.ts +11 -11
- package/src/client/v2/algod/pendingTransactions.ts +7 -9
- package/src/client/v2/algod/pendingTransactionsByAddress.ts +12 -11
- package/src/client/v2/algod/ready.ts +6 -2
- package/src/client/v2/algod/sendRawTransaction.ts +24 -13
- package/src/client/v2/algod/setBlockOffsetTimestamp.ts +21 -11
- package/src/client/v2/algod/setSyncRound.ts +21 -11
- package/src/client/v2/algod/simulateTransaction.ts +22 -23
- package/src/client/v2/algod/stateproof.ts +15 -8
- package/src/client/v2/algod/status.ts +10 -2
- package/src/client/v2/algod/statusAfterBlock.ts +15 -7
- package/src/client/v2/algod/suggestedParams.ts +40 -10
- package/src/client/v2/algod/supply.ts +10 -2
- package/src/client/v2/algod/unsetSyncRound.ts +16 -5
- package/src/client/v2/algod/versions.ts +10 -2
- package/src/client/v2/indexer/index.ts +3 -0
- package/src/client/v2/indexer/indexer.ts +51 -59
- package/src/client/v2/indexer/lookupAccountAppLocalStates.ts +16 -11
- package/src/client/v2/indexer/lookupAccountAssets.ts +16 -11
- package/src/client/v2/indexer/lookupAccountByID.ts +16 -11
- package/src/client/v2/indexer/lookupAccountCreatedApplications.ts +16 -11
- package/src/client/v2/indexer/lookupAccountCreatedAssets.ts +16 -11
- package/src/client/v2/indexer/lookupAccountTransactions.ts +26 -19
- package/src/client/v2/indexer/lookupApplicationBoxByIDandName.ts +10 -15
- package/src/client/v2/indexer/lookupApplicationLogs.ts +15 -7
- package/src/client/v2/indexer/lookupApplications.ts +15 -7
- package/src/client/v2/indexer/lookupAssetBalances.ts +15 -7
- package/src/client/v2/indexer/lookupAssetByID.ts +15 -7
- package/src/client/v2/indexer/lookupAssetTransactions.ts +27 -16
- package/src/client/v2/indexer/lookupBlock.ts +15 -7
- package/src/client/v2/indexer/lookupTransactionByID.ts +15 -7
- package/src/client/v2/indexer/makeHealthCheck.ts +10 -2
- package/src/client/v2/indexer/models/types.ts +4454 -1988
- package/src/client/v2/indexer/searchAccounts.ts +13 -4
- package/src/client/v2/indexer/searchForApplicationBoxes.ts +12 -13
- package/src/client/v2/indexer/searchForApplications.ts +13 -4
- package/src/client/v2/indexer/searchForAssets.ts +13 -4
- package/src/client/v2/indexer/searchForTransactions.ts +22 -11
- package/src/client/v2/jsonrequest.ts +39 -57
- package/src/client/v2/serviceClient.ts +9 -31
- package/src/client/v2/untypedmodel.ts +25 -0
- package/src/composer.ts +83 -60
- package/src/dryrun.ts +129 -306
- package/src/encoding/address.ts +134 -146
- package/src/encoding/bigint.ts +2 -4
- package/src/encoding/binarydata.ts +80 -0
- package/src/encoding/encoding.ts +558 -13
- package/src/encoding/schema/address.ts +53 -0
- package/src/encoding/schema/array.ts +66 -0
- package/src/encoding/schema/binarystring.ts +73 -0
- package/src/encoding/schema/blockhash.ts +84 -0
- package/src/encoding/schema/boolean.ts +54 -0
- package/src/encoding/schema/bytearray.ts +127 -0
- package/src/encoding/schema/index.ts +26 -0
- package/src/encoding/schema/map.ts +713 -0
- package/src/encoding/schema/optional.ts +72 -0
- package/src/encoding/schema/string.ts +55 -0
- package/src/encoding/schema/uint64.ts +46 -0
- package/src/encoding/schema/untyped.ts +47 -0
- package/src/encoding/uint64.ts +2 -1
- package/src/group.ts +27 -75
- package/src/index.ts +2 -2
- package/src/logic/sourcemap.ts +94 -29
- package/src/logicsig.ts +154 -202
- package/src/main.ts +91 -94
- package/src/makeTxn.ts +660 -1338
- package/src/mnemonic/mnemonic.ts +14 -14
- package/src/multisig.ts +89 -403
- package/src/multisigSigning.ts +359 -0
- package/src/nacl/naclWrappers.ts +1 -1
- package/src/signedTransaction.ts +163 -0
- package/src/signer.ts +10 -5
- package/src/signing.ts +95 -0
- package/src/stateproof.ts +595 -0
- package/src/transaction.ts +986 -1242
- package/src/types/account.ts +3 -1
- package/src/types/block.ts +1278 -0
- package/src/types/intDecoding.ts +1 -1
- package/src/types/statedelta.ts +1717 -0
- package/src/types/transactions/base.ts +230 -122
- package/src/types/transactions/encoded.ts +81 -371
- package/src/types/transactions/index.ts +2 -72
- package/src/types/utils.ts +3 -3
- package/src/utils/utils.ts +96 -25
- package/src/wait.ts +8 -7
- package/dist/cjs/bid.js +0 -83
- package/dist/cjs/bid.js.map +0 -1
- package/dist/cjs/client/v2/basemodel.js +0 -67
- package/dist/cjs/client/v2/basemodel.js.map +0 -1
- package/dist/cjs/types/address.js +0 -3
- package/dist/cjs/types/address.js.map +0 -1
- package/dist/cjs/types/blockHeader.js +0 -3
- package/dist/cjs/types/blockHeader.js.map +0 -1
- package/dist/cjs/types/index.js.map +0 -1
- package/dist/cjs/types/multisig.js +0 -3
- package/dist/cjs/types/multisig.js.map +0 -1
- package/dist/cjs/types/transactions/application.js +0 -3
- package/dist/cjs/types/transactions/application.js.map +0 -1
- package/dist/cjs/types/transactions/asset.js +0 -3
- package/dist/cjs/types/transactions/asset.js.map +0 -1
- package/dist/cjs/types/transactions/builder.js +0 -3
- package/dist/cjs/types/transactions/builder.js.map +0 -1
- package/dist/cjs/types/transactions/keyreg.js +0 -3
- package/dist/cjs/types/transactions/keyreg.js.map +0 -1
- package/dist/cjs/types/transactions/payment.js +0 -3
- package/dist/cjs/types/transactions/payment.js.map +0 -1
- package/dist/cjs/types/transactions/stateproof.js +0 -3
- package/dist/cjs/types/transactions/stateproof.js.map +0 -1
- package/dist/esm/bid.js +0 -57
- package/dist/esm/bid.js.map +0 -1
- package/dist/esm/client/v2/basemodel.js +0 -64
- package/dist/esm/client/v2/basemodel.js.map +0 -1
- package/dist/esm/types/address.js +0 -2
- package/dist/esm/types/address.js.map +0 -1
- package/dist/esm/types/blockHeader.js +0 -2
- package/dist/esm/types/blockHeader.js.map +0 -1
- package/dist/esm/types/index.js +0 -4
- package/dist/esm/types/index.js.map +0 -1
- package/dist/esm/types/multisig.js +0 -2
- package/dist/esm/types/multisig.js.map +0 -1
- package/dist/esm/types/transactions/application.js +0 -2
- package/dist/esm/types/transactions/application.js.map +0 -1
- package/dist/esm/types/transactions/asset.js +0 -2
- package/dist/esm/types/transactions/asset.js.map +0 -1
- package/dist/esm/types/transactions/builder.js +0 -2
- package/dist/esm/types/transactions/builder.js.map +0 -1
- package/dist/esm/types/transactions/keyreg.js +0 -2
- package/dist/esm/types/transactions/keyreg.js.map +0 -1
- package/dist/esm/types/transactions/payment.js +0 -2
- package/dist/esm/types/transactions/payment.js.map +0 -1
- package/dist/esm/types/transactions/stateproof.js +0 -2
- package/dist/esm/types/transactions/stateproof.js.map +0 -1
- package/dist/types/bid.d.ts +0 -38
- package/dist/types/client/v2/basemodel.d.ts +0 -11
- package/dist/types/types/address.d.ts +0 -7
- package/dist/types/types/blockHeader.d.ts +0 -67
- package/dist/types/types/index.d.ts +0 -3
- package/dist/types/types/multisig.d.ts +0 -20
- package/dist/types/types/transactions/application.d.ts +0 -22
- package/dist/types/types/transactions/asset.d.ts +0 -28
- package/dist/types/types/transactions/builder.d.ts +0 -36
- package/dist/types/types/transactions/keyreg.d.ts +0 -8
- package/dist/types/types/transactions/payment.d.ts +0 -8
- package/dist/types/types/transactions/stateproof.d.ts +0 -8
- package/src/bid.ts +0 -96
- package/src/client/v2/basemodel.ts +0 -81
- package/src/types/address.ts +0 -7
- package/src/types/blockHeader.ts +0 -81
- package/src/types/index.ts +0 -3
- package/src/types/multisig.ts +0 -22
- package/src/types/transactions/application.ts +0 -111
- package/src/types/transactions/asset.ts +0 -108
- package/src/types/transactions/builder.ts +0 -69
- package/src/types/transactions/keyreg.ts +0 -23
- package/src/types/transactions/payment.ts +0 -14
- package/src/types/transactions/stateproof.ts +0 -17
|
@@ -0,0 +1,1717 @@
|
|
|
1
|
+
import { Encodable, Schema } from '../encoding/encoding.js';
|
|
2
|
+
import {
|
|
3
|
+
NamedMapSchema,
|
|
4
|
+
Uint64MapSchema,
|
|
5
|
+
ByteArrayMapSchema,
|
|
6
|
+
SpecialCaseBinaryStringMapSchema,
|
|
7
|
+
SpecialCaseBinaryStringSchema,
|
|
8
|
+
ArraySchema,
|
|
9
|
+
BooleanSchema,
|
|
10
|
+
Uint64Schema,
|
|
11
|
+
AddressSchema,
|
|
12
|
+
ByteArraySchema,
|
|
13
|
+
FixedLengthByteArraySchema,
|
|
14
|
+
OptionalSchema,
|
|
15
|
+
UntypedSchema,
|
|
16
|
+
allOmitEmpty,
|
|
17
|
+
convertMap,
|
|
18
|
+
combineMaps,
|
|
19
|
+
} from '../encoding/schema/index.js';
|
|
20
|
+
import { Address } from '../encoding/address.js';
|
|
21
|
+
import { BlockHeader } from './block.js';
|
|
22
|
+
import { UntypedValue } from '../client/v2/untypedmodel.js';
|
|
23
|
+
|
|
24
|
+
// TealValue contains type information and a value, representing a value in a TEAL program
|
|
25
|
+
export class TealValue implements Encodable {
|
|
26
|
+
public static readonly encodingSchema = new NamedMapSchema(
|
|
27
|
+
allOmitEmpty([
|
|
28
|
+
{ key: 'tt', valueSchema: new Uint64Schema() }, // type
|
|
29
|
+
{
|
|
30
|
+
key: 'tb', // bytes
|
|
31
|
+
valueSchema: new OptionalSchema(new SpecialCaseBinaryStringSchema()),
|
|
32
|
+
},
|
|
33
|
+
{ key: 'ui', valueSchema: new OptionalSchema(new Uint64Schema()) }, // uint
|
|
34
|
+
])
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Type determines the type of the value.
|
|
39
|
+
* * 1 represents the type of a byte slice in a TEAL program
|
|
40
|
+
* * 2 represents the type of an unsigned integer in a TEAL program
|
|
41
|
+
*/
|
|
42
|
+
public type: number;
|
|
43
|
+
public bytes?: Uint8Array;
|
|
44
|
+
public uint?: bigint;
|
|
45
|
+
|
|
46
|
+
constructor(params: { type: number; bytes?: Uint8Array; uint?: bigint }) {
|
|
47
|
+
this.type = params.type;
|
|
48
|
+
this.bytes = params.bytes;
|
|
49
|
+
this.uint = params.uint;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// eslint-disable-next-line class-methods-use-this
|
|
53
|
+
public getEncodingSchema(): Schema {
|
|
54
|
+
return TealValue.encodingSchema;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
public toEncodingData(): Map<string, unknown> {
|
|
58
|
+
return new Map<string, unknown>([
|
|
59
|
+
['tt', this.type],
|
|
60
|
+
['tb', this.bytes],
|
|
61
|
+
['ui', this.uint],
|
|
62
|
+
]);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
public static fromEncodingData(data: unknown): TealValue {
|
|
66
|
+
if (!(data instanceof Map)) {
|
|
67
|
+
throw new Error(`Invalid decoded TealValue: ${data}`);
|
|
68
|
+
}
|
|
69
|
+
return new TealValue({
|
|
70
|
+
type: Number(data.get('tt')),
|
|
71
|
+
bytes: data.get('tb'),
|
|
72
|
+
uint: data.get('ui'),
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* StateSchema sets maximums on the number of each type that may be stored
|
|
79
|
+
*/
|
|
80
|
+
export class StateSchema implements Encodable {
|
|
81
|
+
public static readonly encodingSchema = new NamedMapSchema(
|
|
82
|
+
allOmitEmpty([
|
|
83
|
+
{
|
|
84
|
+
key: 'nui', // numUints
|
|
85
|
+
valueSchema: new Uint64Schema(),
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
key: 'nbs', // numByteSlices
|
|
89
|
+
valueSchema: new Uint64Schema(),
|
|
90
|
+
},
|
|
91
|
+
])
|
|
92
|
+
);
|
|
93
|
+
|
|
94
|
+
public numUints: number;
|
|
95
|
+
public numByteSlices: number;
|
|
96
|
+
|
|
97
|
+
public constructor(params: { numUints: number; numByteSlices: number }) {
|
|
98
|
+
this.numUints = params.numUints;
|
|
99
|
+
this.numByteSlices = params.numByteSlices;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// eslint-disable-next-line class-methods-use-this
|
|
103
|
+
public getEncodingSchema(): Schema {
|
|
104
|
+
return StateSchema.encodingSchema;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
public toEncodingData(): Map<string, unknown> {
|
|
108
|
+
return new Map<string, unknown>([
|
|
109
|
+
['nui', this.numUints],
|
|
110
|
+
['nbs', this.numByteSlices],
|
|
111
|
+
]);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
public static fromEncodingData(data: unknown): StateSchema {
|
|
115
|
+
if (!(data instanceof Map)) {
|
|
116
|
+
throw new Error(`Invalid decoded StateSchema: ${data}`);
|
|
117
|
+
}
|
|
118
|
+
return new StateSchema({
|
|
119
|
+
numUints: Number(data.get('nui')),
|
|
120
|
+
numByteSlices: Number(data.get('nbs')),
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* AppParams stores the global information associated with an application
|
|
127
|
+
*/
|
|
128
|
+
export class AppParams implements Encodable {
|
|
129
|
+
public static readonly encodingSchema = new NamedMapSchema(
|
|
130
|
+
allOmitEmpty([
|
|
131
|
+
{ key: 'approv', valueSchema: new ByteArraySchema() }, // approvalProgram
|
|
132
|
+
{ key: 'clearp', valueSchema: new ByteArraySchema() }, // alearStateProgram
|
|
133
|
+
{
|
|
134
|
+
key: 'gs',
|
|
135
|
+
valueSchema: new SpecialCaseBinaryStringMapSchema(
|
|
136
|
+
TealValue.encodingSchema
|
|
137
|
+
),
|
|
138
|
+
}, // globalState
|
|
139
|
+
{ key: 'lsch', valueSchema: StateSchema.encodingSchema }, // localStateSchema
|
|
140
|
+
{ key: 'gsch', valueSchema: StateSchema.encodingSchema }, // globalStateSchema
|
|
141
|
+
{ key: 'epp', valueSchema: new Uint64Schema() }, // extraProgramPages
|
|
142
|
+
])
|
|
143
|
+
);
|
|
144
|
+
|
|
145
|
+
public approvalProgram: Uint8Array;
|
|
146
|
+
public clearStateProgram: Uint8Array;
|
|
147
|
+
public globalState: Map<Uint8Array, TealValue>;
|
|
148
|
+
public localStateSchema: StateSchema;
|
|
149
|
+
public globalStateSchema: StateSchema;
|
|
150
|
+
public extraProgramPages: number;
|
|
151
|
+
|
|
152
|
+
constructor(params: {
|
|
153
|
+
approvalProgram: Uint8Array;
|
|
154
|
+
clearStateProgram: Uint8Array;
|
|
155
|
+
globalState: Map<Uint8Array, TealValue>;
|
|
156
|
+
localStateSchema: StateSchema;
|
|
157
|
+
globalStateSchema: StateSchema;
|
|
158
|
+
extraProgramPages: number;
|
|
159
|
+
}) {
|
|
160
|
+
this.approvalProgram = params.approvalProgram;
|
|
161
|
+
this.clearStateProgram = params.clearStateProgram;
|
|
162
|
+
this.globalState = params.globalState;
|
|
163
|
+
this.localStateSchema = params.localStateSchema;
|
|
164
|
+
this.globalStateSchema = params.globalStateSchema;
|
|
165
|
+
this.extraProgramPages = params.extraProgramPages;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
// eslint-disable-next-line class-methods-use-this
|
|
169
|
+
public getEncodingSchema(): Schema {
|
|
170
|
+
return AppParams.encodingSchema;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
public toEncodingData(): Map<string, unknown> {
|
|
174
|
+
return new Map<string, unknown>([
|
|
175
|
+
['approv', this.approvalProgram],
|
|
176
|
+
['clearp', this.clearStateProgram],
|
|
177
|
+
['gs', convertMap(this.globalState, (k, v) => [k, v.toEncodingData()])],
|
|
178
|
+
['lsch', this.localStateSchema.toEncodingData()],
|
|
179
|
+
['gsch', this.globalStateSchema.toEncodingData()],
|
|
180
|
+
['epp', this.extraProgramPages],
|
|
181
|
+
]);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
public static fromEncodingData(data: unknown) {
|
|
185
|
+
if (!(data instanceof Map)) {
|
|
186
|
+
throw new Error(`Invalid decoded AppParams: ${data}`);
|
|
187
|
+
}
|
|
188
|
+
return new AppParams({
|
|
189
|
+
approvalProgram: data.get('approv'),
|
|
190
|
+
clearStateProgram: data.get('clearp'),
|
|
191
|
+
globalState: convertMap(
|
|
192
|
+
data.get('gs') as Map<Uint8Array, unknown>,
|
|
193
|
+
(k, v) => [k, TealValue.fromEncodingData(v)]
|
|
194
|
+
),
|
|
195
|
+
localStateSchema: StateSchema.fromEncodingData(data.get('lsch')),
|
|
196
|
+
globalStateSchema: StateSchema.fromEncodingData(data.get('gsch')),
|
|
197
|
+
extraProgramPages: Number(data.get('epp')),
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* AppLocalState stores the LocalState associated with an application.
|
|
204
|
+
*/
|
|
205
|
+
export class AppLocalState implements Encodable {
|
|
206
|
+
public static readonly encodingSchema = new NamedMapSchema(
|
|
207
|
+
allOmitEmpty([
|
|
208
|
+
{ key: 'hsch', valueSchema: StateSchema.encodingSchema }, // schema
|
|
209
|
+
{
|
|
210
|
+
key: 'tkv', // keyValue
|
|
211
|
+
valueSchema: new SpecialCaseBinaryStringMapSchema(
|
|
212
|
+
TealValue.encodingSchema
|
|
213
|
+
),
|
|
214
|
+
},
|
|
215
|
+
])
|
|
216
|
+
);
|
|
217
|
+
|
|
218
|
+
public schema: StateSchema;
|
|
219
|
+
public keyValue: Map<Uint8Array, TealValue>;
|
|
220
|
+
|
|
221
|
+
constructor(params: {
|
|
222
|
+
schema: StateSchema;
|
|
223
|
+
keyValue: Map<Uint8Array, TealValue>;
|
|
224
|
+
}) {
|
|
225
|
+
this.schema = params.schema;
|
|
226
|
+
this.keyValue = params.keyValue;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
// eslint-disable-next-line class-methods-use-this
|
|
230
|
+
public getEncodingSchema(): Schema {
|
|
231
|
+
return AppLocalState.encodingSchema;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
public toEncodingData(): Map<string, unknown> {
|
|
235
|
+
return new Map<string, unknown>([
|
|
236
|
+
['hsch', this.schema.toEncodingData()],
|
|
237
|
+
['tkv', convertMap(this.keyValue, (k, v) => [k, v.toEncodingData()])],
|
|
238
|
+
]);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
public static fromEncodingData(data: unknown): AppLocalState {
|
|
242
|
+
if (!(data instanceof Map)) {
|
|
243
|
+
throw new Error(`Invalid decoded AppLocalState: ${data}`);
|
|
244
|
+
}
|
|
245
|
+
return new AppLocalState({
|
|
246
|
+
schema: StateSchema.fromEncodingData(data.get('hsch')),
|
|
247
|
+
keyValue: convertMap(
|
|
248
|
+
data.get('tkv') as Map<Uint8Array, unknown>,
|
|
249
|
+
(k, v) => [k, TealValue.fromEncodingData(v)]
|
|
250
|
+
),
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* AppLocalStateDelta tracks a changed AppLocalState, and whether it was deleted
|
|
257
|
+
*/
|
|
258
|
+
export class AppLocalStateDelta implements Encodable {
|
|
259
|
+
public static readonly encodingSchema = new NamedMapSchema(
|
|
260
|
+
allOmitEmpty([
|
|
261
|
+
{
|
|
262
|
+
key: 'LocalState', // localState
|
|
263
|
+
valueSchema: new OptionalSchema(AppLocalState.encodingSchema),
|
|
264
|
+
},
|
|
265
|
+
{ key: 'Deleted', valueSchema: new BooleanSchema() }, // deleted
|
|
266
|
+
])
|
|
267
|
+
);
|
|
268
|
+
|
|
269
|
+
public localState?: AppLocalState;
|
|
270
|
+
public deleted: boolean;
|
|
271
|
+
|
|
272
|
+
constructor(params: { localState?: AppLocalState; deleted: boolean }) {
|
|
273
|
+
this.localState = params.localState;
|
|
274
|
+
this.deleted = params.deleted;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
// eslint-disable-next-line class-methods-use-this
|
|
278
|
+
public getEncodingSchema(): Schema {
|
|
279
|
+
return AppLocalStateDelta.encodingSchema;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
public toEncodingData(): Map<string, unknown> {
|
|
283
|
+
return new Map<string, unknown>([
|
|
284
|
+
[
|
|
285
|
+
'LocalState',
|
|
286
|
+
this.localState ? this.localState.toEncodingData() : undefined,
|
|
287
|
+
],
|
|
288
|
+
['Deleted', this.deleted],
|
|
289
|
+
]);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
public static fromEncodingData(data: unknown): AppLocalStateDelta {
|
|
293
|
+
if (!(data instanceof Map)) {
|
|
294
|
+
throw new Error(`Invalid decoded AppLocalStateDelta: ${data}`);
|
|
295
|
+
}
|
|
296
|
+
return new AppLocalStateDelta({
|
|
297
|
+
localState: data.get('LocalState')
|
|
298
|
+
? AppLocalState.fromEncodingData(data.get('LocalState'))
|
|
299
|
+
: undefined,
|
|
300
|
+
deleted: data.get('Deleted'),
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
/**
|
|
306
|
+
* AppParamsDelta tracks a changed AppParams, and whether it was deleted
|
|
307
|
+
*/
|
|
308
|
+
export class AppParamsDelta implements Encodable {
|
|
309
|
+
public static readonly encodingSchema = new NamedMapSchema(
|
|
310
|
+
allOmitEmpty([
|
|
311
|
+
{
|
|
312
|
+
key: 'Params', // params
|
|
313
|
+
valueSchema: new OptionalSchema(AppParams.encodingSchema),
|
|
314
|
+
},
|
|
315
|
+
{ key: 'Deleted', valueSchema: new BooleanSchema() }, // deleted
|
|
316
|
+
])
|
|
317
|
+
);
|
|
318
|
+
|
|
319
|
+
public params?: AppParams;
|
|
320
|
+
public deleted: boolean;
|
|
321
|
+
|
|
322
|
+
constructor(params: { params?: AppParams; deleted: boolean }) {
|
|
323
|
+
this.params = params.params;
|
|
324
|
+
this.deleted = params.deleted;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
// eslint-disable-next-line class-methods-use-this
|
|
328
|
+
public getEncodingSchema(): Schema {
|
|
329
|
+
return AppParamsDelta.encodingSchema;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
public toEncodingData(): Map<string, unknown> {
|
|
333
|
+
return new Map<string, unknown>([
|
|
334
|
+
['Params', this.params ? this.params.toEncodingData() : undefined],
|
|
335
|
+
['Deleted', this.deleted],
|
|
336
|
+
]);
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
public static fromEncodingData(data: unknown): AppParamsDelta {
|
|
340
|
+
if (!(data instanceof Map)) {
|
|
341
|
+
throw new Error(`Invalid decoded AppParamsDelta: ${data}`);
|
|
342
|
+
}
|
|
343
|
+
return new AppParamsDelta({
|
|
344
|
+
params: data.get('Params')
|
|
345
|
+
? AppParams.fromEncodingData(data.get('Params'))
|
|
346
|
+
: undefined,
|
|
347
|
+
deleted: data.get('Deleted'),
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* AppResourceRecord represents AppParams and AppLocalState in deltas
|
|
354
|
+
*/
|
|
355
|
+
export class AppResourceRecord implements Encodable {
|
|
356
|
+
public static readonly encodingSchema = new NamedMapSchema(
|
|
357
|
+
allOmitEmpty([
|
|
358
|
+
{ key: 'Aidx', valueSchema: new Uint64Schema() }, // id
|
|
359
|
+
{ key: 'Addr', valueSchema: new AddressSchema() }, // address
|
|
360
|
+
{
|
|
361
|
+
key: 'Params', // params
|
|
362
|
+
valueSchema: AppParamsDelta.encodingSchema,
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
key: 'State', // state
|
|
366
|
+
valueSchema: AppLocalStateDelta.encodingSchema,
|
|
367
|
+
},
|
|
368
|
+
])
|
|
369
|
+
);
|
|
370
|
+
|
|
371
|
+
public id: bigint;
|
|
372
|
+
public address: Address;
|
|
373
|
+
public params: AppParamsDelta;
|
|
374
|
+
public state: AppLocalStateDelta;
|
|
375
|
+
|
|
376
|
+
constructor(params: {
|
|
377
|
+
id: bigint;
|
|
378
|
+
address: Address;
|
|
379
|
+
params: AppParamsDelta;
|
|
380
|
+
state: AppLocalStateDelta;
|
|
381
|
+
}) {
|
|
382
|
+
this.id = params.id;
|
|
383
|
+
this.address = params.address;
|
|
384
|
+
this.params = params.params;
|
|
385
|
+
this.state = params.state;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
// eslint-disable-next-line class-methods-use-this
|
|
389
|
+
public getEncodingSchema(): Schema {
|
|
390
|
+
return AppResourceRecord.encodingSchema;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
public toEncodingData(): Map<string, unknown> {
|
|
394
|
+
return new Map<string, unknown>([
|
|
395
|
+
['Aidx', this.id],
|
|
396
|
+
['Addr', this.address],
|
|
397
|
+
['Params', this.params.toEncodingData()],
|
|
398
|
+
['State', this.state.toEncodingData()],
|
|
399
|
+
]);
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
public static fromEncodingData(data: unknown): AppResourceRecord {
|
|
403
|
+
if (!(data instanceof Map)) {
|
|
404
|
+
throw new Error(`Invalid decoded AppResourceRecord: ${data}`);
|
|
405
|
+
}
|
|
406
|
+
return new AppResourceRecord({
|
|
407
|
+
id: data.get('Aidx'),
|
|
408
|
+
address: data.get('Addr'),
|
|
409
|
+
params: AppParamsDelta.fromEncodingData(data.get('Params')),
|
|
410
|
+
state: AppLocalStateDelta.fromEncodingData(data.get('State')),
|
|
411
|
+
});
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
/**
|
|
416
|
+
* AssetHolding describes an asset held by an account.
|
|
417
|
+
*/
|
|
418
|
+
export class AssetHolding implements Encodable {
|
|
419
|
+
public static readonly encodingSchema = new NamedMapSchema(
|
|
420
|
+
allOmitEmpty([
|
|
421
|
+
{ key: 'a', valueSchema: new Uint64Schema() }, // amount
|
|
422
|
+
{ key: 'f', valueSchema: new BooleanSchema() }, // frozen
|
|
423
|
+
])
|
|
424
|
+
);
|
|
425
|
+
|
|
426
|
+
public amount: bigint;
|
|
427
|
+
public frozen: boolean;
|
|
428
|
+
|
|
429
|
+
constructor(params: { amount: bigint; frozen: boolean }) {
|
|
430
|
+
this.amount = params.amount;
|
|
431
|
+
this.frozen = params.frozen;
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
// eslint-disable-next-line class-methods-use-this
|
|
435
|
+
public getEncodingSchema(): Schema {
|
|
436
|
+
return AssetHolding.encodingSchema;
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
public toEncodingData(): Map<string, unknown> {
|
|
440
|
+
return new Map<string, unknown>([
|
|
441
|
+
['a', this.amount],
|
|
442
|
+
['f', this.frozen],
|
|
443
|
+
]);
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
public static fromEncodingData(data: unknown): AssetHolding {
|
|
447
|
+
if (!(data instanceof Map)) {
|
|
448
|
+
throw new Error(`Invalid decoded AssetHolding: ${data}`);
|
|
449
|
+
}
|
|
450
|
+
return new AssetHolding({
|
|
451
|
+
amount: data.get('a'),
|
|
452
|
+
frozen: data.get('f'),
|
|
453
|
+
});
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
/**
|
|
458
|
+
* AssetHoldingDelta records a changed AssetHolding, and whether it was deleted
|
|
459
|
+
*/
|
|
460
|
+
export class AssetHoldingDelta implements Encodable {
|
|
461
|
+
public static readonly encodingSchema = new NamedMapSchema(
|
|
462
|
+
allOmitEmpty([
|
|
463
|
+
{
|
|
464
|
+
key: 'Holding', // holding
|
|
465
|
+
valueSchema: new OptionalSchema(AssetHolding.encodingSchema),
|
|
466
|
+
},
|
|
467
|
+
{ key: 'Deleted', valueSchema: new BooleanSchema() }, // deleted
|
|
468
|
+
])
|
|
469
|
+
);
|
|
470
|
+
|
|
471
|
+
public holding?: AssetHolding;
|
|
472
|
+
public deleted: boolean;
|
|
473
|
+
|
|
474
|
+
constructor(params: { holding?: AssetHolding; deleted: boolean }) {
|
|
475
|
+
this.holding = params.holding;
|
|
476
|
+
this.deleted = params.deleted;
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
// eslint-disable-next-line class-methods-use-this
|
|
480
|
+
public getEncodingSchema(): Schema {
|
|
481
|
+
return AssetHoldingDelta.encodingSchema;
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
public toEncodingData(): Map<string, unknown> {
|
|
485
|
+
return new Map<string, unknown>([
|
|
486
|
+
['Holding', this.holding ? this.holding.toEncodingData() : undefined],
|
|
487
|
+
['Deleted', this.deleted],
|
|
488
|
+
]);
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
public static fromEncodingData(data: unknown): AssetHoldingDelta {
|
|
492
|
+
if (!(data instanceof Map)) {
|
|
493
|
+
throw new Error(`Invalid decoded AssetHoldingDelta: ${data}`);
|
|
494
|
+
}
|
|
495
|
+
return new AssetHoldingDelta({
|
|
496
|
+
holding: data.get('Holding')
|
|
497
|
+
? AssetHolding.fromEncodingData(data.get('Holding'))
|
|
498
|
+
: undefined,
|
|
499
|
+
deleted: data.get('Deleted'),
|
|
500
|
+
});
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
/**
|
|
505
|
+
* AssetParams describes the parameters of an asset.
|
|
506
|
+
*/
|
|
507
|
+
export class AssetParams implements Encodable {
|
|
508
|
+
public static readonly encodingSchema = new NamedMapSchema(
|
|
509
|
+
allOmitEmpty([
|
|
510
|
+
{ key: 't', valueSchema: new Uint64Schema() }, // total
|
|
511
|
+
{ key: 'dc', valueSchema: new Uint64Schema() }, // decimals
|
|
512
|
+
{ key: 'df', valueSchema: new BooleanSchema() }, // defaultFrozen
|
|
513
|
+
{
|
|
514
|
+
key: 'un', // unitName
|
|
515
|
+
valueSchema: new OptionalSchema(new SpecialCaseBinaryStringSchema()),
|
|
516
|
+
},
|
|
517
|
+
{
|
|
518
|
+
key: 'an', // assetName
|
|
519
|
+
valueSchema: new OptionalSchema(new SpecialCaseBinaryStringSchema()),
|
|
520
|
+
},
|
|
521
|
+
{
|
|
522
|
+
key: 'au', // url
|
|
523
|
+
valueSchema: new OptionalSchema(new SpecialCaseBinaryStringSchema()),
|
|
524
|
+
},
|
|
525
|
+
{ key: 'am', valueSchema: new FixedLengthByteArraySchema(32) }, // metadataHash
|
|
526
|
+
{ key: 'm', valueSchema: new OptionalSchema(new AddressSchema()) }, // manager
|
|
527
|
+
{ key: 'r', valueSchema: new OptionalSchema(new AddressSchema()) }, // reserve
|
|
528
|
+
{ key: 'f', valueSchema: new OptionalSchema(new AddressSchema()) }, // freeze
|
|
529
|
+
{ key: 'c', valueSchema: new OptionalSchema(new AddressSchema()) }, // clawback
|
|
530
|
+
])
|
|
531
|
+
);
|
|
532
|
+
|
|
533
|
+
/**
|
|
534
|
+
* Total specifies the total number of units of this asset created.
|
|
535
|
+
*/
|
|
536
|
+
public total: bigint;
|
|
537
|
+
|
|
538
|
+
/**
|
|
539
|
+
* Decimals specifies the number of digits to display after the decimal place when displaying this asset.
|
|
540
|
+
* A value of 0 represents an asset that is not divisible, a value of 1 represents an asset divisible into tenths, and so on.
|
|
541
|
+
* This value must be between 0 and 19 (inclusive).
|
|
542
|
+
*/
|
|
543
|
+
public decimals: number;
|
|
544
|
+
|
|
545
|
+
/**
|
|
546
|
+
* DefaultFrozen specifies whether slots for this asset in user accounts are frozen by default or not.
|
|
547
|
+
*/
|
|
548
|
+
public defaultFrozen: boolean;
|
|
549
|
+
|
|
550
|
+
/**
|
|
551
|
+
* UnitName specifies a hint for the name of a unit of this asset.
|
|
552
|
+
*/
|
|
553
|
+
public unitName?: Uint8Array;
|
|
554
|
+
|
|
555
|
+
/**
|
|
556
|
+
* AssetName specifies a hint for the name of the asset.
|
|
557
|
+
*/
|
|
558
|
+
public assetName?: Uint8Array;
|
|
559
|
+
|
|
560
|
+
/**
|
|
561
|
+
* URL specifies a URL where more information about the asset can be retrieved.
|
|
562
|
+
*/
|
|
563
|
+
public url?: Uint8Array;
|
|
564
|
+
|
|
565
|
+
/**
|
|
566
|
+
* MetadataHash specifies a commitment to some unspecified asset metadata. The format of this
|
|
567
|
+
* metadata is up to the application.
|
|
568
|
+
*/
|
|
569
|
+
public metadataHash?: Uint8Array;
|
|
570
|
+
|
|
571
|
+
/**
|
|
572
|
+
* Manager specifies an account that is allowed to change the non-zero addresses in this AssetParams.
|
|
573
|
+
*/
|
|
574
|
+
public manager?: Address;
|
|
575
|
+
|
|
576
|
+
/**
|
|
577
|
+
* Reserve specifies an account whose holdings of this asset should be reported as "not minted".
|
|
578
|
+
*/
|
|
579
|
+
public reserve?: Address;
|
|
580
|
+
|
|
581
|
+
/**
|
|
582
|
+
* Freeze specifies an account that is allowed to change the frozen state of holdings of this asset.
|
|
583
|
+
*/
|
|
584
|
+
public freeze?: Address;
|
|
585
|
+
|
|
586
|
+
/**
|
|
587
|
+
* Clawback specifies an account that is allowed to take units of this asset from any account.
|
|
588
|
+
*/
|
|
589
|
+
public clawback?: Address;
|
|
590
|
+
|
|
591
|
+
public constructor(params: {
|
|
592
|
+
total: bigint;
|
|
593
|
+
decimals: number;
|
|
594
|
+
defaultFrozen: boolean;
|
|
595
|
+
unitName?: Uint8Array;
|
|
596
|
+
assetName?: Uint8Array;
|
|
597
|
+
url?: Uint8Array;
|
|
598
|
+
metadataHash?: Uint8Array;
|
|
599
|
+
manager?: Address;
|
|
600
|
+
reserve?: Address;
|
|
601
|
+
freeze?: Address;
|
|
602
|
+
clawback?: Address;
|
|
603
|
+
}) {
|
|
604
|
+
this.total = params.total;
|
|
605
|
+
this.decimals = params.decimals;
|
|
606
|
+
this.defaultFrozen = params.defaultFrozen;
|
|
607
|
+
this.unitName = params.unitName;
|
|
608
|
+
this.assetName = params.assetName;
|
|
609
|
+
this.url = params.url;
|
|
610
|
+
this.metadataHash = params.metadataHash;
|
|
611
|
+
this.manager = params.manager;
|
|
612
|
+
this.reserve = params.reserve;
|
|
613
|
+
this.freeze = params.freeze;
|
|
614
|
+
this.clawback = params.clawback;
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
// eslint-disable-next-line class-methods-use-this
|
|
618
|
+
public getEncodingSchema(): Schema {
|
|
619
|
+
return AssetParams.encodingSchema;
|
|
620
|
+
}
|
|
621
|
+
|
|
622
|
+
public toEncodingData(): Map<string, unknown> {
|
|
623
|
+
return new Map<string, unknown>([
|
|
624
|
+
['t', this.total],
|
|
625
|
+
['dc', this.decimals],
|
|
626
|
+
['df', this.defaultFrozen],
|
|
627
|
+
['un', this.unitName],
|
|
628
|
+
['an', this.assetName],
|
|
629
|
+
['au', this.url],
|
|
630
|
+
['am', this.metadataHash],
|
|
631
|
+
['m', this.manager],
|
|
632
|
+
['r', this.reserve],
|
|
633
|
+
['f', this.freeze],
|
|
634
|
+
['c', this.clawback],
|
|
635
|
+
]);
|
|
636
|
+
}
|
|
637
|
+
|
|
638
|
+
public static fromEncodingData(data: unknown): AssetParams {
|
|
639
|
+
if (!(data instanceof Map)) {
|
|
640
|
+
throw new Error(`Invalid decoded AssetParams: ${data}`);
|
|
641
|
+
}
|
|
642
|
+
return new AssetParams({
|
|
643
|
+
total: data.get('t'),
|
|
644
|
+
decimals: data.get('dc'),
|
|
645
|
+
defaultFrozen: data.get('df'),
|
|
646
|
+
unitName: data.get('un'),
|
|
647
|
+
assetName: data.get('an'),
|
|
648
|
+
url: data.get('au'),
|
|
649
|
+
metadataHash: data.get('am'),
|
|
650
|
+
manager: data.get('m'),
|
|
651
|
+
reserve: data.get('r'),
|
|
652
|
+
freeze: data.get('f'),
|
|
653
|
+
clawback: data.get('c'),
|
|
654
|
+
});
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
/**
|
|
659
|
+
* AssetParamsDelta tracks a changed AssetParams, and whether it was deleted
|
|
660
|
+
*/
|
|
661
|
+
export class AssetParamsDelta implements Encodable {
|
|
662
|
+
public static readonly encodingSchema = new NamedMapSchema(
|
|
663
|
+
allOmitEmpty([
|
|
664
|
+
{
|
|
665
|
+
key: 'Params', // params
|
|
666
|
+
valueSchema: new OptionalSchema(AssetParams.encodingSchema),
|
|
667
|
+
},
|
|
668
|
+
{ key: 'Deleted', valueSchema: new BooleanSchema() }, // deleted
|
|
669
|
+
])
|
|
670
|
+
);
|
|
671
|
+
|
|
672
|
+
public params?: AssetParams;
|
|
673
|
+
public deleted: boolean;
|
|
674
|
+
|
|
675
|
+
constructor(params: { params?: AssetParams; deleted: boolean }) {
|
|
676
|
+
this.params = params.params;
|
|
677
|
+
this.deleted = params.deleted;
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
// eslint-disable-next-line class-methods-use-this
|
|
681
|
+
public getEncodingSchema(): Schema {
|
|
682
|
+
return AssetParamsDelta.encodingSchema;
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
public toEncodingData(): Map<string, unknown> {
|
|
686
|
+
return new Map<string, unknown>([
|
|
687
|
+
['Params', this.params ? this.params.toEncodingData() : undefined],
|
|
688
|
+
['Deleted', this.deleted],
|
|
689
|
+
]);
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
public static fromEncodingData(data: unknown): AssetParamsDelta {
|
|
693
|
+
if (!(data instanceof Map)) {
|
|
694
|
+
throw new Error(`Invalid decoded AssetParamsDelta: ${data}`);
|
|
695
|
+
}
|
|
696
|
+
return new AssetParamsDelta({
|
|
697
|
+
params: data.get('Params')
|
|
698
|
+
? AssetParams.fromEncodingData(data.get('Params'))
|
|
699
|
+
: undefined,
|
|
700
|
+
deleted: data.get('Deleted'),
|
|
701
|
+
});
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
|
|
705
|
+
/**
|
|
706
|
+
* AssetResourceRecord represents AssetParams and AssetHolding in deltas
|
|
707
|
+
*/
|
|
708
|
+
export class AssetResourceRecord implements Encodable {
|
|
709
|
+
public static readonly encodingSchema = new NamedMapSchema(
|
|
710
|
+
allOmitEmpty([
|
|
711
|
+
{ key: 'Aidx', valueSchema: new Uint64Schema() }, // id
|
|
712
|
+
{ key: 'Addr', valueSchema: new AddressSchema() }, // address
|
|
713
|
+
{
|
|
714
|
+
key: 'Params', // params
|
|
715
|
+
valueSchema: AssetParamsDelta.encodingSchema,
|
|
716
|
+
},
|
|
717
|
+
{
|
|
718
|
+
key: 'Holding', // holding
|
|
719
|
+
valueSchema: AssetHoldingDelta.encodingSchema,
|
|
720
|
+
},
|
|
721
|
+
])
|
|
722
|
+
);
|
|
723
|
+
|
|
724
|
+
public id: bigint;
|
|
725
|
+
public address: Address;
|
|
726
|
+
public params: AssetParamsDelta;
|
|
727
|
+
public holding: AssetHoldingDelta;
|
|
728
|
+
|
|
729
|
+
constructor(params: {
|
|
730
|
+
id: bigint;
|
|
731
|
+
address: Address;
|
|
732
|
+
params: AssetParamsDelta;
|
|
733
|
+
holding: AssetHoldingDelta;
|
|
734
|
+
}) {
|
|
735
|
+
this.id = params.id;
|
|
736
|
+
this.address = params.address;
|
|
737
|
+
this.params = params.params;
|
|
738
|
+
this.holding = params.holding;
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
// eslint-disable-next-line class-methods-use-this
|
|
742
|
+
public getEncodingSchema(): Schema {
|
|
743
|
+
return AssetResourceRecord.encodingSchema;
|
|
744
|
+
}
|
|
745
|
+
|
|
746
|
+
public toEncodingData(): Map<string, unknown> {
|
|
747
|
+
return new Map<string, unknown>([
|
|
748
|
+
['Aidx', this.id],
|
|
749
|
+
['Addr', this.address],
|
|
750
|
+
['Params', this.params.toEncodingData()],
|
|
751
|
+
['Holding', this.holding.toEncodingData()],
|
|
752
|
+
]);
|
|
753
|
+
}
|
|
754
|
+
|
|
755
|
+
public static fromEncodingData(data: unknown): AssetResourceRecord {
|
|
756
|
+
if (!(data instanceof Map)) {
|
|
757
|
+
throw new Error(`Invalid decoded AssetResourceRecord: ${data}`);
|
|
758
|
+
}
|
|
759
|
+
return new AssetResourceRecord({
|
|
760
|
+
id: data.get('Aidx'),
|
|
761
|
+
address: data.get('Addr'),
|
|
762
|
+
params: AssetParamsDelta.fromEncodingData(data.get('Params')),
|
|
763
|
+
holding: AssetHoldingDelta.fromEncodingData(data.get('Holding')),
|
|
764
|
+
});
|
|
765
|
+
}
|
|
766
|
+
}
|
|
767
|
+
|
|
768
|
+
/**
|
|
769
|
+
* VotingData holds participation information
|
|
770
|
+
*/
|
|
771
|
+
export class VotingData implements Encodable {
|
|
772
|
+
public static readonly encodingSchema = new NamedMapSchema(
|
|
773
|
+
allOmitEmpty([
|
|
774
|
+
{
|
|
775
|
+
key: 'VoteID', // voteID
|
|
776
|
+
valueSchema: new FixedLengthByteArraySchema(32),
|
|
777
|
+
},
|
|
778
|
+
{
|
|
779
|
+
key: 'SelectionID', // selectionID
|
|
780
|
+
valueSchema: new FixedLengthByteArraySchema(32),
|
|
781
|
+
},
|
|
782
|
+
{
|
|
783
|
+
key: 'StateProofID', // stateProofID
|
|
784
|
+
valueSchema: new FixedLengthByteArraySchema(64),
|
|
785
|
+
},
|
|
786
|
+
{
|
|
787
|
+
key: 'VoteFirstValid', // voteFirstValid
|
|
788
|
+
valueSchema: new Uint64Schema(),
|
|
789
|
+
},
|
|
790
|
+
{
|
|
791
|
+
key: 'VoteLastValid', // voteLastValid
|
|
792
|
+
valueSchema: new Uint64Schema(),
|
|
793
|
+
},
|
|
794
|
+
{
|
|
795
|
+
key: 'VoteKeyDilution', // voteKeyDilution
|
|
796
|
+
valueSchema: new Uint64Schema(),
|
|
797
|
+
},
|
|
798
|
+
])
|
|
799
|
+
);
|
|
800
|
+
|
|
801
|
+
public voteID: Uint8Array;
|
|
802
|
+
public selectionID: Uint8Array;
|
|
803
|
+
public stateProofID: Uint8Array;
|
|
804
|
+
|
|
805
|
+
public voteFirstValid: bigint;
|
|
806
|
+
public voteLastValid: bigint;
|
|
807
|
+
public voteKeyDilution: bigint;
|
|
808
|
+
|
|
809
|
+
constructor(params: {
|
|
810
|
+
voteID: Uint8Array;
|
|
811
|
+
selectionID: Uint8Array;
|
|
812
|
+
stateProofID: Uint8Array;
|
|
813
|
+
voteFirstValid: bigint;
|
|
814
|
+
voteLastValid: bigint;
|
|
815
|
+
voteKeyDilution: bigint;
|
|
816
|
+
}) {
|
|
817
|
+
this.voteID = params.voteID;
|
|
818
|
+
this.selectionID = params.selectionID;
|
|
819
|
+
this.stateProofID = params.stateProofID;
|
|
820
|
+
this.voteFirstValid = params.voteFirstValid;
|
|
821
|
+
this.voteLastValid = params.voteLastValid;
|
|
822
|
+
this.voteKeyDilution = params.voteKeyDilution;
|
|
823
|
+
}
|
|
824
|
+
|
|
825
|
+
// eslint-disable-next-line class-methods-use-this
|
|
826
|
+
public getEncodingSchema(): Schema {
|
|
827
|
+
return VotingData.encodingSchema;
|
|
828
|
+
}
|
|
829
|
+
|
|
830
|
+
public toEncodingData(): Map<string, unknown> {
|
|
831
|
+
return new Map<string, unknown>([
|
|
832
|
+
['VoteID', this.voteID],
|
|
833
|
+
['SelectionID', this.selectionID],
|
|
834
|
+
['StateProofID', this.stateProofID],
|
|
835
|
+
['VoteFirstValid', this.voteFirstValid],
|
|
836
|
+
['VoteLastValid', this.voteLastValid],
|
|
837
|
+
['VoteKeyDilution', this.voteKeyDilution],
|
|
838
|
+
]);
|
|
839
|
+
}
|
|
840
|
+
|
|
841
|
+
public static fromEncodingData(data: unknown): VotingData {
|
|
842
|
+
if (!(data instanceof Map)) {
|
|
843
|
+
throw new Error(`Invalid decoded VotingData: ${data}`);
|
|
844
|
+
}
|
|
845
|
+
return new VotingData({
|
|
846
|
+
voteID: data.get('VoteID'),
|
|
847
|
+
selectionID: data.get('SelectionID'),
|
|
848
|
+
stateProofID: data.get('StateProofID'),
|
|
849
|
+
voteFirstValid: data.get('VoteFirstValid'),
|
|
850
|
+
voteLastValid: data.get('VoteLastValid'),
|
|
851
|
+
voteKeyDilution: data.get('VoteKeyDilution'),
|
|
852
|
+
});
|
|
853
|
+
}
|
|
854
|
+
}
|
|
855
|
+
|
|
856
|
+
/**
|
|
857
|
+
* AccountBaseData contains base account info like balance, status and total number of resources
|
|
858
|
+
*/
|
|
859
|
+
export class AccountBaseData implements Encodable {
|
|
860
|
+
public static readonly encodingSchema = new NamedMapSchema(
|
|
861
|
+
allOmitEmpty([
|
|
862
|
+
{ key: 'Status', valueSchema: new Uint64Schema() }, // status
|
|
863
|
+
{ key: 'MicroAlgos', valueSchema: new Uint64Schema() }, // microAlgos
|
|
864
|
+
{ key: 'RewardsBase', valueSchema: new Uint64Schema() }, // rewardsBase
|
|
865
|
+
{
|
|
866
|
+
key: 'RewardedMicroAlgos', // rewardedMicroAlgos
|
|
867
|
+
valueSchema: new Uint64Schema(),
|
|
868
|
+
},
|
|
869
|
+
{ key: 'AuthAddr', valueSchema: new AddressSchema() }, // authAddr
|
|
870
|
+
{
|
|
871
|
+
key: 'IncentiveEligible', // incentiveEligible
|
|
872
|
+
valueSchema: new BooleanSchema(),
|
|
873
|
+
},
|
|
874
|
+
{
|
|
875
|
+
key: 'TotalAppSchema', // totalAppSchema
|
|
876
|
+
valueSchema: StateSchema.encodingSchema,
|
|
877
|
+
},
|
|
878
|
+
{
|
|
879
|
+
key: 'TotalExtraAppPages', // totalExtraAppPages
|
|
880
|
+
valueSchema: new Uint64Schema(),
|
|
881
|
+
},
|
|
882
|
+
{
|
|
883
|
+
key: 'TotalAppParams', // totalAppParams
|
|
884
|
+
valueSchema: new Uint64Schema(),
|
|
885
|
+
},
|
|
886
|
+
{
|
|
887
|
+
key: 'TotalAppLocalStates', // totalAppLocalStates
|
|
888
|
+
valueSchema: new Uint64Schema(),
|
|
889
|
+
},
|
|
890
|
+
{
|
|
891
|
+
key: 'TotalAssetParams', // totalAssetParams
|
|
892
|
+
valueSchema: new Uint64Schema(),
|
|
893
|
+
},
|
|
894
|
+
{ key: 'TotalAssets', valueSchema: new Uint64Schema() }, // totalAssets
|
|
895
|
+
{ key: 'TotalBoxes', valueSchema: new Uint64Schema() }, // totalBoxes
|
|
896
|
+
{
|
|
897
|
+
key: 'TotalBoxBytes', // totalBoxBytes
|
|
898
|
+
valueSchema: new Uint64Schema(),
|
|
899
|
+
},
|
|
900
|
+
{ key: 'LastProposed', valueSchema: new Uint64Schema() }, // lastProposed
|
|
901
|
+
{
|
|
902
|
+
key: 'LastHeartbeat', // lastHeartbeat
|
|
903
|
+
valueSchema: new Uint64Schema(),
|
|
904
|
+
},
|
|
905
|
+
])
|
|
906
|
+
);
|
|
907
|
+
|
|
908
|
+
/**
|
|
909
|
+
* Account status. Values are:
|
|
910
|
+
* * 0: Offline
|
|
911
|
+
* * 1: Online
|
|
912
|
+
* * 2: NotParticipating
|
|
913
|
+
*/
|
|
914
|
+
public status: number;
|
|
915
|
+
public microAlgos: bigint;
|
|
916
|
+
public rewardsBase: bigint;
|
|
917
|
+
public rewardedMicroAlgos: bigint;
|
|
918
|
+
public authAddr: Address;
|
|
919
|
+
public incentiveEligible: boolean;
|
|
920
|
+
|
|
921
|
+
/**
|
|
922
|
+
* Totals across created globals, and opted in locals.
|
|
923
|
+
*/
|
|
924
|
+
public totalAppSchema: StateSchema;
|
|
925
|
+
/**
|
|
926
|
+
* Total number of extra pages across all created apps
|
|
927
|
+
*/
|
|
928
|
+
public totalExtraAppPages: number;
|
|
929
|
+
/**
|
|
930
|
+
* Total number of apps this account has created
|
|
931
|
+
*/
|
|
932
|
+
public totalAppParams: bigint;
|
|
933
|
+
/**
|
|
934
|
+
* Total number of apps this account is opted into.
|
|
935
|
+
*/
|
|
936
|
+
public totalAppLocalStates: bigint;
|
|
937
|
+
/**
|
|
938
|
+
* Total number of assets created by this account
|
|
939
|
+
*/
|
|
940
|
+
public totalAssetParams: bigint;
|
|
941
|
+
/**
|
|
942
|
+
* Total of asset creations and optins (i.e. number of holdings)
|
|
943
|
+
*/
|
|
944
|
+
public totalAssets: bigint;
|
|
945
|
+
/**
|
|
946
|
+
* Total number of boxes associated to this account
|
|
947
|
+
*/
|
|
948
|
+
public totalBoxes: bigint;
|
|
949
|
+
/**
|
|
950
|
+
* Total bytes for this account's boxes. keys _and_ values count
|
|
951
|
+
*/
|
|
952
|
+
public totalBoxBytes: bigint;
|
|
953
|
+
|
|
954
|
+
/**
|
|
955
|
+
* The last round that this account proposed the winning block.
|
|
956
|
+
*/
|
|
957
|
+
public lastProposed: bigint;
|
|
958
|
+
/**
|
|
959
|
+
* The last round that this account sent a heartbeat to show it was online.
|
|
960
|
+
*/
|
|
961
|
+
public lastHeartbeat: bigint;
|
|
962
|
+
|
|
963
|
+
public constructor(params: {
|
|
964
|
+
status: number;
|
|
965
|
+
microAlgos: bigint;
|
|
966
|
+
rewardsBase: bigint;
|
|
967
|
+
rewardedMicroAlgos: bigint;
|
|
968
|
+
authAddr: Address;
|
|
969
|
+
incentiveEligible: boolean;
|
|
970
|
+
totalAppSchema: StateSchema;
|
|
971
|
+
totalExtraAppPages: number;
|
|
972
|
+
totalAppParams: bigint;
|
|
973
|
+
totalAppLocalStates: bigint;
|
|
974
|
+
totalAssetParams: bigint;
|
|
975
|
+
totalAssets: bigint;
|
|
976
|
+
totalBoxes: bigint;
|
|
977
|
+
totalBoxBytes: bigint;
|
|
978
|
+
lastProposed: bigint;
|
|
979
|
+
lastHeartbeat: bigint;
|
|
980
|
+
}) {
|
|
981
|
+
this.status = params.status;
|
|
982
|
+
this.microAlgos = params.microAlgos;
|
|
983
|
+
this.rewardsBase = params.rewardsBase;
|
|
984
|
+
this.rewardedMicroAlgos = params.rewardedMicroAlgos;
|
|
985
|
+
this.authAddr = params.authAddr;
|
|
986
|
+
this.incentiveEligible = params.incentiveEligible;
|
|
987
|
+
this.totalAppSchema = params.totalAppSchema;
|
|
988
|
+
this.totalExtraAppPages = params.totalExtraAppPages;
|
|
989
|
+
this.totalAppParams = params.totalAppParams;
|
|
990
|
+
this.totalAppLocalStates = params.totalAppLocalStates;
|
|
991
|
+
this.totalAssetParams = params.totalAssetParams;
|
|
992
|
+
this.totalAssets = params.totalAssets;
|
|
993
|
+
this.totalBoxes = params.totalBoxes;
|
|
994
|
+
this.totalBoxBytes = params.totalBoxBytes;
|
|
995
|
+
this.lastProposed = params.lastProposed;
|
|
996
|
+
this.lastHeartbeat = params.lastHeartbeat;
|
|
997
|
+
}
|
|
998
|
+
|
|
999
|
+
// eslint-disable-next-line class-methods-use-this
|
|
1000
|
+
public getEncodingSchema(): Schema {
|
|
1001
|
+
return AccountBaseData.encodingSchema;
|
|
1002
|
+
}
|
|
1003
|
+
|
|
1004
|
+
public toEncodingData(): Map<string, unknown> {
|
|
1005
|
+
return new Map<string, unknown>([
|
|
1006
|
+
['Status', this.status],
|
|
1007
|
+
['MicroAlgos', this.microAlgos],
|
|
1008
|
+
['RewardsBase', this.rewardsBase],
|
|
1009
|
+
['RewardedMicroAlgos', this.rewardedMicroAlgos],
|
|
1010
|
+
['AuthAddr', this.authAddr],
|
|
1011
|
+
['IncentiveEligible', this.incentiveEligible],
|
|
1012
|
+
['TotalAppSchema', this.totalAppSchema.toEncodingData()],
|
|
1013
|
+
['TotalExtraAppPages', this.totalExtraAppPages],
|
|
1014
|
+
['TotalAppParams', this.totalAppParams],
|
|
1015
|
+
['TotalAppLocalStates', this.totalAppLocalStates],
|
|
1016
|
+
['TotalAssetParams', this.totalAssetParams],
|
|
1017
|
+
['TotalAssets', this.totalAssets],
|
|
1018
|
+
['TotalBoxes', this.totalBoxes],
|
|
1019
|
+
['TotalBoxBytes', this.totalBoxBytes],
|
|
1020
|
+
['LastProposed', this.lastProposed],
|
|
1021
|
+
['LastHeartbeat', this.lastHeartbeat],
|
|
1022
|
+
]);
|
|
1023
|
+
}
|
|
1024
|
+
|
|
1025
|
+
public static fromEncodingData(data: unknown): AccountBaseData {
|
|
1026
|
+
if (!(data instanceof Map)) {
|
|
1027
|
+
throw new Error(`Invalid decoded AccountBaseData: ${data}`);
|
|
1028
|
+
}
|
|
1029
|
+
return new AccountBaseData({
|
|
1030
|
+
status: Number(data.get('Status')),
|
|
1031
|
+
microAlgos: data.get('MicroAlgos'),
|
|
1032
|
+
rewardsBase: data.get('RewardsBase'),
|
|
1033
|
+
rewardedMicroAlgos: data.get('RewardedMicroAlgos'),
|
|
1034
|
+
authAddr: data.get('AuthAddr'),
|
|
1035
|
+
incentiveEligible: data.get('IncentiveEligible'),
|
|
1036
|
+
totalAppSchema: StateSchema.fromEncodingData(data.get('TotalAppSchema')),
|
|
1037
|
+
totalExtraAppPages: Number(data.get('TotalExtraAppPages')),
|
|
1038
|
+
totalAppParams: data.get('TotalAppParams'),
|
|
1039
|
+
totalAppLocalStates: data.get('TotalAppLocalStates'),
|
|
1040
|
+
totalAssetParams: data.get('TotalAssetParams'),
|
|
1041
|
+
totalAssets: data.get('TotalAssets'),
|
|
1042
|
+
totalBoxes: data.get('TotalBoxes'),
|
|
1043
|
+
totalBoxBytes: data.get('TotalBoxBytes'),
|
|
1044
|
+
lastProposed: data.get('LastProposed'),
|
|
1045
|
+
lastHeartbeat: data.get('LastHeartbeat'),
|
|
1046
|
+
});
|
|
1047
|
+
}
|
|
1048
|
+
}
|
|
1049
|
+
|
|
1050
|
+
/**
|
|
1051
|
+
* AccountData provides per-account data
|
|
1052
|
+
*/
|
|
1053
|
+
export class AccountData implements Encodable {
|
|
1054
|
+
public static readonly encodingSchema = new NamedMapSchema(
|
|
1055
|
+
allOmitEmpty([
|
|
1056
|
+
{
|
|
1057
|
+
key: '',
|
|
1058
|
+
valueSchema: AccountBaseData.encodingSchema,
|
|
1059
|
+
embedded: true,
|
|
1060
|
+
},
|
|
1061
|
+
{
|
|
1062
|
+
key: '',
|
|
1063
|
+
valueSchema: VotingData.encodingSchema,
|
|
1064
|
+
embedded: true,
|
|
1065
|
+
},
|
|
1066
|
+
])
|
|
1067
|
+
);
|
|
1068
|
+
|
|
1069
|
+
public accountBaseData: AccountBaseData;
|
|
1070
|
+
public votingData: VotingData;
|
|
1071
|
+
|
|
1072
|
+
constructor(params: {
|
|
1073
|
+
accountBaseData: AccountBaseData;
|
|
1074
|
+
votingData: VotingData;
|
|
1075
|
+
}) {
|
|
1076
|
+
this.accountBaseData = params.accountBaseData;
|
|
1077
|
+
this.votingData = params.votingData;
|
|
1078
|
+
}
|
|
1079
|
+
|
|
1080
|
+
// eslint-disable-next-line class-methods-use-this
|
|
1081
|
+
public getEncodingSchema(): Schema {
|
|
1082
|
+
return AccountData.encodingSchema;
|
|
1083
|
+
}
|
|
1084
|
+
|
|
1085
|
+
public toEncodingData(): Map<string, unknown> {
|
|
1086
|
+
return combineMaps(
|
|
1087
|
+
this.accountBaseData.toEncodingData(),
|
|
1088
|
+
this.votingData.toEncodingData()
|
|
1089
|
+
);
|
|
1090
|
+
}
|
|
1091
|
+
|
|
1092
|
+
public static fromEncodingData(data: unknown): AccountData {
|
|
1093
|
+
if (!(data instanceof Map)) {
|
|
1094
|
+
throw new Error(`Invalid decoded AccountData: ${data}`);
|
|
1095
|
+
}
|
|
1096
|
+
return new AccountData({
|
|
1097
|
+
accountBaseData: AccountBaseData.fromEncodingData(data),
|
|
1098
|
+
votingData: VotingData.fromEncodingData(data),
|
|
1099
|
+
});
|
|
1100
|
+
}
|
|
1101
|
+
}
|
|
1102
|
+
|
|
1103
|
+
export class BalanceRecord implements Encodable {
|
|
1104
|
+
public static readonly encodingSchema = new NamedMapSchema(
|
|
1105
|
+
allOmitEmpty([
|
|
1106
|
+
{
|
|
1107
|
+
key: 'Addr',
|
|
1108
|
+
valueSchema: new AddressSchema(),
|
|
1109
|
+
},
|
|
1110
|
+
{
|
|
1111
|
+
key: '',
|
|
1112
|
+
valueSchema: AccountData.encodingSchema,
|
|
1113
|
+
embedded: true,
|
|
1114
|
+
},
|
|
1115
|
+
])
|
|
1116
|
+
);
|
|
1117
|
+
|
|
1118
|
+
public addr: Address;
|
|
1119
|
+
public accountData: AccountData;
|
|
1120
|
+
|
|
1121
|
+
constructor(params: { addr: Address; accountData: AccountData }) {
|
|
1122
|
+
this.addr = params.addr;
|
|
1123
|
+
this.accountData = params.accountData;
|
|
1124
|
+
}
|
|
1125
|
+
|
|
1126
|
+
// eslint-disable-next-line class-methods-use-this
|
|
1127
|
+
public getEncodingSchema(): Schema {
|
|
1128
|
+
return BalanceRecord.encodingSchema;
|
|
1129
|
+
}
|
|
1130
|
+
|
|
1131
|
+
public toEncodingData(): Map<string, unknown> {
|
|
1132
|
+
return combineMaps(
|
|
1133
|
+
new Map<string, unknown>([['Addr', this.addr]]),
|
|
1134
|
+
this.accountData.toEncodingData()
|
|
1135
|
+
);
|
|
1136
|
+
}
|
|
1137
|
+
|
|
1138
|
+
public static fromEncodingData(data: unknown): BalanceRecord {
|
|
1139
|
+
if (!(data instanceof Map)) {
|
|
1140
|
+
throw new Error(`Invalid decoded BalanceRecord: ${data}`);
|
|
1141
|
+
}
|
|
1142
|
+
return new BalanceRecord({
|
|
1143
|
+
addr: data.get('Addr'),
|
|
1144
|
+
accountData: AccountData.fromEncodingData(data),
|
|
1145
|
+
});
|
|
1146
|
+
}
|
|
1147
|
+
}
|
|
1148
|
+
|
|
1149
|
+
export class AccountDeltas implements Encodable {
|
|
1150
|
+
public static readonly encodingSchema = new NamedMapSchema(
|
|
1151
|
+
allOmitEmpty([
|
|
1152
|
+
{
|
|
1153
|
+
key: 'Accts', // accounts
|
|
1154
|
+
valueSchema: new ArraySchema(BalanceRecord.encodingSchema),
|
|
1155
|
+
},
|
|
1156
|
+
{
|
|
1157
|
+
key: 'AppResources', // appResources
|
|
1158
|
+
valueSchema: new OptionalSchema(
|
|
1159
|
+
new ArraySchema(AppResourceRecord.encodingSchema)
|
|
1160
|
+
),
|
|
1161
|
+
},
|
|
1162
|
+
{
|
|
1163
|
+
key: 'AssetResources', // assetResources
|
|
1164
|
+
valueSchema: new OptionalSchema(
|
|
1165
|
+
new ArraySchema(AssetResourceRecord.encodingSchema)
|
|
1166
|
+
),
|
|
1167
|
+
},
|
|
1168
|
+
])
|
|
1169
|
+
);
|
|
1170
|
+
|
|
1171
|
+
public accounts: BalanceRecord[];
|
|
1172
|
+
public appResources: AppResourceRecord[];
|
|
1173
|
+
public assetResources: AssetResourceRecord[];
|
|
1174
|
+
|
|
1175
|
+
constructor(params: {
|
|
1176
|
+
accounts: BalanceRecord[];
|
|
1177
|
+
appResources: AppResourceRecord[];
|
|
1178
|
+
assetResources: AssetResourceRecord[];
|
|
1179
|
+
}) {
|
|
1180
|
+
this.accounts = params.accounts;
|
|
1181
|
+
this.appResources = params.appResources;
|
|
1182
|
+
this.assetResources = params.assetResources;
|
|
1183
|
+
}
|
|
1184
|
+
|
|
1185
|
+
// eslint-disable-next-line class-methods-use-this
|
|
1186
|
+
public getEncodingSchema(): Schema {
|
|
1187
|
+
return AccountDeltas.encodingSchema;
|
|
1188
|
+
}
|
|
1189
|
+
|
|
1190
|
+
public toEncodingData(): Map<string, unknown> {
|
|
1191
|
+
return new Map<string, unknown>([
|
|
1192
|
+
['Accts', this.accounts.map((account) => account.toEncodingData())],
|
|
1193
|
+
[
|
|
1194
|
+
'AppResources',
|
|
1195
|
+
this.appResources.length === 0
|
|
1196
|
+
? undefined
|
|
1197
|
+
: this.appResources.map((appResource) =>
|
|
1198
|
+
appResource.toEncodingData()
|
|
1199
|
+
),
|
|
1200
|
+
],
|
|
1201
|
+
[
|
|
1202
|
+
'AssetResources',
|
|
1203
|
+
this.assetResources.length === 0
|
|
1204
|
+
? undefined
|
|
1205
|
+
: this.assetResources.map((assetResource) =>
|
|
1206
|
+
assetResource.toEncodingData()
|
|
1207
|
+
),
|
|
1208
|
+
],
|
|
1209
|
+
]);
|
|
1210
|
+
}
|
|
1211
|
+
|
|
1212
|
+
public static fromEncodingData(data: unknown): AccountDeltas {
|
|
1213
|
+
if (!(data instanceof Map)) {
|
|
1214
|
+
throw new Error(`Invalid decoded AccountDeltas: ${data}`);
|
|
1215
|
+
}
|
|
1216
|
+
return new AccountDeltas({
|
|
1217
|
+
accounts: (data.get('Accts') ?? []).map(BalanceRecord.fromEncodingData),
|
|
1218
|
+
appResources: (data.get('AppResources') ?? []).map(
|
|
1219
|
+
AppResourceRecord.fromEncodingData
|
|
1220
|
+
),
|
|
1221
|
+
assetResources: (data.get('AssetResources') ?? []).map(
|
|
1222
|
+
AssetResourceRecord.fromEncodingData
|
|
1223
|
+
),
|
|
1224
|
+
});
|
|
1225
|
+
}
|
|
1226
|
+
}
|
|
1227
|
+
|
|
1228
|
+
/**
|
|
1229
|
+
* A KvValueDelta shows how the Data associated with a key in the kvstore has changed.
|
|
1230
|
+
*/
|
|
1231
|
+
export class KvValueDelta implements Encodable {
|
|
1232
|
+
public static readonly encodingSchema = new NamedMapSchema(
|
|
1233
|
+
allOmitEmpty([
|
|
1234
|
+
{
|
|
1235
|
+
key: 'Data',
|
|
1236
|
+
valueSchema: new OptionalSchema(new ByteArraySchema()),
|
|
1237
|
+
},
|
|
1238
|
+
{
|
|
1239
|
+
key: 'OldData',
|
|
1240
|
+
valueSchema: new OptionalSchema(new ByteArraySchema()),
|
|
1241
|
+
},
|
|
1242
|
+
])
|
|
1243
|
+
);
|
|
1244
|
+
|
|
1245
|
+
/**
|
|
1246
|
+
* Data stores the most recent value (undefined means deleted)
|
|
1247
|
+
*/
|
|
1248
|
+
public data?: Uint8Array;
|
|
1249
|
+
|
|
1250
|
+
/**
|
|
1251
|
+
* OldData stores the previous value (undefined means didn't exist)
|
|
1252
|
+
*/
|
|
1253
|
+
public oldData?: Uint8Array;
|
|
1254
|
+
|
|
1255
|
+
constructor(params: { data?: Uint8Array; oldData?: Uint8Array }) {
|
|
1256
|
+
this.data = params.data;
|
|
1257
|
+
this.oldData = params.oldData;
|
|
1258
|
+
}
|
|
1259
|
+
|
|
1260
|
+
// eslint-disable-next-line class-methods-use-this
|
|
1261
|
+
public getEncodingSchema(): Schema {
|
|
1262
|
+
return KvValueDelta.encodingSchema;
|
|
1263
|
+
}
|
|
1264
|
+
|
|
1265
|
+
public toEncodingData(): Map<string, unknown> {
|
|
1266
|
+
return new Map<string, unknown>([
|
|
1267
|
+
['Data', this.data],
|
|
1268
|
+
['OldData', this.oldData],
|
|
1269
|
+
]);
|
|
1270
|
+
}
|
|
1271
|
+
|
|
1272
|
+
public static fromEncodingData(data: unknown): KvValueDelta {
|
|
1273
|
+
if (!(data instanceof Map)) {
|
|
1274
|
+
throw new Error(`Invalid decoded KvValueDelta: ${data}`);
|
|
1275
|
+
}
|
|
1276
|
+
return new KvValueDelta({
|
|
1277
|
+
data: data.get('Data'),
|
|
1278
|
+
oldData: data.get('OldData'),
|
|
1279
|
+
});
|
|
1280
|
+
}
|
|
1281
|
+
}
|
|
1282
|
+
|
|
1283
|
+
/**
|
|
1284
|
+
* IncludedTransactions defines the transactions included in a block, their index and last valid round.
|
|
1285
|
+
*/
|
|
1286
|
+
export class IncludedTransactions implements Encodable {
|
|
1287
|
+
public static readonly encodingSchema = new NamedMapSchema(
|
|
1288
|
+
allOmitEmpty([
|
|
1289
|
+
{
|
|
1290
|
+
key: 'LastValid',
|
|
1291
|
+
valueSchema: new Uint64Schema(),
|
|
1292
|
+
},
|
|
1293
|
+
{
|
|
1294
|
+
key: 'Intra',
|
|
1295
|
+
valueSchema: new Uint64Schema(),
|
|
1296
|
+
},
|
|
1297
|
+
])
|
|
1298
|
+
);
|
|
1299
|
+
|
|
1300
|
+
public lastValid: bigint;
|
|
1301
|
+
/**
|
|
1302
|
+
* The index of the transaction in the block
|
|
1303
|
+
*/
|
|
1304
|
+
public intra: number;
|
|
1305
|
+
|
|
1306
|
+
constructor(params: { lastValid: bigint; intra: number }) {
|
|
1307
|
+
this.lastValid = params.lastValid;
|
|
1308
|
+
this.intra = params.intra;
|
|
1309
|
+
}
|
|
1310
|
+
|
|
1311
|
+
// eslint-disable-next-line class-methods-use-this
|
|
1312
|
+
public getEncodingSchema(): Schema {
|
|
1313
|
+
return IncludedTransactions.encodingSchema;
|
|
1314
|
+
}
|
|
1315
|
+
|
|
1316
|
+
public toEncodingData(): Map<string, unknown> {
|
|
1317
|
+
return new Map<string, unknown>([
|
|
1318
|
+
['LastValid', this.lastValid],
|
|
1319
|
+
['Intra', this.intra],
|
|
1320
|
+
]);
|
|
1321
|
+
}
|
|
1322
|
+
|
|
1323
|
+
public static fromEncodingData(data: unknown): IncludedTransactions {
|
|
1324
|
+
if (!(data instanceof Map)) {
|
|
1325
|
+
throw new Error(`Invalid decoded IncludedTransactions: ${data}`);
|
|
1326
|
+
}
|
|
1327
|
+
return new IncludedTransactions({
|
|
1328
|
+
lastValid: data.get('LastValid'),
|
|
1329
|
+
intra: Number(data.get('Intra')),
|
|
1330
|
+
});
|
|
1331
|
+
}
|
|
1332
|
+
}
|
|
1333
|
+
|
|
1334
|
+
/**
|
|
1335
|
+
* ModifiedCreatable represents a change to a single creatable state
|
|
1336
|
+
*/
|
|
1337
|
+
export class ModifiedCreatable implements Encodable {
|
|
1338
|
+
public static readonly encodingSchema = new NamedMapSchema(
|
|
1339
|
+
allOmitEmpty([
|
|
1340
|
+
{
|
|
1341
|
+
key: 'Ctype', // creatableType
|
|
1342
|
+
valueSchema: new Uint64Schema(),
|
|
1343
|
+
},
|
|
1344
|
+
{
|
|
1345
|
+
key: 'Created', // created
|
|
1346
|
+
valueSchema: new BooleanSchema(),
|
|
1347
|
+
},
|
|
1348
|
+
{
|
|
1349
|
+
key: 'Creator', // creator
|
|
1350
|
+
valueSchema: new AddressSchema(),
|
|
1351
|
+
},
|
|
1352
|
+
{
|
|
1353
|
+
key: 'Ndeltas', // ndeltas
|
|
1354
|
+
valueSchema: new Uint64Schema(),
|
|
1355
|
+
},
|
|
1356
|
+
])
|
|
1357
|
+
);
|
|
1358
|
+
|
|
1359
|
+
/**
|
|
1360
|
+
* Type of the creatable. The values are:
|
|
1361
|
+
* * 0: Asset
|
|
1362
|
+
* * 1: Application
|
|
1363
|
+
*/
|
|
1364
|
+
public creatableType: number;
|
|
1365
|
+
|
|
1366
|
+
/**
|
|
1367
|
+
* Created if true, deleted if false
|
|
1368
|
+
*/
|
|
1369
|
+
public created: boolean;
|
|
1370
|
+
|
|
1371
|
+
/**
|
|
1372
|
+
* creator of the app/asset
|
|
1373
|
+
*/
|
|
1374
|
+
public creator: Address;
|
|
1375
|
+
|
|
1376
|
+
/**
|
|
1377
|
+
* Keeps track of how many times this app/asset appears in accountUpdates.creatableDeltas
|
|
1378
|
+
*/
|
|
1379
|
+
public ndeltas: number;
|
|
1380
|
+
|
|
1381
|
+
public constructor(params: {
|
|
1382
|
+
creatableType: number;
|
|
1383
|
+
created: boolean;
|
|
1384
|
+
creator: Address;
|
|
1385
|
+
ndeltas: number;
|
|
1386
|
+
}) {
|
|
1387
|
+
this.creatableType = params.creatableType;
|
|
1388
|
+
this.created = params.created;
|
|
1389
|
+
this.creator = params.creator;
|
|
1390
|
+
this.ndeltas = params.ndeltas;
|
|
1391
|
+
}
|
|
1392
|
+
|
|
1393
|
+
// eslint-disable-next-line class-methods-use-this
|
|
1394
|
+
public getEncodingSchema(): Schema {
|
|
1395
|
+
return ModifiedCreatable.encodingSchema;
|
|
1396
|
+
}
|
|
1397
|
+
|
|
1398
|
+
public toEncodingData(): Map<string, unknown> {
|
|
1399
|
+
return new Map<string, unknown>([
|
|
1400
|
+
['Ctype', this.creatableType],
|
|
1401
|
+
['Created', this.created],
|
|
1402
|
+
['Creator', this.creator],
|
|
1403
|
+
['Ndeltas', this.ndeltas],
|
|
1404
|
+
]);
|
|
1405
|
+
}
|
|
1406
|
+
|
|
1407
|
+
public static fromEncodingData(data: unknown): ModifiedCreatable {
|
|
1408
|
+
if (!(data instanceof Map)) {
|
|
1409
|
+
throw new Error(`Invalid decoded ModifiedCreatable: ${data}`);
|
|
1410
|
+
}
|
|
1411
|
+
return new ModifiedCreatable({
|
|
1412
|
+
creatableType: Number(data.get('Ctype')),
|
|
1413
|
+
created: data.get('Created'),
|
|
1414
|
+
creator: data.get('Creator'),
|
|
1415
|
+
ndeltas: Number(data.get('Ndeltas')),
|
|
1416
|
+
});
|
|
1417
|
+
}
|
|
1418
|
+
}
|
|
1419
|
+
|
|
1420
|
+
/**
|
|
1421
|
+
* AlgoCount represents a total of algos of a certain class of accounts (split up by their Status value).
|
|
1422
|
+
*/
|
|
1423
|
+
export class AlgoCount implements Encodable {
|
|
1424
|
+
public static readonly encodingSchema = new NamedMapSchema(
|
|
1425
|
+
allOmitEmpty([
|
|
1426
|
+
{ key: 'mon', valueSchema: new Uint64Schema() }, // money
|
|
1427
|
+
{ key: 'rwd', valueSchema: new Uint64Schema() }, // rewardUnits
|
|
1428
|
+
])
|
|
1429
|
+
);
|
|
1430
|
+
|
|
1431
|
+
/**
|
|
1432
|
+
* Sum of algos of all accounts in this class.
|
|
1433
|
+
*/
|
|
1434
|
+
public money: bigint;
|
|
1435
|
+
|
|
1436
|
+
/**
|
|
1437
|
+
* Total number of whole reward units in accounts.
|
|
1438
|
+
*/
|
|
1439
|
+
public rewardUnits: bigint;
|
|
1440
|
+
|
|
1441
|
+
constructor(params: { money: bigint; rewardUnits: bigint }) {
|
|
1442
|
+
this.money = params.money;
|
|
1443
|
+
this.rewardUnits = params.rewardUnits;
|
|
1444
|
+
}
|
|
1445
|
+
|
|
1446
|
+
// eslint-disable-next-line class-methods-use-this
|
|
1447
|
+
public getEncodingSchema(): Schema {
|
|
1448
|
+
return AlgoCount.encodingSchema;
|
|
1449
|
+
}
|
|
1450
|
+
|
|
1451
|
+
public toEncodingData(): Map<string, unknown> {
|
|
1452
|
+
return new Map<string, unknown>([
|
|
1453
|
+
['mon', this.money],
|
|
1454
|
+
['rwd', this.rewardUnits],
|
|
1455
|
+
]);
|
|
1456
|
+
}
|
|
1457
|
+
|
|
1458
|
+
public static fromEncodingData(data: unknown): AlgoCount {
|
|
1459
|
+
if (!(data instanceof Map)) {
|
|
1460
|
+
throw new Error(`Invalid decoded AlgoCount: ${data}`);
|
|
1461
|
+
}
|
|
1462
|
+
return new AlgoCount({
|
|
1463
|
+
money: data.get('mon'),
|
|
1464
|
+
rewardUnits: data.get('rwd'),
|
|
1465
|
+
});
|
|
1466
|
+
}
|
|
1467
|
+
}
|
|
1468
|
+
|
|
1469
|
+
/**
|
|
1470
|
+
* AccountTotals represents the totals of algos in the system grouped by different account status values.
|
|
1471
|
+
*/
|
|
1472
|
+
export class AccountTotals implements Encodable {
|
|
1473
|
+
public static readonly encodingSchema = new NamedMapSchema(
|
|
1474
|
+
allOmitEmpty([
|
|
1475
|
+
{ key: 'online', valueSchema: AlgoCount.encodingSchema }, // online
|
|
1476
|
+
{ key: 'offline', valueSchema: AlgoCount.encodingSchema }, // offline
|
|
1477
|
+
{ key: 'notpart', valueSchema: AlgoCount.encodingSchema }, // notParticipating
|
|
1478
|
+
{ key: 'rwdlvl', valueSchema: new Uint64Schema() }, // rewardsLevel
|
|
1479
|
+
])
|
|
1480
|
+
);
|
|
1481
|
+
|
|
1482
|
+
public online: AlgoCount;
|
|
1483
|
+
public offline: AlgoCount;
|
|
1484
|
+
public notParticipating: AlgoCount;
|
|
1485
|
+
|
|
1486
|
+
/**
|
|
1487
|
+
* Total number of algos received per reward unit since genesis
|
|
1488
|
+
*/
|
|
1489
|
+
public rewardsLevel: bigint;
|
|
1490
|
+
|
|
1491
|
+
constructor(params: {
|
|
1492
|
+
online: AlgoCount;
|
|
1493
|
+
offline: AlgoCount;
|
|
1494
|
+
notParticipating: AlgoCount;
|
|
1495
|
+
rewardsLevel: bigint;
|
|
1496
|
+
}) {
|
|
1497
|
+
this.online = params.online;
|
|
1498
|
+
this.offline = params.offline;
|
|
1499
|
+
this.notParticipating = params.notParticipating;
|
|
1500
|
+
this.rewardsLevel = params.rewardsLevel;
|
|
1501
|
+
}
|
|
1502
|
+
|
|
1503
|
+
// eslint-disable-next-line class-methods-use-this
|
|
1504
|
+
public getEncodingSchema(): Schema {
|
|
1505
|
+
return AccountTotals.encodingSchema;
|
|
1506
|
+
}
|
|
1507
|
+
|
|
1508
|
+
public toEncodingData(): Map<string, unknown> {
|
|
1509
|
+
return new Map<string, unknown>([
|
|
1510
|
+
['online', this.online.toEncodingData()],
|
|
1511
|
+
['offline', this.offline.toEncodingData()],
|
|
1512
|
+
['notpart', this.notParticipating.toEncodingData()],
|
|
1513
|
+
['rwdlvl', this.rewardsLevel],
|
|
1514
|
+
]);
|
|
1515
|
+
}
|
|
1516
|
+
|
|
1517
|
+
public static fromEncodingData(data: unknown): AccountTotals {
|
|
1518
|
+
if (!(data instanceof Map)) {
|
|
1519
|
+
throw new Error(`Invalid decoded AccountTotals: ${data}`);
|
|
1520
|
+
}
|
|
1521
|
+
return new AccountTotals({
|
|
1522
|
+
online: AlgoCount.fromEncodingData(data.get('online')),
|
|
1523
|
+
offline: AlgoCount.fromEncodingData(data.get('offline')),
|
|
1524
|
+
notParticipating: AlgoCount.fromEncodingData(data.get('notpart')),
|
|
1525
|
+
rewardsLevel: data.get('rwdlvl'),
|
|
1526
|
+
});
|
|
1527
|
+
}
|
|
1528
|
+
}
|
|
1529
|
+
|
|
1530
|
+
/**
|
|
1531
|
+
* LedgerStateDelta describes the delta between a given round to the previous round
|
|
1532
|
+
*/
|
|
1533
|
+
export class LedgerStateDelta implements Encodable {
|
|
1534
|
+
public static readonly encodingSchema = new NamedMapSchema(
|
|
1535
|
+
allOmitEmpty([
|
|
1536
|
+
{
|
|
1537
|
+
key: 'Accts', // accounts
|
|
1538
|
+
valueSchema: AccountDeltas.encodingSchema,
|
|
1539
|
+
},
|
|
1540
|
+
{
|
|
1541
|
+
key: 'KvMods', // kvMods
|
|
1542
|
+
valueSchema: new OptionalSchema(
|
|
1543
|
+
new SpecialCaseBinaryStringMapSchema(KvValueDelta.encodingSchema)
|
|
1544
|
+
),
|
|
1545
|
+
},
|
|
1546
|
+
{
|
|
1547
|
+
key: 'Txids', // txids
|
|
1548
|
+
valueSchema: new ByteArrayMapSchema(
|
|
1549
|
+
IncludedTransactions.encodingSchema
|
|
1550
|
+
),
|
|
1551
|
+
},
|
|
1552
|
+
{
|
|
1553
|
+
key: 'Txleases', // txleases
|
|
1554
|
+
// Note: because txleases is currently just an UntypedSchema and we are expected to decode
|
|
1555
|
+
// null values for this field, we use OptionalSchema to coerce null values to undefined so
|
|
1556
|
+
// that the values can be properly omitted during encoding.
|
|
1557
|
+
valueSchema: new OptionalSchema(new UntypedSchema()),
|
|
1558
|
+
},
|
|
1559
|
+
{
|
|
1560
|
+
key: 'Creatables', // creatables
|
|
1561
|
+
valueSchema: new OptionalSchema(
|
|
1562
|
+
new Uint64MapSchema(ModifiedCreatable.encodingSchema)
|
|
1563
|
+
),
|
|
1564
|
+
},
|
|
1565
|
+
{
|
|
1566
|
+
key: 'Hdr', // blockHeader
|
|
1567
|
+
valueSchema: BlockHeader.encodingSchema,
|
|
1568
|
+
},
|
|
1569
|
+
{
|
|
1570
|
+
key: 'StateProofNext', // stateProofNext
|
|
1571
|
+
valueSchema: new Uint64Schema(),
|
|
1572
|
+
},
|
|
1573
|
+
{
|
|
1574
|
+
key: 'PrevTimestamp', // prevTimestamp
|
|
1575
|
+
valueSchema: new Uint64Schema(),
|
|
1576
|
+
},
|
|
1577
|
+
{
|
|
1578
|
+
key: 'Totals', // totals
|
|
1579
|
+
valueSchema: AccountTotals.encodingSchema,
|
|
1580
|
+
},
|
|
1581
|
+
])
|
|
1582
|
+
);
|
|
1583
|
+
|
|
1584
|
+
/**
|
|
1585
|
+
* modified new accounts
|
|
1586
|
+
*/
|
|
1587
|
+
public accounts: AccountDeltas;
|
|
1588
|
+
|
|
1589
|
+
/**
|
|
1590
|
+
* modified kv pairs (nil == delete)
|
|
1591
|
+
*/
|
|
1592
|
+
public kvMods: Map<Uint8Array, KvValueDelta>;
|
|
1593
|
+
|
|
1594
|
+
/**
|
|
1595
|
+
* new Txids for the txtail and TxnCounter, mapped to txn.LastValid
|
|
1596
|
+
*/
|
|
1597
|
+
public txids: Map<Uint8Array, IncludedTransactions>;
|
|
1598
|
+
|
|
1599
|
+
// TODO: properly support txleases once we are able to decode msgpack maps with object keys.
|
|
1600
|
+
/**
|
|
1601
|
+
* new txleases for the txtail mapped to expiration
|
|
1602
|
+
*/
|
|
1603
|
+
public txleases: UntypedValue;
|
|
1604
|
+
|
|
1605
|
+
/**
|
|
1606
|
+
* new creatables creator lookup table
|
|
1607
|
+
*/
|
|
1608
|
+
public creatables: Map<bigint, ModifiedCreatable>;
|
|
1609
|
+
|
|
1610
|
+
/**
|
|
1611
|
+
* new block header
|
|
1612
|
+
*/
|
|
1613
|
+
public blockHeader: BlockHeader;
|
|
1614
|
+
|
|
1615
|
+
/**
|
|
1616
|
+
* StateProofNext represents modification on StateProofNextRound field in the block header. If the block contains
|
|
1617
|
+
* a valid state proof transaction, this field will contain the next round for state proof.
|
|
1618
|
+
* otherwise it will be set to 0.
|
|
1619
|
+
*/
|
|
1620
|
+
public stateProofNext: bigint;
|
|
1621
|
+
|
|
1622
|
+
/**
|
|
1623
|
+
* previous block timestamp
|
|
1624
|
+
*/
|
|
1625
|
+
public prevTimestamp: bigint;
|
|
1626
|
+
|
|
1627
|
+
/**
|
|
1628
|
+
* The account totals reflecting the changes in this StateDelta object.
|
|
1629
|
+
*/
|
|
1630
|
+
public totals: AccountTotals;
|
|
1631
|
+
|
|
1632
|
+
public constructor(params: {
|
|
1633
|
+
accounts: AccountDeltas;
|
|
1634
|
+
kvMods: Map<Uint8Array, KvValueDelta>;
|
|
1635
|
+
txids: Map<Uint8Array, IncludedTransactions>;
|
|
1636
|
+
txleases: UntypedValue;
|
|
1637
|
+
creatables: Map<bigint, ModifiedCreatable>;
|
|
1638
|
+
blockHeader: BlockHeader;
|
|
1639
|
+
stateProofNext: bigint;
|
|
1640
|
+
prevTimestamp: bigint;
|
|
1641
|
+
totals: AccountTotals;
|
|
1642
|
+
}) {
|
|
1643
|
+
this.accounts = params.accounts;
|
|
1644
|
+
this.kvMods = params.kvMods;
|
|
1645
|
+
this.txids = params.txids;
|
|
1646
|
+
this.txleases = params.txleases;
|
|
1647
|
+
this.creatables = params.creatables;
|
|
1648
|
+
this.blockHeader = params.blockHeader;
|
|
1649
|
+
this.stateProofNext = params.stateProofNext;
|
|
1650
|
+
this.prevTimestamp = params.prevTimestamp;
|
|
1651
|
+
this.totals = params.totals;
|
|
1652
|
+
}
|
|
1653
|
+
|
|
1654
|
+
// eslint-disable-next-line class-methods-use-this
|
|
1655
|
+
public getEncodingSchema(): Schema {
|
|
1656
|
+
return LedgerStateDelta.encodingSchema;
|
|
1657
|
+
}
|
|
1658
|
+
|
|
1659
|
+
public toEncodingData(): Map<string, unknown> {
|
|
1660
|
+
return new Map<string, unknown>([
|
|
1661
|
+
['Accts', this.accounts.toEncodingData()],
|
|
1662
|
+
[
|
|
1663
|
+
'KvMods',
|
|
1664
|
+
this.kvMods.size === 0
|
|
1665
|
+
? undefined
|
|
1666
|
+
: convertMap(this.kvMods, (key, value) => [
|
|
1667
|
+
key,
|
|
1668
|
+
value.toEncodingData(),
|
|
1669
|
+
]),
|
|
1670
|
+
],
|
|
1671
|
+
[
|
|
1672
|
+
'Txids',
|
|
1673
|
+
convertMap(this.txids, (key, value) => [key, value.toEncodingData()]),
|
|
1674
|
+
],
|
|
1675
|
+
['Txleases', this.txleases.toEncodingData()],
|
|
1676
|
+
[
|
|
1677
|
+
'Creatables',
|
|
1678
|
+
this.creatables.size === 0
|
|
1679
|
+
? undefined
|
|
1680
|
+
: convertMap(this.creatables, (key, value) => [
|
|
1681
|
+
key,
|
|
1682
|
+
value.toEncodingData(),
|
|
1683
|
+
]),
|
|
1684
|
+
],
|
|
1685
|
+
['Hdr', this.blockHeader.toEncodingData()],
|
|
1686
|
+
['StateProofNext', this.stateProofNext],
|
|
1687
|
+
['PrevTimestamp', this.prevTimestamp],
|
|
1688
|
+
['Totals', this.totals.toEncodingData()],
|
|
1689
|
+
]);
|
|
1690
|
+
}
|
|
1691
|
+
|
|
1692
|
+
public static fromEncodingData(data: unknown): LedgerStateDelta {
|
|
1693
|
+
if (!(data instanceof Map)) {
|
|
1694
|
+
throw new Error(`Invalid decoded LedgerStateDelta: ${data}`);
|
|
1695
|
+
}
|
|
1696
|
+
return new LedgerStateDelta({
|
|
1697
|
+
accounts: AccountDeltas.fromEncodingData(data.get('Accts')),
|
|
1698
|
+
kvMods: convertMap(
|
|
1699
|
+
(data.get('KvMods') ?? new Map()) as Map<Uint8Array, unknown>,
|
|
1700
|
+
(key, value) => [key, KvValueDelta.fromEncodingData(value)]
|
|
1701
|
+
),
|
|
1702
|
+
txids: convertMap(
|
|
1703
|
+
data.get('Txids') as Map<Uint8Array, unknown>,
|
|
1704
|
+
(key, value) => [key, IncludedTransactions.fromEncodingData(value)]
|
|
1705
|
+
),
|
|
1706
|
+
txleases: UntypedValue.fromEncodingData(data.get('Txleases')),
|
|
1707
|
+
creatables: convertMap(
|
|
1708
|
+
(data.get('Creatables') ?? new Map()) as Map<bigint, unknown>,
|
|
1709
|
+
(key, value) => [key, ModifiedCreatable.fromEncodingData(value)]
|
|
1710
|
+
),
|
|
1711
|
+
blockHeader: BlockHeader.fromEncodingData(data.get('Hdr')),
|
|
1712
|
+
stateProofNext: data.get('StateProofNext'),
|
|
1713
|
+
prevTimestamp: data.get('PrevTimestamp'),
|
|
1714
|
+
totals: AccountTotals.fromEncodingData(data.get('Totals')),
|
|
1715
|
+
});
|
|
1716
|
+
}
|
|
1717
|
+
}
|