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
package/src/logicsig.ts
CHANGED
|
@@ -1,25 +1,31 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import * as
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import * as nacl from './nacl/naclWrappers.js';
|
|
2
|
+
import { Address, isValidAddress } from './encoding/address.js';
|
|
3
|
+
import * as encoding from './encoding/encoding.js';
|
|
4
|
+
import {
|
|
5
|
+
NamedMapSchema,
|
|
6
|
+
ArraySchema,
|
|
7
|
+
ByteArraySchema,
|
|
8
|
+
FixedLengthByteArraySchema,
|
|
9
|
+
OptionalSchema,
|
|
10
|
+
allOmitEmpty,
|
|
11
|
+
} from './encoding/schema/index.js';
|
|
12
|
+
import {
|
|
13
|
+
MultisigMetadata,
|
|
14
|
+
verifyMultisig,
|
|
15
|
+
addressFromMultisigPreImg,
|
|
16
|
+
pksFromAddresses,
|
|
17
|
+
} from './multisig.js';
|
|
18
|
+
import * as utils from './utils/utils.js';
|
|
9
19
|
import {
|
|
10
|
-
EncodedLogicSig,
|
|
11
|
-
EncodedLogicSigAccount,
|
|
12
20
|
EncodedMultisig,
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
21
|
+
encodedMultiSigToEncodingData,
|
|
22
|
+
encodedMultiSigFromEncodingData,
|
|
23
|
+
ENCODED_MULTISIG_SCHEMA,
|
|
24
|
+
} from './types/transactions/encoded.js';
|
|
16
25
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
sig?: Uint8Array;
|
|
21
|
-
msig?: EncodedMultisig;
|
|
22
|
-
}
|
|
26
|
+
// base64regex is the regex to test for base64 strings
|
|
27
|
+
const base64regex =
|
|
28
|
+
/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;
|
|
23
29
|
|
|
24
30
|
/** sanityCheckProgram performs heuristic program validation:
|
|
25
31
|
* check if passed in bytes are Algorand address or is B64 encoded, rather than Teal bytes
|
|
@@ -39,12 +45,12 @@ export function sanityCheckProgram(program: Uint8Array) {
|
|
|
39
45
|
);
|
|
40
46
|
|
|
41
47
|
if (isAsciiPrintable) {
|
|
42
|
-
const programStr =
|
|
48
|
+
const programStr = new TextDecoder().decode(program);
|
|
43
49
|
|
|
44
50
|
if (isValidAddress(programStr))
|
|
45
51
|
throw new Error('requesting program bytes, get Algorand address');
|
|
46
52
|
|
|
47
|
-
if (
|
|
53
|
+
if (base64regex.test(programStr))
|
|
48
54
|
throw new Error('program should not be b64 encoded');
|
|
49
55
|
|
|
50
56
|
throw new Error(
|
|
@@ -53,34 +59,50 @@ export function sanityCheckProgram(program: Uint8Array) {
|
|
|
53
59
|
}
|
|
54
60
|
}
|
|
55
61
|
|
|
62
|
+
const programTag = new TextEncoder().encode('Program');
|
|
63
|
+
|
|
56
64
|
/**
|
|
57
65
|
LogicSig implementation
|
|
58
66
|
|
|
59
67
|
LogicSig cannot sign transactions in all cases. Instead, use LogicSigAccount as a safe, general purpose signing mechanism. Since LogicSig does not track the provided signature's public key, LogicSig cannot sign transactions when delegated to a non-multisig account _and_ the sender is not the delegating account.
|
|
60
68
|
*/
|
|
61
|
-
export class LogicSig implements
|
|
62
|
-
|
|
69
|
+
export class LogicSig implements encoding.Encodable {
|
|
70
|
+
static readonly encodingSchema = new NamedMapSchema(
|
|
71
|
+
allOmitEmpty([
|
|
72
|
+
{
|
|
73
|
+
key: 'l',
|
|
74
|
+
valueSchema: new ByteArraySchema(),
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
key: 'arg',
|
|
78
|
+
valueSchema: new ArraySchema(new ByteArraySchema()),
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
key: 'sig',
|
|
82
|
+
valueSchema: new OptionalSchema(new FixedLengthByteArraySchema(64)),
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
key: 'msig',
|
|
86
|
+
valueSchema: new OptionalSchema(ENCODED_MULTISIG_SCHEMA),
|
|
87
|
+
},
|
|
88
|
+
])
|
|
89
|
+
);
|
|
63
90
|
|
|
64
91
|
logic: Uint8Array;
|
|
65
92
|
args: Uint8Array[];
|
|
66
93
|
sig?: Uint8Array;
|
|
67
94
|
msig?: EncodedMultisig;
|
|
68
95
|
|
|
69
|
-
constructor(
|
|
70
|
-
program: Uint8Array,
|
|
71
|
-
programArgs?: Array<Uint8Array | Buffer> | null
|
|
72
|
-
) {
|
|
96
|
+
constructor(program: Uint8Array, programArgs?: Array<Uint8Array> | null) {
|
|
73
97
|
if (
|
|
74
98
|
programArgs &&
|
|
75
99
|
(!Array.isArray(programArgs) ||
|
|
76
|
-
!programArgs.every(
|
|
77
|
-
(arg) => arg.constructor === Uint8Array || Buffer.isBuffer(arg)
|
|
78
|
-
))
|
|
100
|
+
!programArgs.every((arg) => arg.constructor === Uint8Array))
|
|
79
101
|
) {
|
|
80
102
|
throw new TypeError('Invalid arguments');
|
|
81
103
|
}
|
|
82
104
|
|
|
83
|
-
let args: Uint8Array[]
|
|
105
|
+
let args: Uint8Array[] = [];
|
|
84
106
|
if (programArgs != null)
|
|
85
107
|
args = programArgs.map((arg) => new Uint8Array(arg));
|
|
86
108
|
|
|
@@ -92,27 +114,32 @@ export class LogicSig implements LogicSigStorageStructure {
|
|
|
92
114
|
this.msig = undefined;
|
|
93
115
|
}
|
|
94
116
|
|
|
95
|
-
// eslint-disable-next-line
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
117
|
+
// eslint-disable-next-line class-methods-use-this
|
|
118
|
+
getEncodingSchema(): encoding.Schema {
|
|
119
|
+
return LogicSig.encodingSchema;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
toEncodingData(): Map<string, unknown> {
|
|
123
|
+
const data = new Map<string, unknown>([
|
|
124
|
+
['l', this.logic],
|
|
125
|
+
['arg', this.args],
|
|
126
|
+
['sig', this.sig],
|
|
127
|
+
]);
|
|
128
|
+
if (this.msig) {
|
|
129
|
+
data.set('msig', encodedMultiSigToEncodingData(this.msig));
|
|
107
130
|
}
|
|
108
|
-
return
|
|
131
|
+
return data;
|
|
109
132
|
}
|
|
110
133
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
lsig
|
|
134
|
+
static fromEncodingData(data: unknown): LogicSig {
|
|
135
|
+
if (!(data instanceof Map)) {
|
|
136
|
+
throw new Error(`Invalid decoded logic sig: ${data}`);
|
|
137
|
+
}
|
|
138
|
+
const lsig = new LogicSig(data.get('l'), data.get('arg'));
|
|
139
|
+
lsig.sig = data.get('sig');
|
|
140
|
+
if (data.get('msig')) {
|
|
141
|
+
lsig.msig = encodedMultiSigFromEncodingData(data.get('msig'));
|
|
142
|
+
}
|
|
116
143
|
return lsig;
|
|
117
144
|
}
|
|
118
145
|
|
|
@@ -131,7 +158,7 @@ export class LogicSig implements LogicSigStorageStructure {
|
|
|
131
158
|
return false;
|
|
132
159
|
}
|
|
133
160
|
|
|
134
|
-
const toBeSigned = utils.concatArrays(
|
|
161
|
+
const toBeSigned = utils.concatArrays(programTag, this.logic);
|
|
135
162
|
|
|
136
163
|
if (!this.sig && !this.msig) {
|
|
137
164
|
const hash = nacl.genericHash(toBeSigned);
|
|
@@ -142,17 +169,17 @@ export class LogicSig implements LogicSigStorageStructure {
|
|
|
142
169
|
return nacl.verify(toBeSigned, this.sig, publicKey);
|
|
143
170
|
}
|
|
144
171
|
|
|
145
|
-
return verifyMultisig(toBeSigned, this.msig
|
|
172
|
+
return verifyMultisig(toBeSigned, this.msig!, publicKey);
|
|
146
173
|
}
|
|
147
174
|
|
|
148
175
|
/**
|
|
149
176
|
* Compute hash of the logic sig program (that is the same as escrow account address) as string address
|
|
150
177
|
* @returns String representation of the address
|
|
151
178
|
*/
|
|
152
|
-
address() {
|
|
153
|
-
const toBeSigned = utils.concatArrays(
|
|
179
|
+
address(): Address {
|
|
180
|
+
const toBeSigned = utils.concatArrays(programTag, this.logic);
|
|
154
181
|
const hash = nacl.genericHash(toBeSigned);
|
|
155
|
-
return
|
|
182
|
+
return new Address(Uint8Array.from(hash));
|
|
156
183
|
}
|
|
157
184
|
|
|
158
185
|
/**
|
|
@@ -164,9 +191,7 @@ export class LogicSig implements LogicSigStorageStructure {
|
|
|
164
191
|
if (msig == null) {
|
|
165
192
|
this.sig = this.signProgram(secretKey);
|
|
166
193
|
} else {
|
|
167
|
-
const subsigs = msig.addrs.map((
|
|
168
|
-
pk: address.decodeAddress(addr).publicKey,
|
|
169
|
-
}));
|
|
194
|
+
const subsigs = pksFromAddresses(msig.addrs).map((pk) => ({ pk }));
|
|
170
195
|
|
|
171
196
|
this.msig = {
|
|
172
197
|
v: msig.version,
|
|
@@ -192,7 +217,7 @@ export class LogicSig implements LogicSigStorageStructure {
|
|
|
192
217
|
}
|
|
193
218
|
|
|
194
219
|
signProgram(secretKey: Uint8Array) {
|
|
195
|
-
const toBeSigned = utils.concatArrays(
|
|
220
|
+
const toBeSigned = utils.concatArrays(programTag, this.logic);
|
|
196
221
|
const sig = nacl.sign(toBeSigned, secretKey);
|
|
197
222
|
return sig;
|
|
198
223
|
}
|
|
@@ -217,20 +242,32 @@ export class LogicSig implements LogicSigStorageStructure {
|
|
|
217
242
|
return [sig, index];
|
|
218
243
|
}
|
|
219
244
|
|
|
220
|
-
toByte() {
|
|
221
|
-
return encoding.
|
|
245
|
+
toByte(): Uint8Array {
|
|
246
|
+
return encoding.encodeMsgpack(this);
|
|
222
247
|
}
|
|
223
248
|
|
|
224
|
-
static fromByte(encoded: ArrayLike<any>) {
|
|
225
|
-
|
|
226
|
-
return LogicSig.from_obj_for_encoding(decodedObj);
|
|
249
|
+
static fromByte(encoded: ArrayLike<any>): LogicSig {
|
|
250
|
+
return encoding.decodeMsgpack(encoded, LogicSig);
|
|
227
251
|
}
|
|
228
252
|
}
|
|
229
253
|
|
|
230
254
|
/**
|
|
231
255
|
* Represents an account that can sign with a LogicSig program.
|
|
232
256
|
*/
|
|
233
|
-
export class LogicSigAccount {
|
|
257
|
+
export class LogicSigAccount implements encoding.Encodable {
|
|
258
|
+
static readonly encodingSchema = new NamedMapSchema(
|
|
259
|
+
allOmitEmpty([
|
|
260
|
+
{
|
|
261
|
+
key: 'lsig',
|
|
262
|
+
valueSchema: LogicSig.encodingSchema,
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
key: 'sigkey',
|
|
266
|
+
valueSchema: new OptionalSchema(new FixedLengthByteArraySchema(32)),
|
|
267
|
+
},
|
|
268
|
+
])
|
|
269
|
+
);
|
|
270
|
+
|
|
234
271
|
lsig: LogicSig;
|
|
235
272
|
sigkey?: Uint8Array;
|
|
236
273
|
|
|
@@ -243,44 +280,48 @@ export class LogicSigAccount {
|
|
|
243
280
|
* this LogicSig.
|
|
244
281
|
* @param args - An optional array of arguments for the program.
|
|
245
282
|
*/
|
|
246
|
-
constructor(program: Uint8Array, args?: Array<Uint8Array
|
|
283
|
+
constructor(program: Uint8Array, args?: Array<Uint8Array> | null) {
|
|
247
284
|
this.lsig = new LogicSig(program, args);
|
|
248
285
|
this.sigkey = undefined;
|
|
249
286
|
}
|
|
250
287
|
|
|
251
|
-
// eslint-disable-next-line
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
lsig: this.lsig.get_obj_for_encoding(),
|
|
255
|
-
};
|
|
256
|
-
if (this.sigkey) {
|
|
257
|
-
obj.sigkey = this.sigkey;
|
|
258
|
-
}
|
|
259
|
-
return obj;
|
|
288
|
+
// eslint-disable-next-line class-methods-use-this
|
|
289
|
+
getEncodingSchema(): encoding.Schema {
|
|
290
|
+
return LogicSigAccount.encodingSchema;
|
|
260
291
|
}
|
|
261
292
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
293
|
+
toEncodingData(): Map<string, unknown> {
|
|
294
|
+
return new Map<string, unknown>([
|
|
295
|
+
['lsig', this.lsig.toEncodingData()],
|
|
296
|
+
['sigkey', this.sigkey],
|
|
297
|
+
]);
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
static fromEncodingData(data: unknown): LogicSigAccount {
|
|
301
|
+
if (!(data instanceof Map)) {
|
|
302
|
+
throw new Error(`Invalid decoded logic sig account: ${data}`);
|
|
303
|
+
}
|
|
304
|
+
const value = data as Map<string, unknown>;
|
|
305
|
+
const lsig = LogicSig.fromEncodingData(value.get('lsig'));
|
|
306
|
+
const lsigAccount = new LogicSigAccount(lsig.logic, lsig.args);
|
|
307
|
+
lsigAccount.lsig = lsig; // Restore other properties of the lsig
|
|
308
|
+
lsigAccount.sigkey = value.get('sigkey') as Uint8Array;
|
|
267
309
|
return lsigAccount;
|
|
268
310
|
}
|
|
269
311
|
|
|
270
312
|
/**
|
|
271
313
|
* Encode this object into msgpack.
|
|
272
314
|
*/
|
|
273
|
-
toByte() {
|
|
274
|
-
return encoding.
|
|
315
|
+
toByte(): Uint8Array {
|
|
316
|
+
return encoding.encodeMsgpack(this);
|
|
275
317
|
}
|
|
276
318
|
|
|
277
319
|
/**
|
|
278
320
|
* Decode a msgpack object into a LogicSigAccount.
|
|
279
321
|
* @param encoded - The encoded LogicSigAccount.
|
|
280
322
|
*/
|
|
281
|
-
static fromByte(encoded: ArrayLike<any>) {
|
|
282
|
-
|
|
283
|
-
return LogicSigAccount.from_obj_for_encoding(decodedObj);
|
|
323
|
+
static fromByte(encoded: ArrayLike<any>): LogicSigAccount {
|
|
324
|
+
return encoding.decodeMsgpack(encoded, LogicSigAccount);
|
|
284
325
|
}
|
|
285
326
|
|
|
286
327
|
/**
|
|
@@ -300,7 +341,7 @@ export class LogicSigAccount {
|
|
|
300
341
|
*/
|
|
301
342
|
verify() {
|
|
302
343
|
const addr = this.address();
|
|
303
|
-
return this.lsig.verify(
|
|
344
|
+
return this.lsig.verify(addr.publicKey);
|
|
304
345
|
}
|
|
305
346
|
|
|
306
347
|
/**
|
|
@@ -312,7 +353,7 @@ export class LogicSigAccount {
|
|
|
312
353
|
* If the LogicSig is not delegated to another account, this will return an
|
|
313
354
|
* escrow address that is the hash of the LogicSig's program code.
|
|
314
355
|
*/
|
|
315
|
-
address() {
|
|
356
|
+
address(): Address {
|
|
316
357
|
if (this.lsig.sig && this.lsig.msig) {
|
|
317
358
|
throw new Error(
|
|
318
359
|
'LogicSig has too many signatures. At most one of sig or msig may be present'
|
|
@@ -323,7 +364,7 @@ export class LogicSigAccount {
|
|
|
323
364
|
if (!this.sigkey) {
|
|
324
365
|
throw new Error('Signing key for delegated account is missing');
|
|
325
366
|
}
|
|
326
|
-
return
|
|
367
|
+
return new Address(this.sigkey);
|
|
327
368
|
}
|
|
328
369
|
|
|
329
370
|
if (this.lsig.msig) {
|
|
@@ -332,7 +373,7 @@ export class LogicSigAccount {
|
|
|
332
373
|
threshold: this.lsig.msig.thr,
|
|
333
374
|
pks: this.lsig.msig.subsig.map((subsig) => subsig.pk),
|
|
334
375
|
};
|
|
335
|
-
return
|
|
376
|
+
return addressFromMultisigPreImg(msigMetadata);
|
|
336
377
|
}
|
|
337
378
|
|
|
338
379
|
return this.lsig.address();
|
|
@@ -378,156 +419,67 @@ export class LogicSigAccount {
|
|
|
378
419
|
}
|
|
379
420
|
}
|
|
380
421
|
|
|
381
|
-
function signLogicSigTransactionWithAddress(
|
|
382
|
-
txn: txnBuilder.Transaction,
|
|
383
|
-
lsig: LogicSig,
|
|
384
|
-
lsigAddress: Uint8Array
|
|
385
|
-
) {
|
|
386
|
-
if (!lsig.verify(lsigAddress)) {
|
|
387
|
-
throw new Error(
|
|
388
|
-
'Logic signature verification failed. Ensure the program and signature are valid.'
|
|
389
|
-
);
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
const signedTxn: EncodedSignedTransaction = {
|
|
393
|
-
lsig: lsig.get_obj_for_encoding(),
|
|
394
|
-
txn: txn.get_obj_for_encoding(),
|
|
395
|
-
};
|
|
396
|
-
|
|
397
|
-
if (!nacl.bytesEqual(lsigAddress, txn.from.publicKey)) {
|
|
398
|
-
signedTxn.sgnr = Buffer.from(lsigAddress);
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
return {
|
|
402
|
-
txID: txn.txID().toString(),
|
|
403
|
-
blob: encoding.encode(signedTxn),
|
|
404
|
-
};
|
|
405
|
-
}
|
|
406
|
-
|
|
407
|
-
/**
|
|
408
|
-
* signLogicSigTransactionObject takes a transaction and a LogicSig object and
|
|
409
|
-
* returns a signed transaction.
|
|
410
|
-
*
|
|
411
|
-
* @param txn - The transaction to sign.
|
|
412
|
-
* @param lsigObject - The LogicSig object that will sign the transaction.
|
|
413
|
-
*
|
|
414
|
-
* @returns Object containing txID and blob representing signed transaction.
|
|
415
|
-
*/
|
|
416
|
-
export function signLogicSigTransactionObject(
|
|
417
|
-
txn: txnBuilder.Transaction,
|
|
418
|
-
lsigObject: LogicSig | LogicSigAccount
|
|
419
|
-
) {
|
|
420
|
-
let lsig: LogicSig;
|
|
421
|
-
let lsigAddress: Uint8Array;
|
|
422
|
-
|
|
423
|
-
if (lsigObject instanceof LogicSigAccount) {
|
|
424
|
-
lsig = lsigObject.lsig;
|
|
425
|
-
lsigAddress = address.decodeAddress(lsigObject.address()).publicKey;
|
|
426
|
-
} else {
|
|
427
|
-
lsig = lsigObject;
|
|
428
|
-
|
|
429
|
-
if (lsig.sig) {
|
|
430
|
-
// For a LogicSig with a non-multisig delegating account, we cannot derive
|
|
431
|
-
// the address of that account from only its signature, so assume the
|
|
432
|
-
// delegating account is the sender. If that's not the case, the signing
|
|
433
|
-
// will fail.
|
|
434
|
-
lsigAddress = txn.from.publicKey;
|
|
435
|
-
} else if (lsig.msig) {
|
|
436
|
-
const msigMetadata = {
|
|
437
|
-
version: lsig.msig.v,
|
|
438
|
-
threshold: lsig.msig.thr,
|
|
439
|
-
pks: lsig.msig.subsig.map((subsig) => subsig.pk),
|
|
440
|
-
};
|
|
441
|
-
lsigAddress = address.fromMultisigPreImg(msigMetadata);
|
|
442
|
-
} else {
|
|
443
|
-
lsigAddress = address.decodeAddress(lsig.address()).publicKey;
|
|
444
|
-
}
|
|
445
|
-
}
|
|
446
|
-
|
|
447
|
-
return signLogicSigTransactionWithAddress(txn, lsig, lsigAddress);
|
|
448
|
-
}
|
|
449
|
-
|
|
450
|
-
/**
|
|
451
|
-
* signLogicSigTransaction takes a transaction and a LogicSig object and returns
|
|
452
|
-
* a signed transaction.
|
|
453
|
-
*
|
|
454
|
-
* @param txn - The transaction to sign.
|
|
455
|
-
* @param lsigObject - The LogicSig object that will sign the transaction.
|
|
456
|
-
*
|
|
457
|
-
* @returns Object containing txID and blob representing signed transaction.
|
|
458
|
-
* @throws error on failure
|
|
459
|
-
*/
|
|
460
|
-
export function signLogicSigTransaction(
|
|
461
|
-
txn: txnBuilder.TransactionLike,
|
|
462
|
-
lsigObject: LogicSig | LogicSigAccount
|
|
463
|
-
) {
|
|
464
|
-
const algoTxn = txnBuilder.instantiateTxnIfNeeded(txn);
|
|
465
|
-
return signLogicSigTransactionObject(algoTxn, lsigObject);
|
|
466
|
-
}
|
|
467
|
-
|
|
468
422
|
/**
|
|
469
423
|
* logicSigFromByte accepts encoded logic sig bytes and attempts to call logicsig.fromByte on it,
|
|
470
424
|
* returning the result
|
|
471
425
|
*/
|
|
472
|
-
export function logicSigFromByte(encoded: Uint8Array) {
|
|
473
|
-
return
|
|
426
|
+
export function logicSigFromByte(encoded: Uint8Array): LogicSig {
|
|
427
|
+
return encoding.decodeMsgpack(encoded, LogicSig);
|
|
474
428
|
}
|
|
475
429
|
|
|
476
|
-
const SIGN_PROGRAM_DATA_PREFIX =
|
|
430
|
+
const SIGN_PROGRAM_DATA_PREFIX = new TextEncoder().encode('ProgData');
|
|
477
431
|
|
|
478
432
|
/**
|
|
479
433
|
* tealSign creates a signature compatible with ed25519verify opcode from program hash
|
|
480
|
-
* @param sk -
|
|
481
|
-
* @param data -
|
|
434
|
+
* @param sk - Uint8Array with secret key
|
|
435
|
+
* @param data - Uint8Array with data to sign
|
|
482
436
|
* @param programHash - string representation of teal program hash (= contract address for LogicSigs)
|
|
483
437
|
*/
|
|
484
438
|
export function tealSign(
|
|
485
439
|
sk: Uint8Array,
|
|
486
|
-
data: Uint8Array
|
|
487
|
-
programHash: string
|
|
440
|
+
data: Uint8Array,
|
|
441
|
+
programHash: string | Address
|
|
488
442
|
) {
|
|
489
|
-
const
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
const
|
|
494
|
-
|
|
495
|
-
);
|
|
443
|
+
const programAddr =
|
|
444
|
+
typeof programHash === 'string'
|
|
445
|
+
? Address.fromString(programHash)
|
|
446
|
+
: programHash;
|
|
447
|
+
const parts = utils.concatArrays(programAddr.publicKey, data);
|
|
448
|
+
const toBeSigned = utils.concatArrays(SIGN_PROGRAM_DATA_PREFIX, parts);
|
|
496
449
|
return nacl.sign(toBeSigned, sk);
|
|
497
450
|
}
|
|
498
451
|
|
|
499
452
|
/**
|
|
500
453
|
* verifyTealSign verifies a signature as would the ed25519verify opcode
|
|
501
|
-
* @param data -
|
|
454
|
+
* @param data - Uint8Array with original signed data
|
|
502
455
|
* @param programHash - string representation of teal program hash (= contract address for LogicSigs)
|
|
503
456
|
* @param sig - uint8array with the signature to verify (produced by tealSign/tealSignFromProgram)
|
|
504
457
|
* @param pk - uint8array with public key to verify against
|
|
505
458
|
*/
|
|
506
459
|
export function verifyTealSign(
|
|
507
|
-
data: Uint8Array
|
|
508
|
-
programHash: string,
|
|
460
|
+
data: Uint8Array,
|
|
461
|
+
programHash: string | Address,
|
|
509
462
|
sig: Uint8Array,
|
|
510
463
|
pk: Uint8Array
|
|
511
464
|
) {
|
|
512
|
-
const
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
const
|
|
517
|
-
|
|
518
|
-
);
|
|
465
|
+
const programAddr =
|
|
466
|
+
typeof programHash === 'string'
|
|
467
|
+
? Address.fromString(programHash)
|
|
468
|
+
: programHash;
|
|
469
|
+
const parts = utils.concatArrays(programAddr.publicKey, data);
|
|
470
|
+
const toBeSigned = utils.concatArrays(SIGN_PROGRAM_DATA_PREFIX, parts);
|
|
519
471
|
return nacl.verify(toBeSigned, sig, pk);
|
|
520
472
|
}
|
|
521
473
|
|
|
522
474
|
/**
|
|
523
475
|
* tealSignFromProgram creates a signature compatible with ed25519verify opcode from raw program bytes
|
|
524
476
|
* @param sk - uint8array with secret key
|
|
525
|
-
* @param data -
|
|
526
|
-
* @param program -
|
|
477
|
+
* @param data - Uint8Array with data to sign
|
|
478
|
+
* @param program - Uint8Array with teal program
|
|
527
479
|
*/
|
|
528
480
|
export function tealSignFromProgram(
|
|
529
481
|
sk: Uint8Array,
|
|
530
|
-
data: Uint8Array
|
|
482
|
+
data: Uint8Array,
|
|
531
483
|
program: Uint8Array
|
|
532
484
|
) {
|
|
533
485
|
const lsig = new LogicSig(program);
|