algosdk 2.8.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 +5 -3
- package/dist/cjs/abi/contract.js.map +1 -1
- package/dist/cjs/{types/transactions/asset.js → abi/event.js} +1 -1
- package/dist/cjs/abi/event.js.map +1 -0
- 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 +14 -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 +3712 -1824
- 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 +320 -554
- 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 +3 -1
- package/dist/esm/abi/contract.js.map +1 -1
- package/dist/esm/abi/event.js +2 -0
- package/dist/esm/abi/event.js.map +1 -0
- 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 +8 -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 +3712 -1821
- 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 +314 -513
- 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 +5 -1
- package/dist/types/abi/event.d.ts +16 -0
- 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 +12 -5
- 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 +629 -318
- 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 +129 -388
- 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 +7 -1
- package/src/abi/event.ts +16 -0
- package/src/abi/index.ts +6 -6
- package/src/abi/interface.ts +1 -1
- package/src/abi/method.ts +22 -8
- 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 +4729 -2254
- 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 +670 -1320
- 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.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,713 @@
|
|
|
1
|
+
import { RawBinaryString } from 'algorand-msgpack';
|
|
2
|
+
import {
|
|
3
|
+
Schema,
|
|
4
|
+
MsgpackEncodingData,
|
|
5
|
+
MsgpackRawStringProvider,
|
|
6
|
+
JSONEncodingData,
|
|
7
|
+
PrepareJSONOptions,
|
|
8
|
+
} from '../encoding.js';
|
|
9
|
+
import { ensureUint64, arrayEqual } from '../../utils/utils.js';
|
|
10
|
+
import {
|
|
11
|
+
bytesToString,
|
|
12
|
+
coerceToBytes,
|
|
13
|
+
bytesToBase64,
|
|
14
|
+
base64ToBytes,
|
|
15
|
+
} from '../binarydata.js';
|
|
16
|
+
|
|
17
|
+
/* eslint-disable class-methods-use-this */
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Describes a key-value entry in a NamedMapSchema.
|
|
21
|
+
*/
|
|
22
|
+
export interface NamedMapEntry {
|
|
23
|
+
/**
|
|
24
|
+
* Key of the entry. Must be unique for this map.
|
|
25
|
+
*/
|
|
26
|
+
key: string;
|
|
27
|
+
/**
|
|
28
|
+
* The Schema for the entry's value.
|
|
29
|
+
*/
|
|
30
|
+
valueSchema: Schema;
|
|
31
|
+
/**
|
|
32
|
+
* If true, the entry will be omitted from the encoding if the value is the default value.
|
|
33
|
+
*/
|
|
34
|
+
omitEmpty: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* If true, valueSchema must be a NamedMapSchema and key must be the empty string. The fields of
|
|
37
|
+
* valueSchema will be embedded directly in the parent map.
|
|
38
|
+
*
|
|
39
|
+
* omitEmpty is ignored for embedded entries. Instead, the individual omitEmpty values of the
|
|
40
|
+
* embedded fields are used.
|
|
41
|
+
*/
|
|
42
|
+
embedded?: boolean;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Applies the omitEmpty flag to all entries in the array.
|
|
47
|
+
* @param entries - The entries to apply the flag to.
|
|
48
|
+
* @returns A new array with the omitEmpty flag applied to all entries.
|
|
49
|
+
*/
|
|
50
|
+
export function allOmitEmpty(
|
|
51
|
+
entries: Array<Omit<NamedMapEntry, 'omitEmpty'>>
|
|
52
|
+
): NamedMapEntry[] {
|
|
53
|
+
return entries.map((entry) => ({ ...entry, omitEmpty: true }));
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Schema for a map/struct with a fixed set of known string fields.
|
|
58
|
+
*/
|
|
59
|
+
export class NamedMapSchema extends Schema {
|
|
60
|
+
private readonly entries: NamedMapEntry[];
|
|
61
|
+
|
|
62
|
+
constructor(entries: NamedMapEntry[]) {
|
|
63
|
+
super();
|
|
64
|
+
this.entries = entries;
|
|
65
|
+
this.checkEntries();
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Adds new entries to the map schema. WARNING: this is a mutable operation, and you should be very
|
|
70
|
+
* careful when using it. Any error that happens here is non-recoverable and will corrupt the
|
|
71
|
+
* NamedMapSchema object;
|
|
72
|
+
* @param entries - The entries to add.
|
|
73
|
+
*/
|
|
74
|
+
public pushEntries(...entries: NamedMapEntry[]) {
|
|
75
|
+
this.entries.push(...entries);
|
|
76
|
+
this.checkEntries();
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
private checkEntries() {
|
|
80
|
+
for (const entry of this.entries) {
|
|
81
|
+
if (entry.embedded) {
|
|
82
|
+
if (entry.key !== '') {
|
|
83
|
+
throw new Error('Embedded entries must have an empty key');
|
|
84
|
+
}
|
|
85
|
+
if (!(entry.valueSchema instanceof NamedMapSchema)) {
|
|
86
|
+
throw new Error(
|
|
87
|
+
'Embedded entry valueSchema must be a NamedMapSchema'
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
const keys = new Set<string>();
|
|
94
|
+
for (const entry of this.getEntries()) {
|
|
95
|
+
if (keys.has(entry.key)) {
|
|
96
|
+
throw new Error(`Duplicate key: ${entry.key}`);
|
|
97
|
+
}
|
|
98
|
+
keys.add(entry.key);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Returns all top-level entries, properly accounting for fields from embedded entries.
|
|
104
|
+
* @returns An array of all top-level entries for this map.
|
|
105
|
+
*/
|
|
106
|
+
public getEntries(): NamedMapEntry[] {
|
|
107
|
+
const entries: NamedMapEntry[] = [];
|
|
108
|
+
for (const entry of this.entries) {
|
|
109
|
+
if (entry.embedded) {
|
|
110
|
+
const embeddedMapSchema = entry.valueSchema as NamedMapSchema;
|
|
111
|
+
entries.push(...embeddedMapSchema.getEntries());
|
|
112
|
+
} else {
|
|
113
|
+
entries.push(entry);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return entries;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
public defaultValue(): Map<string, unknown> {
|
|
120
|
+
const map = new Map<string, unknown>();
|
|
121
|
+
for (const entry of this.getEntries()) {
|
|
122
|
+
map.set(entry.key, entry.valueSchema.defaultValue());
|
|
123
|
+
}
|
|
124
|
+
return map;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
public isDefaultValue(data: unknown): boolean {
|
|
128
|
+
if (!(data instanceof Map)) return false;
|
|
129
|
+
for (const entry of this.getEntries()) {
|
|
130
|
+
if (!entry.valueSchema.isDefaultValue(data.get(entry.key))) {
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return true;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
public prepareMsgpack(data: unknown): MsgpackEncodingData {
|
|
138
|
+
if (!(data instanceof Map)) {
|
|
139
|
+
throw new Error(
|
|
140
|
+
`NamedMapSchema data must be a Map. Got (${typeof data}) ${data}`
|
|
141
|
+
);
|
|
142
|
+
}
|
|
143
|
+
const map = new Map<string, MsgpackEncodingData>();
|
|
144
|
+
for (const entry of this.getEntries()) {
|
|
145
|
+
const value = data.get(entry.key);
|
|
146
|
+
if (entry.omitEmpty && entry.valueSchema.isDefaultValue(value)) {
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
map.set(entry.key, entry.valueSchema.prepareMsgpack(value));
|
|
150
|
+
}
|
|
151
|
+
return map;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
public fromPreparedMsgpack(
|
|
155
|
+
encoded: MsgpackEncodingData,
|
|
156
|
+
rawStringProvider: MsgpackRawStringProvider
|
|
157
|
+
): Map<string, unknown> {
|
|
158
|
+
if (!(encoded instanceof Map)) {
|
|
159
|
+
throw new Error('NamedMapSchema data must be a Map');
|
|
160
|
+
}
|
|
161
|
+
const map = new Map<string, unknown>();
|
|
162
|
+
for (const entry of this.getEntries()) {
|
|
163
|
+
if (encoded.has(entry.key)) {
|
|
164
|
+
map.set(
|
|
165
|
+
entry.key,
|
|
166
|
+
entry.valueSchema.fromPreparedMsgpack(
|
|
167
|
+
encoded.get(entry.key),
|
|
168
|
+
rawStringProvider.withMapValue(entry.key)
|
|
169
|
+
)
|
|
170
|
+
);
|
|
171
|
+
} else if (entry.omitEmpty) {
|
|
172
|
+
map.set(entry.key, entry.valueSchema.defaultValue());
|
|
173
|
+
} else {
|
|
174
|
+
throw new Error(`Missing key: ${entry.key}`);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
return map;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
public prepareJSON(
|
|
181
|
+
data: unknown,
|
|
182
|
+
options: PrepareJSONOptions
|
|
183
|
+
): JSONEncodingData {
|
|
184
|
+
if (!(data instanceof Map)) {
|
|
185
|
+
throw new Error('NamedMapSchema data must be a Map');
|
|
186
|
+
}
|
|
187
|
+
const obj: { [key: string]: JSONEncodingData } = {};
|
|
188
|
+
for (const entry of this.getEntries()) {
|
|
189
|
+
const value = data.get(entry.key);
|
|
190
|
+
if (entry.omitEmpty && entry.valueSchema.isDefaultValue(value)) {
|
|
191
|
+
continue;
|
|
192
|
+
}
|
|
193
|
+
obj[entry.key] = entry.valueSchema.prepareJSON(value, options);
|
|
194
|
+
}
|
|
195
|
+
return obj;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
public fromPreparedJSON(encoded: JSONEncodingData): Map<string, unknown> {
|
|
199
|
+
if (
|
|
200
|
+
encoded == null ||
|
|
201
|
+
typeof encoded !== 'object' ||
|
|
202
|
+
Array.isArray(encoded)
|
|
203
|
+
) {
|
|
204
|
+
throw new Error('NamedMapSchema data must be an object');
|
|
205
|
+
}
|
|
206
|
+
const map = new Map<string, unknown>();
|
|
207
|
+
for (const entry of this.getEntries()) {
|
|
208
|
+
if (Object.prototype.hasOwnProperty.call(encoded, entry.key)) {
|
|
209
|
+
map.set(
|
|
210
|
+
entry.key,
|
|
211
|
+
entry.valueSchema.fromPreparedJSON(encoded[entry.key])
|
|
212
|
+
);
|
|
213
|
+
} else if (entry.omitEmpty) {
|
|
214
|
+
map.set(entry.key, entry.valueSchema.defaultValue());
|
|
215
|
+
} else {
|
|
216
|
+
throw new Error(`Missing key: ${entry.key}`);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
return map;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Combines multiple maps into a single map. Throws an error if any of the maps have duplicate keys.
|
|
225
|
+
* @param maps - The maps to combine.
|
|
226
|
+
* @returns A new map with all the entries from the input maps.
|
|
227
|
+
*/
|
|
228
|
+
export function combineMaps<K, V>(...maps: Array<Map<K, V>>): Map<K, V> {
|
|
229
|
+
const combined = new Map<K, V>();
|
|
230
|
+
for (const map of maps) {
|
|
231
|
+
for (const [key, value] of map) {
|
|
232
|
+
if (combined.has(key)) {
|
|
233
|
+
throw new Error(`Duplicate key: ${key}`);
|
|
234
|
+
}
|
|
235
|
+
combined.set(key, value);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
return combined;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* Converts a map to a new map with different keys and values.
|
|
243
|
+
* @param map - The map to convert.
|
|
244
|
+
* @param func - The function to convert each entry.
|
|
245
|
+
* @returns A new map with the converted entries.
|
|
246
|
+
*/
|
|
247
|
+
export function convertMap<K1, V1, K2, V2>(
|
|
248
|
+
map: Map<K1, V1>,
|
|
249
|
+
func: (k: K1, v: V1) => [K2, V2]
|
|
250
|
+
): Map<K2, V2> {
|
|
251
|
+
const mapped = new Map<K2, V2>();
|
|
252
|
+
for (const [key, value] of map) {
|
|
253
|
+
const [newKey, newValue] = func(key, value);
|
|
254
|
+
mapped.set(newKey, newValue);
|
|
255
|
+
}
|
|
256
|
+
return mapped;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* Schema for a map with a variable number of uint64 keys.
|
|
261
|
+
*/
|
|
262
|
+
export class Uint64MapSchema extends Schema {
|
|
263
|
+
constructor(public readonly valueSchema: Schema) {
|
|
264
|
+
super();
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
public defaultValue(): Map<bigint, unknown> {
|
|
268
|
+
return new Map();
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
public isDefaultValue(data: unknown): boolean {
|
|
272
|
+
return data instanceof Map && data.size === 0;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
public prepareMsgpack(data: unknown): MsgpackEncodingData {
|
|
276
|
+
if (!(data instanceof Map)) {
|
|
277
|
+
throw new Error(
|
|
278
|
+
`Uint64MapSchema data must be a Map. Got (${typeof data}) ${data}`
|
|
279
|
+
);
|
|
280
|
+
}
|
|
281
|
+
const prepared = new Map<bigint, MsgpackEncodingData>();
|
|
282
|
+
for (const [key, value] of data) {
|
|
283
|
+
const bigintKey = ensureUint64(key);
|
|
284
|
+
if (prepared.has(bigintKey)) {
|
|
285
|
+
throw new Error(`Duplicate key: ${bigintKey}`);
|
|
286
|
+
}
|
|
287
|
+
prepared.set(bigintKey, this.valueSchema.prepareMsgpack(value));
|
|
288
|
+
}
|
|
289
|
+
return prepared;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
public fromPreparedMsgpack(
|
|
293
|
+
encoded: MsgpackEncodingData,
|
|
294
|
+
rawStringProvider: MsgpackRawStringProvider
|
|
295
|
+
): Map<bigint, unknown> {
|
|
296
|
+
if (!(encoded instanceof Map)) {
|
|
297
|
+
throw new Error('Uint64MapSchema data must be a Map');
|
|
298
|
+
}
|
|
299
|
+
const map = new Map<bigint, unknown>();
|
|
300
|
+
for (const [key, value] of encoded) {
|
|
301
|
+
const bigintKey = ensureUint64(key);
|
|
302
|
+
if (map.has(bigintKey)) {
|
|
303
|
+
throw new Error(`Duplicate key: ${bigintKey}`);
|
|
304
|
+
}
|
|
305
|
+
map.set(
|
|
306
|
+
bigintKey,
|
|
307
|
+
this.valueSchema.fromPreparedMsgpack(
|
|
308
|
+
value,
|
|
309
|
+
rawStringProvider.withMapValue(key)
|
|
310
|
+
)
|
|
311
|
+
);
|
|
312
|
+
}
|
|
313
|
+
return map;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
public prepareJSON(
|
|
317
|
+
data: unknown,
|
|
318
|
+
options: PrepareJSONOptions
|
|
319
|
+
): JSONEncodingData {
|
|
320
|
+
if (!(data instanceof Map)) {
|
|
321
|
+
throw new Error(
|
|
322
|
+
`Uint64MapSchema data must be a Map. Got (${typeof data}) ${data}`
|
|
323
|
+
);
|
|
324
|
+
}
|
|
325
|
+
const prepared = new Map<bigint, JSONEncodingData>();
|
|
326
|
+
for (const [key, value] of data) {
|
|
327
|
+
const bigintKey = ensureUint64(key);
|
|
328
|
+
if (prepared.has(bigintKey)) {
|
|
329
|
+
throw new Error(`Duplicate key: ${bigintKey}`);
|
|
330
|
+
}
|
|
331
|
+
prepared.set(bigintKey, this.valueSchema.prepareJSON(value, options));
|
|
332
|
+
}
|
|
333
|
+
// Convert map to object
|
|
334
|
+
const obj: { [key: string]: JSONEncodingData } = {};
|
|
335
|
+
for (const [key, value] of prepared) {
|
|
336
|
+
obj[key.toString()] = value;
|
|
337
|
+
}
|
|
338
|
+
return obj;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
public fromPreparedJSON(encoded: JSONEncodingData): Map<bigint, unknown> {
|
|
342
|
+
if (
|
|
343
|
+
encoded == null ||
|
|
344
|
+
typeof encoded !== 'object' ||
|
|
345
|
+
Array.isArray(encoded)
|
|
346
|
+
) {
|
|
347
|
+
throw new Error('Uint64MapSchema data must be an object');
|
|
348
|
+
}
|
|
349
|
+
const map = new Map<bigint, unknown>();
|
|
350
|
+
for (const [key, value] of Object.entries(encoded)) {
|
|
351
|
+
const bigintKey = BigInt(key);
|
|
352
|
+
if (map.has(bigintKey)) {
|
|
353
|
+
throw new Error(`Duplicate key: ${bigintKey}`);
|
|
354
|
+
}
|
|
355
|
+
map.set(bigintKey, this.valueSchema.fromPreparedJSON(value));
|
|
356
|
+
}
|
|
357
|
+
return map;
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
/**
|
|
362
|
+
* Schema for a map with a variable number of string keys.
|
|
363
|
+
*/
|
|
364
|
+
export class StringMapSchema extends Schema {
|
|
365
|
+
constructor(public readonly valueSchema: Schema) {
|
|
366
|
+
super();
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
public defaultValue(): Map<string, unknown> {
|
|
370
|
+
return new Map();
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
public isDefaultValue(data: unknown): boolean {
|
|
374
|
+
return data instanceof Map && data.size === 0;
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
public prepareMsgpack(data: unknown): MsgpackEncodingData {
|
|
378
|
+
if (!(data instanceof Map)) {
|
|
379
|
+
throw new Error(
|
|
380
|
+
`StringMapSchema data must be a Map. Got (${typeof data}) ${data}`
|
|
381
|
+
);
|
|
382
|
+
}
|
|
383
|
+
const prepared = new Map<string, MsgpackEncodingData>();
|
|
384
|
+
for (const [key, value] of data) {
|
|
385
|
+
if (typeof key !== 'string') {
|
|
386
|
+
throw new Error(`Invalid key: ${key}`);
|
|
387
|
+
}
|
|
388
|
+
if (prepared.has(key)) {
|
|
389
|
+
throw new Error(`Duplicate key: ${key}`);
|
|
390
|
+
}
|
|
391
|
+
prepared.set(key, this.valueSchema.prepareMsgpack(value));
|
|
392
|
+
}
|
|
393
|
+
return prepared;
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
public fromPreparedMsgpack(
|
|
397
|
+
encoded: MsgpackEncodingData,
|
|
398
|
+
rawStringProvider: MsgpackRawStringProvider
|
|
399
|
+
): Map<string, unknown> {
|
|
400
|
+
if (!(encoded instanceof Map)) {
|
|
401
|
+
throw new Error('StringMapSchema data must be a Map');
|
|
402
|
+
}
|
|
403
|
+
const map = new Map<string, unknown>();
|
|
404
|
+
for (const [key, value] of encoded) {
|
|
405
|
+
if (typeof key !== 'string') {
|
|
406
|
+
throw new Error(`Invalid key: ${key}`);
|
|
407
|
+
}
|
|
408
|
+
if (map.has(key)) {
|
|
409
|
+
throw new Error(`Duplicate key: ${key}`);
|
|
410
|
+
}
|
|
411
|
+
map.set(
|
|
412
|
+
key,
|
|
413
|
+
this.valueSchema.fromPreparedMsgpack(
|
|
414
|
+
value,
|
|
415
|
+
rawStringProvider.withMapValue(key)
|
|
416
|
+
)
|
|
417
|
+
);
|
|
418
|
+
}
|
|
419
|
+
return map;
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
public prepareJSON(
|
|
423
|
+
data: unknown,
|
|
424
|
+
options: PrepareJSONOptions
|
|
425
|
+
): JSONEncodingData {
|
|
426
|
+
if (!(data instanceof Map)) {
|
|
427
|
+
throw new Error(
|
|
428
|
+
`StringMapSchema data must be a Map. Got (${typeof data}) ${data}`
|
|
429
|
+
);
|
|
430
|
+
}
|
|
431
|
+
const prepared = new Map<string, JSONEncodingData>();
|
|
432
|
+
for (const [key, value] of data) {
|
|
433
|
+
if (typeof key !== 'string') {
|
|
434
|
+
throw new Error(`Invalid key: ${key}`);
|
|
435
|
+
}
|
|
436
|
+
if (prepared.has(key)) {
|
|
437
|
+
throw new Error(`Duplicate key: ${key}`);
|
|
438
|
+
}
|
|
439
|
+
prepared.set(key, this.valueSchema.prepareJSON(value, options));
|
|
440
|
+
}
|
|
441
|
+
// Convert map to object
|
|
442
|
+
const obj: { [key: string]: JSONEncodingData } = {};
|
|
443
|
+
for (const [key, value] of prepared) {
|
|
444
|
+
obj[key] = value;
|
|
445
|
+
}
|
|
446
|
+
return obj;
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
public fromPreparedJSON(encoded: JSONEncodingData): Map<string, unknown> {
|
|
450
|
+
if (
|
|
451
|
+
encoded == null ||
|
|
452
|
+
typeof encoded !== 'object' ||
|
|
453
|
+
Array.isArray(encoded)
|
|
454
|
+
) {
|
|
455
|
+
throw new Error('StringMapSchema data must be an object');
|
|
456
|
+
}
|
|
457
|
+
const map = new Map<string, unknown>();
|
|
458
|
+
for (const [key, value] of Object.entries(encoded)) {
|
|
459
|
+
if (map.has(key)) {
|
|
460
|
+
throw new Error(`Duplicate key: ${key}`);
|
|
461
|
+
}
|
|
462
|
+
map.set(key, this.valueSchema.fromPreparedJSON(value));
|
|
463
|
+
}
|
|
464
|
+
return map;
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
/**
|
|
469
|
+
* Schema for a map with a variable number of byte array keys.
|
|
470
|
+
*/
|
|
471
|
+
export class ByteArrayMapSchema extends Schema {
|
|
472
|
+
constructor(public readonly valueSchema: Schema) {
|
|
473
|
+
super();
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
public defaultValue(): Map<Uint8Array, unknown> {
|
|
477
|
+
return new Map();
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
public isDefaultValue(data: unknown): boolean {
|
|
481
|
+
return data instanceof Map && data.size === 0;
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
public prepareMsgpack(data: unknown): MsgpackEncodingData {
|
|
485
|
+
if (!(data instanceof Map)) {
|
|
486
|
+
throw new Error(
|
|
487
|
+
`ByteArrayMapSchema data must be a Map. Got (${typeof data}) ${data}`
|
|
488
|
+
);
|
|
489
|
+
}
|
|
490
|
+
const prepared = new Map<Uint8Array, MsgpackEncodingData>();
|
|
491
|
+
for (const [key, value] of data) {
|
|
492
|
+
if (!(key instanceof Uint8Array)) {
|
|
493
|
+
throw new Error(`Invalid key: ${key} (${typeof key})`);
|
|
494
|
+
}
|
|
495
|
+
prepared.set(key, this.valueSchema.prepareMsgpack(value));
|
|
496
|
+
}
|
|
497
|
+
return prepared;
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
public fromPreparedMsgpack(
|
|
501
|
+
encoded: MsgpackEncodingData,
|
|
502
|
+
rawStringProvider: MsgpackRawStringProvider
|
|
503
|
+
): Map<Uint8Array, unknown> {
|
|
504
|
+
if (!(encoded instanceof Map)) {
|
|
505
|
+
throw new Error('ByteArrayMapSchema data must be a Map');
|
|
506
|
+
}
|
|
507
|
+
const map = new Map<Uint8Array, unknown>();
|
|
508
|
+
for (const [key, value] of encoded) {
|
|
509
|
+
if (!(key instanceof Uint8Array)) {
|
|
510
|
+
throw new Error(`Invalid key: ${key} (${typeof key})`);
|
|
511
|
+
}
|
|
512
|
+
map.set(
|
|
513
|
+
key,
|
|
514
|
+
this.valueSchema.fromPreparedMsgpack(
|
|
515
|
+
value,
|
|
516
|
+
rawStringProvider.withMapValue(key)
|
|
517
|
+
)
|
|
518
|
+
);
|
|
519
|
+
}
|
|
520
|
+
return map;
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
public prepareJSON(
|
|
524
|
+
data: unknown,
|
|
525
|
+
options: PrepareJSONOptions
|
|
526
|
+
): JSONEncodingData {
|
|
527
|
+
if (!(data instanceof Map)) {
|
|
528
|
+
throw new Error(
|
|
529
|
+
`ByteArrayMapSchema data must be a Map. Got (${typeof data}) ${data}`
|
|
530
|
+
);
|
|
531
|
+
}
|
|
532
|
+
const prepared = new Map<string, JSONEncodingData>();
|
|
533
|
+
for (const [key, value] of data) {
|
|
534
|
+
if (!(key instanceof Uint8Array)) {
|
|
535
|
+
throw new Error(`Invalid key: ${key} (${typeof key})`);
|
|
536
|
+
}
|
|
537
|
+
const b64Encoded = bytesToBase64(key);
|
|
538
|
+
if (prepared.has(b64Encoded)) {
|
|
539
|
+
throw new Error(`Duplicate key (base64): ${b64Encoded}`);
|
|
540
|
+
}
|
|
541
|
+
prepared.set(b64Encoded, this.valueSchema.prepareJSON(value, options));
|
|
542
|
+
}
|
|
543
|
+
// Convert map to object
|
|
544
|
+
const obj: { [key: string]: JSONEncodingData } = {};
|
|
545
|
+
for (const [key, value] of prepared) {
|
|
546
|
+
obj[key] = value;
|
|
547
|
+
}
|
|
548
|
+
return obj;
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
public fromPreparedJSON(encoded: JSONEncodingData): Map<Uint8Array, unknown> {
|
|
552
|
+
if (
|
|
553
|
+
encoded == null ||
|
|
554
|
+
typeof encoded !== 'object' ||
|
|
555
|
+
Array.isArray(encoded)
|
|
556
|
+
) {
|
|
557
|
+
throw new Error('ByteArrayMapSchema data must be an object');
|
|
558
|
+
}
|
|
559
|
+
const map = new Map<Uint8Array, unknown>();
|
|
560
|
+
for (const [key, value] of Object.entries(encoded)) {
|
|
561
|
+
map.set(base64ToBytes(key), this.valueSchema.fromPreparedJSON(value));
|
|
562
|
+
}
|
|
563
|
+
return map;
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
/**
|
|
568
|
+
* Converts any RawBinaryString values to regular strings in a MsgpackEncodingData object.
|
|
569
|
+
*
|
|
570
|
+
* Note this conversion may be lossy if the binary data is not valid UTF-8.
|
|
571
|
+
*
|
|
572
|
+
* @returns A new object with RawBinaryString values converted to strings.
|
|
573
|
+
*/
|
|
574
|
+
function convertRawStringsInMsgpackValue(
|
|
575
|
+
value: MsgpackEncodingData
|
|
576
|
+
): MsgpackEncodingData {
|
|
577
|
+
if (value instanceof RawBinaryString) {
|
|
578
|
+
return bytesToString(value.rawBinaryValue as Uint8Array);
|
|
579
|
+
}
|
|
580
|
+
if (value instanceof Map) {
|
|
581
|
+
const newMap = new Map<
|
|
582
|
+
string | number | bigint | Uint8Array,
|
|
583
|
+
MsgpackEncodingData
|
|
584
|
+
>();
|
|
585
|
+
for (const [key, val] of value) {
|
|
586
|
+
newMap.set(
|
|
587
|
+
convertRawStringsInMsgpackValue(key) as
|
|
588
|
+
| string
|
|
589
|
+
| number
|
|
590
|
+
| bigint
|
|
591
|
+
| Uint8Array,
|
|
592
|
+
convertRawStringsInMsgpackValue(val)
|
|
593
|
+
);
|
|
594
|
+
}
|
|
595
|
+
return newMap;
|
|
596
|
+
}
|
|
597
|
+
if (Array.isArray(value)) {
|
|
598
|
+
return value.map(convertRawStringsInMsgpackValue);
|
|
599
|
+
}
|
|
600
|
+
return value;
|
|
601
|
+
}
|
|
602
|
+
|
|
603
|
+
/**
|
|
604
|
+
* Schema for a map with a variable number of binary string keys.
|
|
605
|
+
*
|
|
606
|
+
* See SpecialCaseBinaryStringSchema for more information about the key type.
|
|
607
|
+
*/
|
|
608
|
+
export class SpecialCaseBinaryStringMapSchema extends Schema {
|
|
609
|
+
constructor(public readonly valueSchema: Schema) {
|
|
610
|
+
super();
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
public defaultValue(): Map<Uint8Array, unknown> {
|
|
614
|
+
return new Map();
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
public isDefaultValue(data: unknown): boolean {
|
|
618
|
+
return data instanceof Map && data.size === 0;
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
public prepareMsgpack(data: unknown): MsgpackEncodingData {
|
|
622
|
+
if (!(data instanceof Map)) {
|
|
623
|
+
throw new Error(
|
|
624
|
+
`SpecialCaseBinaryStringMapSchema data must be a Map. Got (${typeof data}) ${data}`
|
|
625
|
+
);
|
|
626
|
+
}
|
|
627
|
+
const prepared = new Map<RawBinaryString, MsgpackEncodingData>();
|
|
628
|
+
for (const [key, value] of data) {
|
|
629
|
+
if (!(key instanceof Uint8Array)) {
|
|
630
|
+
throw new Error(`Invalid key: ${key} (${typeof key})`);
|
|
631
|
+
}
|
|
632
|
+
prepared.set(
|
|
633
|
+
new RawBinaryString(key),
|
|
634
|
+
this.valueSchema.prepareMsgpack(value)
|
|
635
|
+
);
|
|
636
|
+
}
|
|
637
|
+
// Cast is needed because RawBinaryString is not part of the standard MsgpackEncodingData
|
|
638
|
+
return prepared as unknown as Map<Uint8Array, MsgpackEncodingData>;
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
public fromPreparedMsgpack(
|
|
642
|
+
_encoded: MsgpackEncodingData,
|
|
643
|
+
rawStringProvider: MsgpackRawStringProvider
|
|
644
|
+
): Map<Uint8Array, unknown> {
|
|
645
|
+
const map = new Map<Uint8Array, unknown>();
|
|
646
|
+
const keysAndValues =
|
|
647
|
+
rawStringProvider.getRawStringKeysAndValuesAtCurrentLocation();
|
|
648
|
+
for (const [key, value] of keysAndValues) {
|
|
649
|
+
map.set(
|
|
650
|
+
key,
|
|
651
|
+
this.valueSchema.fromPreparedMsgpack(
|
|
652
|
+
convertRawStringsInMsgpackValue(value),
|
|
653
|
+
rawStringProvider.withMapValue(new RawBinaryString(key))
|
|
654
|
+
)
|
|
655
|
+
);
|
|
656
|
+
}
|
|
657
|
+
return map;
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
public prepareJSON(
|
|
661
|
+
data: unknown,
|
|
662
|
+
options: PrepareJSONOptions
|
|
663
|
+
): JSONEncodingData {
|
|
664
|
+
if (!(data instanceof Map)) {
|
|
665
|
+
throw new Error(
|
|
666
|
+
`SpecialCaseBinaryStringMapSchema data must be a Map. Got (${typeof data}) ${data}`
|
|
667
|
+
);
|
|
668
|
+
}
|
|
669
|
+
const prepared = new Map<string, JSONEncodingData>();
|
|
670
|
+
for (const [key, value] of data) {
|
|
671
|
+
if (!(key instanceof Uint8Array)) {
|
|
672
|
+
throw new Error(`Invalid key: ${key}`);
|
|
673
|
+
}
|
|
674
|
+
// Not safe to convert to string for all binary data
|
|
675
|
+
const keyStringValue = bytesToString(key);
|
|
676
|
+
if (
|
|
677
|
+
!options.lossyBinaryStringConversion &&
|
|
678
|
+
!arrayEqual(coerceToBytes(keyStringValue), key)
|
|
679
|
+
) {
|
|
680
|
+
throw new Error(
|
|
681
|
+
`Invalid UTF-8 byte array encountered. Encode with lossyBinaryStringConversion enabled to bypass this check. Base64 value: ${bytesToBase64(key)}`
|
|
682
|
+
);
|
|
683
|
+
}
|
|
684
|
+
prepared.set(
|
|
685
|
+
keyStringValue,
|
|
686
|
+
this.valueSchema.prepareJSON(value, options)
|
|
687
|
+
);
|
|
688
|
+
}
|
|
689
|
+
// Convert map to object
|
|
690
|
+
const obj: { [key: string]: JSONEncodingData } = {};
|
|
691
|
+
for (const [key, value] of prepared) {
|
|
692
|
+
obj[key] = value;
|
|
693
|
+
}
|
|
694
|
+
return obj;
|
|
695
|
+
}
|
|
696
|
+
|
|
697
|
+
public fromPreparedJSON(encoded: JSONEncodingData): Map<Uint8Array, unknown> {
|
|
698
|
+
if (
|
|
699
|
+
encoded == null ||
|
|
700
|
+
typeof encoded !== 'object' ||
|
|
701
|
+
Array.isArray(encoded)
|
|
702
|
+
) {
|
|
703
|
+
throw new Error(
|
|
704
|
+
'SpecialCaseBinaryStringMapSchema data must be an object'
|
|
705
|
+
);
|
|
706
|
+
}
|
|
707
|
+
const map = new Map<Uint8Array, unknown>();
|
|
708
|
+
for (const [key, value] of Object.entries(encoded)) {
|
|
709
|
+
map.set(coerceToBytes(key), this.valueSchema.fromPreparedJSON(value));
|
|
710
|
+
}
|
|
711
|
+
return map;
|
|
712
|
+
}
|
|
713
|
+
}
|