algosdk 2.9.0 → 3.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -4
- package/dist/browser/algosdk.min.js +1 -1
- package/dist/browser/algosdk.min.js.LICENSE.txt +0 -9
- package/dist/browser/algosdk.min.js.map +1 -1
- package/dist/cjs/abi/abi_type.js +34 -27
- package/dist/cjs/abi/abi_type.js.map +1 -1
- package/dist/cjs/abi/contract.js +3 -3
- package/dist/cjs/abi/contract.js.map +1 -1
- package/dist/cjs/abi/index.js +6 -6
- package/dist/cjs/abi/index.js.map +1 -1
- package/dist/cjs/abi/interface.js +3 -3
- package/dist/cjs/abi/interface.js.map +1 -1
- package/dist/cjs/abi/method.js +10 -10
- package/dist/cjs/abi/method.js.map +1 -1
- package/dist/cjs/abi/reference.js +1 -1
- package/dist/cjs/abi/reference.js.map +1 -1
- package/dist/cjs/abi/transaction.js +2 -2
- package/dist/cjs/abi/transaction.js.map +1 -1
- package/dist/cjs/account.js +4 -4
- package/dist/cjs/account.js.map +1 -1
- package/dist/cjs/boxStorage.js +17 -17
- package/dist/cjs/boxStorage.js.map +1 -1
- package/dist/cjs/client/client.js +77 -41
- package/dist/cjs/client/client.js.map +1 -1
- package/dist/cjs/client/index.js +29 -0
- package/dist/cjs/client/index.js.map +1 -0
- package/dist/cjs/client/kmd.js +69 -86
- package/dist/cjs/client/kmd.js.map +1 -1
- package/dist/cjs/client/urlTokenBaseHTTPClient.js +16 -11
- package/dist/cjs/client/urlTokenBaseHTTPClient.js.map +1 -1
- package/dist/cjs/client/v2/algod/accountApplicationInformation.js +11 -7
- package/dist/cjs/client/v2/algod/accountApplicationInformation.js.map +1 -1
- package/dist/cjs/client/v2/algod/accountAssetInformation.js +11 -7
- package/dist/cjs/client/v2/algod/accountAssetInformation.js.map +1 -1
- package/dist/cjs/client/v2/algod/accountInformation.js +11 -6
- package/dist/cjs/client/v2/algod/accountInformation.js.map +1 -1
- package/dist/cjs/client/v2/algod/algod.js +85 -83
- package/dist/cjs/client/v2/algod/algod.js.map +1 -1
- package/dist/cjs/client/v2/algod/block.js +6 -33
- package/dist/cjs/client/v2/algod/block.js.map +1 -1
- package/dist/cjs/client/v2/algod/compile.js +17 -11
- package/dist/cjs/client/v2/algod/compile.js.map +1 -1
- package/dist/cjs/client/v2/algod/disassemble.js +17 -11
- package/dist/cjs/client/v2/algod/disassemble.js.map +1 -1
- package/dist/cjs/client/v2/algod/dryrun.js +18 -37
- package/dist/cjs/client/v2/algod/dryrun.js.map +1 -1
- package/dist/cjs/client/v2/algod/genesis.js +6 -2
- package/dist/cjs/client/v2/algod/genesis.js.map +1 -1
- package/dist/cjs/client/v2/algod/getApplicationBoxByName.js +10 -10
- package/dist/cjs/client/v2/algod/getApplicationBoxByName.js.map +1 -1
- package/dist/cjs/client/v2/algod/getApplicationBoxes.js +8 -8
- package/dist/cjs/client/v2/algod/getApplicationBoxes.js.map +1 -1
- package/dist/cjs/client/v2/algod/getApplicationByID.js +10 -5
- package/dist/cjs/client/v2/algod/getApplicationByID.js.map +1 -1
- package/dist/cjs/client/v2/algod/getAssetByID.js +10 -5
- package/dist/cjs/client/v2/algod/getAssetByID.js.map +1 -1
- package/dist/cjs/client/v2/algod/getBlockHash.js +10 -6
- package/dist/cjs/client/v2/algod/getBlockHash.js.map +1 -1
- package/dist/cjs/client/v2/algod/getBlockOffsetTimestamp.js +6 -5
- package/dist/cjs/client/v2/algod/getBlockOffsetTimestamp.js.map +1 -1
- package/dist/cjs/client/v2/algod/getBlockTxids.js +10 -4
- package/dist/cjs/client/v2/algod/getBlockTxids.js.map +1 -1
- package/dist/cjs/client/v2/algod/getLedgerStateDelta.js +11 -6
- package/dist/cjs/client/v2/algod/getLedgerStateDelta.js.map +1 -1
- package/dist/cjs/client/v2/algod/getLedgerStateDeltaForTransactionGroup.js +11 -6
- package/dist/cjs/client/v2/algod/getLedgerStateDeltaForTransactionGroup.js.map +1 -1
- package/dist/cjs/client/v2/algod/getSyncRound.js +6 -5
- package/dist/cjs/client/v2/algod/getSyncRound.js.map +1 -1
- package/dist/cjs/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.js +9 -9
- package/dist/cjs/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.js.map +1 -1
- package/dist/cjs/client/v2/algod/getTransactionProof.js +10 -6
- package/dist/cjs/client/v2/algod/getTransactionProof.js.map +1 -1
- package/dist/cjs/client/v2/algod/healthCheck.js +4 -9
- package/dist/cjs/client/v2/algod/healthCheck.js.map +1 -1
- package/dist/cjs/{types → client/v2/algod}/index.js +5 -3
- package/dist/cjs/client/v2/algod/index.js.map +1 -0
- package/dist/cjs/client/v2/algod/lightBlockHeaderProof.js +10 -5
- package/dist/cjs/client/v2/algod/lightBlockHeaderProof.js.map +1 -1
- package/dist/cjs/client/v2/algod/models/types.js +3701 -1828
- package/dist/cjs/client/v2/algod/models/types.js.map +1 -1
- package/dist/cjs/client/v2/algod/pendingTransactionInformation.js +6 -32
- package/dist/cjs/client/v2/algod/pendingTransactionInformation.js.map +1 -1
- package/dist/cjs/client/v2/algod/pendingTransactions.js +6 -31
- package/dist/cjs/client/v2/algod/pendingTransactions.js.map +1 -1
- package/dist/cjs/client/v2/algod/pendingTransactionsByAddress.js +7 -33
- package/dist/cjs/client/v2/algod/pendingTransactionsByAddress.js.map +1 -1
- package/dist/cjs/client/v2/algod/ready.js +4 -2
- package/dist/cjs/client/v2/algod/ready.js.map +1 -1
- package/dist/cjs/client/v2/algod/sendRawTransaction.js +17 -8
- package/dist/cjs/client/v2/algod/sendRawTransaction.js.map +1 -1
- package/dist/cjs/client/v2/algod/setBlockOffsetTimestamp.js +13 -8
- package/dist/cjs/client/v2/algod/setBlockOffsetTimestamp.js.map +1 -1
- package/dist/cjs/client/v2/algod/setSyncRound.js +13 -8
- package/dist/cjs/client/v2/algod/setSyncRound.js.map +1 -1
- package/dist/cjs/client/v2/algod/simulateTransaction.js +15 -35
- package/dist/cjs/client/v2/algod/simulateTransaction.js.map +1 -1
- package/dist/cjs/client/v2/algod/stateproof.js +10 -5
- package/dist/cjs/client/v2/algod/stateproof.js.map +1 -1
- package/dist/cjs/client/v2/algod/status.js +8 -2
- package/dist/cjs/client/v2/algod/status.js.map +1 -1
- package/dist/cjs/client/v2/algod/statusAfterBlock.js +10 -5
- package/dist/cjs/client/v2/algod/statusAfterBlock.js.map +1 -1
- package/dist/cjs/client/v2/algod/suggestedParams.js +13 -9
- package/dist/cjs/client/v2/algod/suggestedParams.js.map +1 -1
- package/dist/cjs/client/v2/algod/supply.js +8 -2
- package/dist/cjs/client/v2/algod/supply.js.map +1 -1
- package/dist/cjs/client/v2/algod/unsetSyncRound.js +11 -5
- package/dist/cjs/client/v2/algod/unsetSyncRound.js.map +1 -1
- package/dist/cjs/client/v2/algod/versions.js +8 -2
- package/dist/cjs/client/v2/algod/versions.js.map +1 -1
- package/dist/cjs/client/v2/indexer/index.js +22 -0
- package/dist/cjs/client/v2/indexer/index.js.map +1 -0
- package/dist/cjs/client/v2/indexer/indexer.js +44 -43
- package/dist/cjs/client/v2/indexer/indexer.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupAccountAppLocalStates.js +11 -6
- package/dist/cjs/client/v2/indexer/lookupAccountAppLocalStates.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupAccountAssets.js +11 -6
- package/dist/cjs/client/v2/indexer/lookupAccountAssets.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupAccountByID.js +11 -6
- package/dist/cjs/client/v2/indexer/lookupAccountByID.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupAccountCreatedApplications.js +11 -6
- package/dist/cjs/client/v2/indexer/lookupAccountCreatedApplications.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupAccountCreatedAssets.js +11 -6
- package/dist/cjs/client/v2/indexer/lookupAccountCreatedAssets.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupAccountTransactions.js +19 -12
- package/dist/cjs/client/v2/indexer/lookupAccountTransactions.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupApplicationBoxByIDandName.js +10 -10
- package/dist/cjs/client/v2/indexer/lookupApplicationBoxByIDandName.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupApplicationLogs.js +10 -5
- package/dist/cjs/client/v2/indexer/lookupApplicationLogs.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupApplications.js +10 -5
- package/dist/cjs/client/v2/indexer/lookupApplications.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupAssetBalances.js +10 -5
- package/dist/cjs/client/v2/indexer/lookupAssetBalances.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupAssetByID.js +10 -5
- package/dist/cjs/client/v2/indexer/lookupAssetByID.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupAssetTransactions.js +19 -12
- package/dist/cjs/client/v2/indexer/lookupAssetTransactions.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupBlock.js +10 -5
- package/dist/cjs/client/v2/indexer/lookupBlock.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupTransactionByID.js +10 -5
- package/dist/cjs/client/v2/indexer/lookupTransactionByID.js.map +1 -1
- package/dist/cjs/client/v2/indexer/makeHealthCheck.js +8 -2
- package/dist/cjs/client/v2/indexer/makeHealthCheck.js.map +1 -1
- package/dist/cjs/client/v2/indexer/models/types.js +3591 -1651
- package/dist/cjs/client/v2/indexer/models/types.js.map +1 -1
- package/dist/cjs/client/v2/indexer/searchAccounts.js +9 -3
- package/dist/cjs/client/v2/indexer/searchAccounts.js.map +1 -1
- package/dist/cjs/client/v2/indexer/searchForApplicationBoxes.js +8 -8
- package/dist/cjs/client/v2/indexer/searchForApplicationBoxes.js.map +1 -1
- package/dist/cjs/client/v2/indexer/searchForApplications.js +9 -3
- package/dist/cjs/client/v2/indexer/searchForApplications.js.map +1 -1
- package/dist/cjs/client/v2/indexer/searchForAssets.js +9 -3
- package/dist/cjs/client/v2/indexer/searchForAssets.js.map +1 -1
- package/dist/cjs/client/v2/indexer/searchForTransactions.js +17 -9
- package/dist/cjs/client/v2/indexer/searchForTransactions.js.map +1 -1
- package/dist/cjs/client/v2/jsonrequest.js +22 -54
- package/dist/cjs/client/v2/jsonrequest.js.map +1 -1
- package/dist/cjs/client/v2/serviceClient.js +5 -25
- package/dist/cjs/client/v2/serviceClient.js.map +1 -1
- package/dist/cjs/client/v2/untypedmodel.js +22 -0
- package/dist/cjs/client/v2/untypedmodel.js.map +1 -0
- package/dist/cjs/composer.js +64 -58
- package/dist/cjs/composer.js.map +1 -1
- package/dist/cjs/convert.js.map +1 -1
- package/dist/cjs/dryrun.js +107 -203
- package/dist/cjs/dryrun.js.map +1 -1
- package/dist/cjs/encoding/address.js +88 -104
- package/dist/cjs/encoding/address.js.map +1 -1
- package/dist/cjs/encoding/bigint.js +2 -3
- package/dist/cjs/encoding/bigint.js.map +1 -1
- package/dist/cjs/encoding/binarydata.js +82 -0
- package/dist/cjs/encoding/binarydata.js.map +1 -0
- package/dist/cjs/encoding/encoding.js +353 -38
- package/dist/cjs/encoding/encoding.js.map +1 -1
- package/dist/cjs/encoding/schema/address.js +41 -0
- package/dist/cjs/encoding/schema/address.js.map +1 -0
- package/dist/cjs/encoding/schema/array.js +43 -0
- package/dist/cjs/encoding/schema/array.js.map +1 -0
- package/dist/cjs/encoding/schema/binarystring.js +55 -0
- package/dist/cjs/encoding/schema/binarystring.js.map +1 -0
- package/dist/cjs/encoding/schema/blockhash.js +67 -0
- package/dist/cjs/encoding/schema/blockhash.js.map +1 -0
- package/dist/cjs/encoding/schema/boolean.js +42 -0
- package/dist/cjs/encoding/schema/boolean.js.map +1 -0
- package/dist/cjs/encoding/schema/bytearray.js +98 -0
- package/dist/cjs/encoding/schema/bytearray.js.map +1 -0
- package/dist/cjs/encoding/schema/index.js +34 -0
- package/dist/cjs/encoding/schema/index.js.map +1 -0
- package/dist/cjs/encoding/schema/map.js +528 -0
- package/dist/cjs/encoding/schema/map.js.map +1 -0
- package/dist/cjs/encoding/schema/optional.js +58 -0
- package/dist/cjs/encoding/schema/optional.js.map +1 -0
- package/dist/cjs/encoding/schema/string.js +43 -0
- package/dist/cjs/encoding/schema/string.js.map +1 -0
- package/dist/cjs/encoding/schema/uint64.js +36 -0
- package/dist/cjs/encoding/schema/uint64.js.map +1 -0
- package/dist/cjs/encoding/schema/untyped.js +33 -0
- package/dist/cjs/encoding/schema/untyped.js.map +1 -0
- package/dist/cjs/encoding/uint64.js +2 -2
- package/dist/cjs/encoding/uint64.js.map +1 -1
- package/dist/cjs/group.js +23 -60
- package/dist/cjs/group.js.map +1 -1
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/logic/sourcemap.js +56 -25
- package/dist/cjs/logic/sourcemap.js.map +1 -1
- package/dist/cjs/logicsig.js +113 -146
- package/dist/cjs/logicsig.js.map +1 -1
- package/dist/cjs/main.js +113 -122
- package/dist/cjs/main.js.map +1 -1
- package/dist/cjs/makeTxn.js +310 -570
- package/dist/cjs/makeTxn.js.map +1 -1
- package/dist/cjs/mnemonic/mnemonic.js +8 -8
- package/dist/cjs/mnemonic/mnemonic.js.map +1 -1
- package/dist/cjs/multisig.js +60 -312
- package/dist/cjs/multisig.js.map +1 -1
- package/dist/cjs/multisigSigning.js +285 -0
- package/dist/cjs/multisigSigning.js.map +1 -0
- package/dist/cjs/nacl/naclWrappers.js +2 -2
- package/dist/cjs/nacl/naclWrappers.js.map +1 -1
- package/dist/cjs/signedTransaction.js +106 -0
- package/dist/cjs/signedTransaction.js.map +1 -0
- package/dist/cjs/signer.js +7 -7
- package/dist/cjs/signer.js.map +1 -1
- package/dist/cjs/signing.js +105 -0
- package/dist/cjs/signing.js.map +1 -0
- package/dist/cjs/stateproof.js +421 -0
- package/dist/cjs/stateproof.js.map +1 -0
- package/dist/cjs/transaction.js +724 -1009
- package/dist/cjs/transaction.js.map +1 -1
- package/dist/cjs/types/block.js +813 -0
- package/dist/cjs/types/block.js.map +1 -0
- package/dist/cjs/types/intDecoding.js +1 -1
- package/dist/cjs/types/intDecoding.js.map +1 -1
- package/dist/cjs/types/statedelta.js +1155 -0
- package/dist/cjs/types/statedelta.js.map +1 -0
- package/dist/cjs/types/transactions/base.js +22 -5
- package/dist/cjs/types/transactions/base.js.map +1 -1
- package/dist/cjs/types/transactions/encoded.js +67 -0
- package/dist/cjs/types/transactions/encoded.js.map +1 -1
- package/dist/cjs/types/transactions/index.js +2 -5
- package/dist/cjs/types/transactions/index.js.map +1 -1
- package/dist/cjs/utils/utils.js +86 -22
- package/dist/cjs/utils/utils.js.map +1 -1
- package/dist/cjs/wait.js +4 -4
- package/dist/cjs/wait.js.map +1 -1
- package/dist/esm/abi/abi_type.js +22 -15
- package/dist/esm/abi/abi_type.js.map +1 -1
- package/dist/esm/abi/contract.js +1 -1
- package/dist/esm/abi/contract.js.map +1 -1
- package/dist/esm/abi/index.js +6 -6
- package/dist/esm/abi/index.js.map +1 -1
- package/dist/esm/abi/interface.js +1 -1
- package/dist/esm/abi/interface.js.map +1 -1
- package/dist/esm/abi/method.js +4 -4
- package/dist/esm/abi/method.js.map +1 -1
- package/dist/esm/abi/transaction.js +1 -1
- package/dist/esm/abi/transaction.js.map +1 -1
- package/dist/esm/account.js +4 -4
- package/dist/esm/account.js.map +1 -1
- package/dist/esm/boxStorage.js +15 -15
- package/dist/esm/boxStorage.js.map +1 -1
- package/dist/esm/client/client.js +74 -40
- package/dist/esm/client/client.js.map +1 -1
- package/dist/esm/client/index.js +7 -0
- package/dist/esm/client/index.js.map +1 -0
- package/dist/esm/client/kmd.js +67 -62
- package/dist/esm/client/kmd.js.map +1 -1
- package/dist/esm/client/urlTokenBaseHTTPClient.js +16 -11
- package/dist/esm/client/urlTokenBaseHTTPClient.js.map +1 -1
- package/dist/esm/client/v2/algod/accountApplicationInformation.js +10 -6
- package/dist/esm/client/v2/algod/accountApplicationInformation.js.map +1 -1
- package/dist/esm/client/v2/algod/accountAssetInformation.js +10 -6
- package/dist/esm/client/v2/algod/accountAssetInformation.js.map +1 -1
- package/dist/esm/client/v2/algod/accountInformation.js +10 -5
- package/dist/esm/client/v2/algod/accountInformation.js.map +1 -1
- package/dist/esm/client/v2/algod/algod.js +71 -70
- package/dist/esm/client/v2/algod/algod.js.map +1 -1
- package/dist/esm/client/v2/algod/block.js +5 -9
- package/dist/esm/client/v2/algod/block.js.map +1 -1
- package/dist/esm/client/v2/algod/compile.js +16 -10
- package/dist/esm/client/v2/algod/compile.js.map +1 -1
- package/dist/esm/client/v2/algod/disassemble.js +16 -10
- package/dist/esm/client/v2/algod/disassemble.js.map +1 -1
- package/dist/esm/client/v2/algod/dryrun.js +16 -12
- package/dist/esm/client/v2/algod/dryrun.js.map +1 -1
- package/dist/esm/client/v2/algod/genesis.js +5 -1
- package/dist/esm/client/v2/algod/genesis.js.map +1 -1
- package/dist/esm/client/v2/algod/getApplicationBoxByName.js +9 -9
- package/dist/esm/client/v2/algod/getApplicationBoxByName.js.map +1 -1
- package/dist/esm/client/v2/algod/getApplicationBoxes.js +7 -7
- package/dist/esm/client/v2/algod/getApplicationBoxes.js.map +1 -1
- package/dist/esm/client/v2/algod/getApplicationByID.js +9 -4
- package/dist/esm/client/v2/algod/getApplicationByID.js.map +1 -1
- package/dist/esm/client/v2/algod/getAssetByID.js +9 -4
- package/dist/esm/client/v2/algod/getAssetByID.js.map +1 -1
- package/dist/esm/client/v2/algod/getBlockHash.js +9 -5
- package/dist/esm/client/v2/algod/getBlockHash.js.map +1 -1
- package/dist/esm/client/v2/algod/getBlockOffsetTimestamp.js +5 -4
- package/dist/esm/client/v2/algod/getBlockOffsetTimestamp.js.map +1 -1
- package/dist/esm/client/v2/algod/getBlockTxids.js +9 -3
- package/dist/esm/client/v2/algod/getBlockTxids.js.map +1 -1
- package/dist/esm/client/v2/algod/getLedgerStateDelta.js +10 -5
- package/dist/esm/client/v2/algod/getLedgerStateDelta.js.map +1 -1
- package/dist/esm/client/v2/algod/getLedgerStateDeltaForTransactionGroup.js +10 -5
- package/dist/esm/client/v2/algod/getLedgerStateDeltaForTransactionGroup.js.map +1 -1
- package/dist/esm/client/v2/algod/getSyncRound.js +5 -4
- package/dist/esm/client/v2/algod/getSyncRound.js.map +1 -1
- package/dist/esm/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.js +8 -8
- package/dist/esm/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.js.map +1 -1
- package/dist/esm/client/v2/algod/getTransactionProof.js +9 -5
- package/dist/esm/client/v2/algod/getTransactionProof.js.map +1 -1
- package/dist/esm/client/v2/algod/healthCheck.js +3 -8
- package/dist/esm/client/v2/algod/healthCheck.js.map +1 -1
- package/dist/esm/client/v2/algod/index.js +4 -0
- package/dist/esm/client/v2/algod/index.js.map +1 -0
- package/dist/esm/client/v2/algod/lightBlockHeaderProof.js +9 -4
- package/dist/esm/client/v2/algod/lightBlockHeaderProof.js.map +1 -1
- package/dist/esm/client/v2/algod/models/types.js +3701 -1825
- package/dist/esm/client/v2/algod/models/types.js.map +1 -1
- package/dist/esm/client/v2/algod/pendingTransactionInformation.js +5 -8
- package/dist/esm/client/v2/algod/pendingTransactionInformation.js.map +1 -1
- package/dist/esm/client/v2/algod/pendingTransactions.js +5 -7
- package/dist/esm/client/v2/algod/pendingTransactions.js.map +1 -1
- package/dist/esm/client/v2/algod/pendingTransactionsByAddress.js +6 -9
- package/dist/esm/client/v2/algod/pendingTransactionsByAddress.js.map +1 -1
- package/dist/esm/client/v2/algod/ready.js +3 -1
- package/dist/esm/client/v2/algod/ready.js.map +1 -1
- package/dist/esm/client/v2/algod/sendRawTransaction.js +15 -6
- package/dist/esm/client/v2/algod/sendRawTransaction.js.map +1 -1
- package/dist/esm/client/v2/algod/setBlockOffsetTimestamp.js +12 -7
- package/dist/esm/client/v2/algod/setBlockOffsetTimestamp.js.map +1 -1
- package/dist/esm/client/v2/algod/setSyncRound.js +12 -7
- package/dist/esm/client/v2/algod/setSyncRound.js.map +1 -1
- package/dist/esm/client/v2/algod/simulateTransaction.js +14 -11
- package/dist/esm/client/v2/algod/simulateTransaction.js.map +1 -1
- package/dist/esm/client/v2/algod/stateproof.js +9 -4
- package/dist/esm/client/v2/algod/stateproof.js.map +1 -1
- package/dist/esm/client/v2/algod/status.js +7 -1
- package/dist/esm/client/v2/algod/status.js.map +1 -1
- package/dist/esm/client/v2/algod/statusAfterBlock.js +9 -4
- package/dist/esm/client/v2/algod/statusAfterBlock.js.map +1 -1
- package/dist/esm/client/v2/algod/suggestedParams.js +12 -8
- package/dist/esm/client/v2/algod/suggestedParams.js.map +1 -1
- package/dist/esm/client/v2/algod/supply.js +7 -1
- package/dist/esm/client/v2/algod/supply.js.map +1 -1
- package/dist/esm/client/v2/algod/unsetSyncRound.js +10 -4
- package/dist/esm/client/v2/algod/unsetSyncRound.js.map +1 -1
- package/dist/esm/client/v2/algod/versions.js +7 -1
- package/dist/esm/client/v2/algod/versions.js.map +1 -1
- package/dist/esm/client/v2/indexer/index.js +4 -0
- package/dist/esm/client/v2/indexer/index.js.map +1 -0
- package/dist/esm/client/v2/indexer/indexer.js +42 -42
- package/dist/esm/client/v2/indexer/indexer.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupAccountAppLocalStates.js +10 -5
- package/dist/esm/client/v2/indexer/lookupAccountAppLocalStates.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupAccountAssets.js +10 -5
- package/dist/esm/client/v2/indexer/lookupAccountAssets.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupAccountByID.js +10 -5
- package/dist/esm/client/v2/indexer/lookupAccountByID.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupAccountCreatedApplications.js +10 -5
- package/dist/esm/client/v2/indexer/lookupAccountCreatedApplications.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupAccountCreatedAssets.js +10 -5
- package/dist/esm/client/v2/indexer/lookupAccountCreatedAssets.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupAccountTransactions.js +18 -11
- package/dist/esm/client/v2/indexer/lookupAccountTransactions.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupApplicationBoxByIDandName.js +9 -9
- package/dist/esm/client/v2/indexer/lookupApplicationBoxByIDandName.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupApplicationLogs.js +9 -4
- package/dist/esm/client/v2/indexer/lookupApplicationLogs.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupApplications.js +9 -4
- package/dist/esm/client/v2/indexer/lookupApplications.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupAssetBalances.js +9 -4
- package/dist/esm/client/v2/indexer/lookupAssetBalances.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupAssetByID.js +9 -4
- package/dist/esm/client/v2/indexer/lookupAssetByID.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupAssetTransactions.js +17 -10
- package/dist/esm/client/v2/indexer/lookupAssetTransactions.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupBlock.js +9 -4
- package/dist/esm/client/v2/indexer/lookupBlock.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupTransactionByID.js +9 -4
- package/dist/esm/client/v2/indexer/lookupTransactionByID.js.map +1 -1
- package/dist/esm/client/v2/indexer/makeHealthCheck.js +7 -1
- package/dist/esm/client/v2/indexer/makeHealthCheck.js.map +1 -1
- package/dist/esm/client/v2/indexer/models/types.js +3591 -1648
- package/dist/esm/client/v2/indexer/models/types.js.map +1 -1
- package/dist/esm/client/v2/indexer/searchAccounts.js +8 -2
- package/dist/esm/client/v2/indexer/searchAccounts.js.map +1 -1
- package/dist/esm/client/v2/indexer/searchForApplicationBoxes.js +7 -7
- package/dist/esm/client/v2/indexer/searchForApplicationBoxes.js.map +1 -1
- package/dist/esm/client/v2/indexer/searchForApplications.js +8 -2
- package/dist/esm/client/v2/indexer/searchForApplications.js.map +1 -1
- package/dist/esm/client/v2/indexer/searchForAssets.js +8 -2
- package/dist/esm/client/v2/indexer/searchForAssets.js.map +1 -1
- package/dist/esm/client/v2/indexer/searchForTransactions.js +15 -7
- package/dist/esm/client/v2/indexer/searchForTransactions.js.map +1 -1
- package/dist/esm/client/v2/jsonrequest.js +22 -51
- package/dist/esm/client/v2/jsonrequest.js.map +1 -1
- package/dist/esm/client/v2/serviceClient.js +3 -20
- package/dist/esm/client/v2/serviceClient.js.map +1 -1
- package/dist/esm/client/v2/untypedmodel.js +18 -0
- package/dist/esm/client/v2/untypedmodel.js.map +1 -0
- package/dist/esm/composer.js +43 -37
- package/dist/esm/composer.js.map +1 -1
- package/dist/esm/convert.js.map +1 -1
- package/dist/esm/dryrun.js +98 -195
- package/dist/esm/dryrun.js.map +1 -1
- package/dist/esm/encoding/address.js +85 -100
- package/dist/esm/encoding/address.js.map +1 -1
- package/dist/esm/encoding/bigint.js +2 -3
- package/dist/esm/encoding/bigint.js.map +1 -1
- package/dist/esm/encoding/binarydata.js +73 -0
- package/dist/esm/encoding/binarydata.js.map +1 -0
- package/dist/esm/encoding/encoding.js +337 -12
- package/dist/esm/encoding/encoding.js.map +1 -1
- package/dist/esm/encoding/schema/address.js +37 -0
- package/dist/esm/encoding/schema/address.js.map +1 -0
- package/dist/esm/encoding/schema/array.js +39 -0
- package/dist/esm/encoding/schema/array.js.map +1 -0
- package/dist/esm/encoding/schema/binarystring.js +51 -0
- package/dist/esm/encoding/schema/binarystring.js.map +1 -0
- package/dist/esm/encoding/schema/blockhash.js +60 -0
- package/dist/esm/encoding/schema/blockhash.js.map +1 -0
- package/dist/esm/encoding/schema/boolean.js +38 -0
- package/dist/esm/encoding/schema/boolean.js.map +1 -0
- package/dist/esm/encoding/schema/bytearray.js +93 -0
- package/dist/esm/encoding/schema/bytearray.js.map +1 -0
- package/dist/esm/encoding/schema/index.js +12 -0
- package/dist/esm/encoding/schema/index.js.map +1 -0
- package/dist/esm/encoding/schema/map.js +517 -0
- package/dist/esm/encoding/schema/map.js.map +1 -0
- package/dist/esm/encoding/schema/optional.js +54 -0
- package/dist/esm/encoding/schema/optional.js.map +1 -0
- package/dist/esm/encoding/schema/string.js +39 -0
- package/dist/esm/encoding/schema/string.js.map +1 -0
- package/dist/esm/encoding/schema/uint64.js +32 -0
- package/dist/esm/encoding/schema/uint64.js.map +1 -0
- package/dist/esm/encoding/schema/untyped.js +29 -0
- package/dist/esm/encoding/schema/untyped.js.map +1 -0
- package/dist/esm/encoding/uint64.js +1 -1
- package/dist/esm/encoding/uint64.js.map +1 -1
- package/dist/esm/group.js +22 -58
- package/dist/esm/group.js.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/logic/sourcemap.js +54 -23
- package/dist/esm/logic/sourcemap.js.map +1 -1
- package/dist/esm/logicsig.js +110 -141
- package/dist/esm/logicsig.js.map +1 -1
- package/dist/esm/main.js +47 -76
- package/dist/esm/main.js.map +1 -1
- package/dist/esm/makeTxn.js +304 -529
- package/dist/esm/makeTxn.js.map +1 -1
- package/dist/esm/mnemonic/mnemonic.js +5 -5
- package/dist/esm/mnemonic/mnemonic.js.map +1 -1
- package/dist/esm/multisig.js +56 -305
- package/dist/esm/multisig.js.map +1 -1
- package/dist/esm/multisigSigning.js +254 -0
- package/dist/esm/multisigSigning.js.map +1 -0
- package/dist/esm/nacl/naclWrappers.js +1 -1
- package/dist/esm/nacl/naclWrappers.js.map +1 -1
- package/dist/esm/package.json +1 -0
- package/dist/esm/signedTransaction.js +100 -0
- package/dist/esm/signedTransaction.js.map +1 -0
- package/dist/esm/signer.js +3 -3
- package/dist/esm/signer.js.map +1 -1
- package/dist/esm/signing.js +77 -0
- package/dist/esm/signing.js.map +1 -0
- package/dist/esm/stateproof.js +408 -0
- package/dist/esm/stateproof.js.map +1 -0
- package/dist/esm/transaction.js +723 -1005
- package/dist/esm/transaction.js.map +1 -1
- package/dist/esm/types/block.js +797 -0
- package/dist/esm/types/block.js.map +1 -0
- package/dist/esm/types/intDecoding.js +1 -1
- package/dist/esm/types/intDecoding.js.map +1 -1
- package/dist/esm/types/statedelta.js +1129 -0
- package/dist/esm/types/statedelta.js.map +1 -0
- package/dist/esm/types/transactions/base.js +18 -2
- package/dist/esm/types/transactions/base.js.map +1 -1
- package/dist/esm/types/transactions/encoded.js +62 -1
- package/dist/esm/types/transactions/encoded.js.map +1 -1
- package/dist/esm/types/transactions/index.js +2 -3
- package/dist/esm/types/transactions/index.js.map +1 -1
- package/dist/esm/utils/utils.js +80 -21
- package/dist/esm/utils/utils.js.map +1 -1
- package/dist/esm/wait.js +4 -4
- package/dist/esm/wait.js.map +1 -1
- package/dist/types/abi/abi_type.d.ts +1 -1
- package/dist/types/abi/contract.d.ts +2 -2
- package/dist/types/abi/index.d.ts +6 -6
- package/dist/types/abi/interface.d.ts +1 -1
- package/dist/types/abi/method.d.ts +6 -6
- package/dist/types/abi/transaction.d.ts +1 -1
- package/dist/types/account.d.ts +1 -1
- package/dist/types/boxStorage.d.ts +4 -5
- package/dist/types/client/baseHTTPClient.d.ts +9 -6
- package/dist/types/client/client.d.ts +59 -18
- package/dist/types/client/index.d.ts +5 -0
- package/dist/types/client/kmd.d.ts +12 -10
- package/dist/types/client/urlTokenBaseHTTPClient.d.ts +8 -5
- package/dist/types/client/v2/algod/accountApplicationInformation.d.ts +8 -6
- package/dist/types/client/v2/algod/accountAssetInformation.d.ts +8 -6
- package/dist/types/client/v2/algod/accountInformation.d.ts +7 -5
- package/dist/types/client/v2/algod/algod.d.ts +53 -52
- package/dist/types/client/v2/algod/block.d.ts +5 -4
- package/dist/types/client/v2/algod/compile.d.ts +7 -9
- package/dist/types/client/v2/algod/disassemble.d.ts +7 -9
- package/dist/types/client/v2/algod/dryrun.d.ts +7 -9
- package/dist/types/client/v2/algod/genesis.d.ts +4 -2
- package/dist/types/client/v2/algod/getApplicationBoxByName.d.ts +6 -7
- package/dist/types/client/v2/algod/getApplicationBoxes.d.ts +6 -7
- package/dist/types/client/v2/algod/getApplicationByID.d.ts +6 -5
- package/dist/types/client/v2/algod/getAssetByID.d.ts +6 -5
- package/dist/types/client/v2/algod/getBlockHash.d.ts +7 -6
- package/dist/types/client/v2/algod/getBlockOffsetTimestamp.d.ts +5 -4
- package/dist/types/client/v2/algod/getBlockTxids.d.ts +6 -5
- package/dist/types/client/v2/algod/getLedgerStateDelta.d.ts +6 -5
- package/dist/types/client/v2/algod/getLedgerStateDeltaForTransactionGroup.d.ts +6 -5
- package/dist/types/client/v2/algod/getSyncRound.d.ts +5 -4
- package/dist/types/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.d.ts +6 -7
- package/dist/types/client/v2/algod/getTransactionProof.d.ts +6 -5
- package/dist/types/client/v2/algod/healthCheck.d.ts +4 -3
- package/dist/types/client/v2/algod/index.d.ts +2 -0
- package/dist/types/client/v2/algod/lightBlockHeaderProof.d.ts +6 -5
- package/dist/types/client/v2/algod/models/types.d.ts +604 -317
- package/dist/types/client/v2/algod/pendingTransactionInformation.d.ts +5 -4
- package/dist/types/client/v2/algod/pendingTransactions.d.ts +5 -4
- package/dist/types/client/v2/algod/pendingTransactionsByAddress.d.ts +7 -5
- package/dist/types/client/v2/algod/ready.d.ts +4 -2
- package/dist/types/client/v2/algod/sendRawTransaction.d.ts +7 -5
- package/dist/types/client/v2/algod/setBlockOffsetTimestamp.d.ts +6 -6
- package/dist/types/client/v2/algod/setSyncRound.d.ts +6 -6
- package/dist/types/client/v2/algod/simulateTransaction.d.ts +7 -7
- package/dist/types/client/v2/algod/stateproof.d.ts +6 -5
- package/dist/types/client/v2/algod/status.d.ts +5 -2
- package/dist/types/client/v2/algod/statusAfterBlock.d.ts +6 -5
- package/dist/types/client/v2/algod/suggestedParams.d.ts +25 -4
- package/dist/types/client/v2/algod/supply.d.ts +5 -2
- package/dist/types/client/v2/algod/unsetSyncRound.d.ts +5 -3
- package/dist/types/client/v2/algod/versions.d.ts +5 -2
- package/dist/types/client/v2/indexer/index.d.ts +2 -0
- package/dist/types/client/v2/indexer/indexer.d.ts +31 -30
- package/dist/types/client/v2/indexer/lookupAccountAppLocalStates.d.ts +7 -5
- package/dist/types/client/v2/indexer/lookupAccountAssets.d.ts +7 -5
- package/dist/types/client/v2/indexer/lookupAccountByID.d.ts +7 -5
- package/dist/types/client/v2/indexer/lookupAccountCreatedApplications.d.ts +7 -5
- package/dist/types/client/v2/indexer/lookupAccountCreatedAssets.d.ts +7 -5
- package/dist/types/client/v2/indexer/lookupAccountTransactions.d.ts +11 -9
- package/dist/types/client/v2/indexer/lookupApplicationBoxByIDandName.d.ts +6 -7
- package/dist/types/client/v2/indexer/lookupApplicationLogs.d.ts +6 -5
- package/dist/types/client/v2/indexer/lookupApplications.d.ts +6 -5
- package/dist/types/client/v2/indexer/lookupAssetBalances.d.ts +6 -5
- package/dist/types/client/v2/indexer/lookupAssetByID.d.ts +6 -5
- package/dist/types/client/v2/indexer/lookupAssetTransactions.d.ts +12 -10
- package/dist/types/client/v2/indexer/lookupBlock.d.ts +6 -5
- package/dist/types/client/v2/indexer/lookupTransactionByID.d.ts +6 -5
- package/dist/types/client/v2/indexer/makeHealthCheck.d.ts +5 -2
- package/dist/types/client/v2/indexer/models/types.d.ts +513 -267
- package/dist/types/client/v2/indexer/searchAccounts.d.ts +7 -3
- package/dist/types/client/v2/indexer/searchForApplicationBoxes.d.ts +6 -7
- package/dist/types/client/v2/indexer/searchForApplications.d.ts +7 -3
- package/dist/types/client/v2/indexer/searchForAssets.d.ts +7 -3
- package/dist/types/client/v2/indexer/searchForTransactions.d.ts +11 -7
- package/dist/types/client/v2/jsonrequest.d.ts +20 -33
- package/dist/types/client/v2/serviceClient.d.ts +4 -18
- package/dist/types/client/v2/untypedmodel.d.ts +10 -0
- package/dist/types/composer.d.ts +18 -17
- package/dist/types/dryrun.d.ts +8 -80
- package/dist/types/encoding/address.d.ts +40 -31
- package/dist/types/encoding/binarydata.d.ts +30 -0
- package/dist/types/encoding/encoding.d.ts +219 -7
- package/dist/types/encoding/schema/address.d.ts +10 -0
- package/dist/types/encoding/schema/array.d.ts +11 -0
- package/dist/types/encoding/schema/binarystring.d.ts +18 -0
- package/dist/types/encoding/schema/blockhash.d.ts +16 -0
- package/dist/types/encoding/schema/boolean.d.ts +10 -0
- package/dist/types/encoding/schema/bytearray.d.ts +19 -0
- package/dist/types/encoding/schema/index.d.ts +11 -0
- package/dist/types/encoding/schema/map.d.ts +125 -0
- package/dist/types/encoding/schema/optional.d.ts +24 -0
- package/dist/types/encoding/schema/string.d.ts +9 -0
- package/dist/types/encoding/schema/uint64.d.ts +9 -0
- package/dist/types/encoding/schema/untyped.d.ts +9 -0
- package/dist/types/encoding/uint64.d.ts +1 -0
- package/dist/types/group.d.ts +6 -25
- package/dist/types/index.d.ts +2 -2
- package/dist/types/logic/sourcemap.d.ts +39 -13
- package/dist/types/logicsig.d.ts +27 -57
- package/dist/types/main.d.ts +43 -54
- package/dist/types/makeTxn.d.ts +117 -404
- package/dist/types/mnemonic/mnemonic.d.ts +1 -1
- package/dist/types/multisig.d.ts +28 -99
- package/dist/types/multisigSigning.d.ts +72 -0
- package/dist/types/signedTransaction.d.ts +55 -0
- package/dist/types/signer.d.ts +5 -5
- package/dist/types/signing.d.ts +29 -0
- package/dist/types/stateproof.d.ts +194 -0
- package/dist/types/transaction.d.ts +103 -182
- package/dist/types/types/account.d.ts +2 -1
- package/dist/types/types/block.d.ts +407 -0
- package/dist/types/types/intDecoding.d.ts +1 -1
- package/dist/types/types/statedelta.d.ts +575 -0
- package/dist/types/types/transactions/base.d.ts +206 -118
- package/dist/types/types/transactions/encoded.d.ts +7 -301
- package/dist/types/types/transactions/index.d.ts +2 -15
- package/dist/types/types/utils.d.ts +7 -7
- package/dist/types/utils/utils.d.ts +21 -16
- package/dist/types/wait.d.ts +3 -2
- package/package.json +48 -20
- package/src/abi/abi_type.ts +28 -18
- package/src/abi/contract.ts +2 -2
- package/src/abi/index.ts +6 -6
- package/src/abi/interface.ts +1 -1
- package/src/abi/method.ts +11 -9
- package/src/abi/transaction.ts +2 -2
- package/src/account.ts +5 -5
- package/src/boxStorage.ts +25 -23
- package/src/client/baseHTTPClient.ts +12 -6
- package/src/client/client.ts +147 -75
- package/src/client/index.ts +6 -0
- package/src/client/kmd.ts +79 -72
- package/src/client/urlTokenBaseHTTPClient.ts +25 -14
- package/src/client/v2/algod/accountApplicationInformation.ts +16 -9
- package/src/client/v2/algod/accountAssetInformation.ts +16 -9
- package/src/client/v2/algod/accountInformation.ts +16 -11
- package/src/client/v2/algod/algod.ts +83 -105
- package/src/client/v2/algod/block.ts +7 -11
- package/src/client/v2/algod/compile.ts +27 -19
- package/src/client/v2/algod/disassemble.ts +27 -19
- package/src/client/v2/algod/dryrun.ts +23 -19
- package/src/client/v2/algod/genesis.ts +8 -2
- package/src/client/v2/algod/getApplicationBoxByName.ts +10 -15
- package/src/client/v2/algod/getApplicationBoxes.ts +12 -13
- package/src/client/v2/algod/getApplicationByID.ts +15 -7
- package/src/client/v2/algod/getAssetByID.ts +15 -7
- package/src/client/v2/algod/getBlockHash.ts +13 -9
- package/src/client/v2/algod/getBlockOffsetTimestamp.ts +7 -8
- package/src/client/v2/algod/getBlockTxids.ts +12 -6
- package/src/client/v2/algod/getLedgerStateDelta.ts +16 -8
- package/src/client/v2/algod/getLedgerStateDeltaForTransactionGroup.ts +16 -8
- package/src/client/v2/algod/getSyncRound.ts +7 -8
- package/src/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.ts +15 -15
- package/src/client/v2/algod/getTransactionProof.ts +11 -9
- package/src/client/v2/algod/healthCheck.ts +5 -9
- package/src/client/v2/algod/index.ts +3 -0
- package/src/client/v2/algod/lightBlockHeaderProof.ts +15 -8
- package/src/client/v2/algod/models/types.ts +4699 -2263
- package/src/client/v2/algod/pendingTransactionInformation.ts +11 -11
- package/src/client/v2/algod/pendingTransactions.ts +7 -9
- package/src/client/v2/algod/pendingTransactionsByAddress.ts +12 -11
- package/src/client/v2/algod/ready.ts +6 -2
- package/src/client/v2/algod/sendRawTransaction.ts +24 -13
- package/src/client/v2/algod/setBlockOffsetTimestamp.ts +21 -11
- package/src/client/v2/algod/setSyncRound.ts +21 -11
- package/src/client/v2/algod/simulateTransaction.ts +22 -23
- package/src/client/v2/algod/stateproof.ts +15 -8
- package/src/client/v2/algod/status.ts +10 -2
- package/src/client/v2/algod/statusAfterBlock.ts +15 -7
- package/src/client/v2/algod/suggestedParams.ts +40 -10
- package/src/client/v2/algod/supply.ts +10 -2
- package/src/client/v2/algod/unsetSyncRound.ts +16 -5
- package/src/client/v2/algod/versions.ts +10 -2
- package/src/client/v2/indexer/index.ts +3 -0
- package/src/client/v2/indexer/indexer.ts +51 -59
- package/src/client/v2/indexer/lookupAccountAppLocalStates.ts +16 -11
- package/src/client/v2/indexer/lookupAccountAssets.ts +16 -11
- package/src/client/v2/indexer/lookupAccountByID.ts +16 -11
- package/src/client/v2/indexer/lookupAccountCreatedApplications.ts +16 -11
- package/src/client/v2/indexer/lookupAccountCreatedAssets.ts +16 -11
- package/src/client/v2/indexer/lookupAccountTransactions.ts +26 -19
- package/src/client/v2/indexer/lookupApplicationBoxByIDandName.ts +10 -15
- package/src/client/v2/indexer/lookupApplicationLogs.ts +15 -7
- package/src/client/v2/indexer/lookupApplications.ts +15 -7
- package/src/client/v2/indexer/lookupAssetBalances.ts +15 -7
- package/src/client/v2/indexer/lookupAssetByID.ts +15 -7
- package/src/client/v2/indexer/lookupAssetTransactions.ts +27 -16
- package/src/client/v2/indexer/lookupBlock.ts +15 -7
- package/src/client/v2/indexer/lookupTransactionByID.ts +15 -7
- package/src/client/v2/indexer/makeHealthCheck.ts +10 -2
- package/src/client/v2/indexer/models/types.ts +4454 -1988
- package/src/client/v2/indexer/searchAccounts.ts +13 -4
- package/src/client/v2/indexer/searchForApplicationBoxes.ts +12 -13
- package/src/client/v2/indexer/searchForApplications.ts +13 -4
- package/src/client/v2/indexer/searchForAssets.ts +13 -4
- package/src/client/v2/indexer/searchForTransactions.ts +22 -11
- package/src/client/v2/jsonrequest.ts +39 -57
- package/src/client/v2/serviceClient.ts +9 -31
- package/src/client/v2/untypedmodel.ts +25 -0
- package/src/composer.ts +83 -60
- package/src/dryrun.ts +129 -306
- package/src/encoding/address.ts +134 -146
- package/src/encoding/bigint.ts +2 -4
- package/src/encoding/binarydata.ts +80 -0
- package/src/encoding/encoding.ts +558 -13
- package/src/encoding/schema/address.ts +53 -0
- package/src/encoding/schema/array.ts +66 -0
- package/src/encoding/schema/binarystring.ts +73 -0
- package/src/encoding/schema/blockhash.ts +84 -0
- package/src/encoding/schema/boolean.ts +54 -0
- package/src/encoding/schema/bytearray.ts +127 -0
- package/src/encoding/schema/index.ts +26 -0
- package/src/encoding/schema/map.ts +713 -0
- package/src/encoding/schema/optional.ts +72 -0
- package/src/encoding/schema/string.ts +55 -0
- package/src/encoding/schema/uint64.ts +46 -0
- package/src/encoding/schema/untyped.ts +47 -0
- package/src/encoding/uint64.ts +2 -1
- package/src/group.ts +27 -75
- package/src/index.ts +2 -2
- package/src/logic/sourcemap.ts +94 -29
- package/src/logicsig.ts +154 -202
- package/src/main.ts +91 -94
- package/src/makeTxn.ts +660 -1338
- package/src/mnemonic/mnemonic.ts +14 -14
- package/src/multisig.ts +89 -403
- package/src/multisigSigning.ts +359 -0
- package/src/nacl/naclWrappers.ts +1 -1
- package/src/signedTransaction.ts +163 -0
- package/src/signer.ts +10 -5
- package/src/signing.ts +95 -0
- package/src/stateproof.ts +595 -0
- package/src/transaction.ts +986 -1242
- package/src/types/account.ts +3 -1
- package/src/types/block.ts +1278 -0
- package/src/types/intDecoding.ts +1 -1
- package/src/types/statedelta.ts +1717 -0
- package/src/types/transactions/base.ts +230 -122
- package/src/types/transactions/encoded.ts +81 -371
- package/src/types/transactions/index.ts +2 -72
- package/src/types/utils.ts +3 -3
- package/src/utils/utils.ts +96 -25
- package/src/wait.ts +8 -7
- package/dist/cjs/bid.js +0 -83
- package/dist/cjs/bid.js.map +0 -1
- package/dist/cjs/client/v2/basemodel.js +0 -67
- package/dist/cjs/client/v2/basemodel.js.map +0 -1
- package/dist/cjs/types/address.js +0 -3
- package/dist/cjs/types/address.js.map +0 -1
- package/dist/cjs/types/blockHeader.js +0 -3
- package/dist/cjs/types/blockHeader.js.map +0 -1
- package/dist/cjs/types/index.js.map +0 -1
- package/dist/cjs/types/multisig.js +0 -3
- package/dist/cjs/types/multisig.js.map +0 -1
- package/dist/cjs/types/transactions/application.js +0 -3
- package/dist/cjs/types/transactions/application.js.map +0 -1
- package/dist/cjs/types/transactions/asset.js +0 -3
- package/dist/cjs/types/transactions/asset.js.map +0 -1
- package/dist/cjs/types/transactions/builder.js +0 -3
- package/dist/cjs/types/transactions/builder.js.map +0 -1
- package/dist/cjs/types/transactions/keyreg.js +0 -3
- package/dist/cjs/types/transactions/keyreg.js.map +0 -1
- package/dist/cjs/types/transactions/payment.js +0 -3
- package/dist/cjs/types/transactions/payment.js.map +0 -1
- package/dist/cjs/types/transactions/stateproof.js +0 -3
- package/dist/cjs/types/transactions/stateproof.js.map +0 -1
- package/dist/esm/bid.js +0 -57
- package/dist/esm/bid.js.map +0 -1
- package/dist/esm/client/v2/basemodel.js +0 -64
- package/dist/esm/client/v2/basemodel.js.map +0 -1
- package/dist/esm/types/address.js +0 -2
- package/dist/esm/types/address.js.map +0 -1
- package/dist/esm/types/blockHeader.js +0 -2
- package/dist/esm/types/blockHeader.js.map +0 -1
- package/dist/esm/types/index.js +0 -4
- package/dist/esm/types/index.js.map +0 -1
- package/dist/esm/types/multisig.js +0 -2
- package/dist/esm/types/multisig.js.map +0 -1
- package/dist/esm/types/transactions/application.js +0 -2
- package/dist/esm/types/transactions/application.js.map +0 -1
- package/dist/esm/types/transactions/asset.js +0 -2
- package/dist/esm/types/transactions/asset.js.map +0 -1
- package/dist/esm/types/transactions/builder.js +0 -2
- package/dist/esm/types/transactions/builder.js.map +0 -1
- package/dist/esm/types/transactions/keyreg.js +0 -2
- package/dist/esm/types/transactions/keyreg.js.map +0 -1
- package/dist/esm/types/transactions/payment.js +0 -2
- package/dist/esm/types/transactions/payment.js.map +0 -1
- package/dist/esm/types/transactions/stateproof.js +0 -2
- package/dist/esm/types/transactions/stateproof.js.map +0 -1
- package/dist/types/bid.d.ts +0 -38
- package/dist/types/client/v2/basemodel.d.ts +0 -11
- package/dist/types/types/address.d.ts +0 -7
- package/dist/types/types/blockHeader.d.ts +0 -67
- package/dist/types/types/index.d.ts +0 -3
- package/dist/types/types/multisig.d.ts +0 -20
- package/dist/types/types/transactions/application.d.ts +0 -22
- package/dist/types/types/transactions/asset.d.ts +0 -28
- package/dist/types/types/transactions/builder.d.ts +0 -36
- package/dist/types/types/transactions/keyreg.d.ts +0 -8
- package/dist/types/types/transactions/payment.d.ts +0 -8
- package/dist/types/types/transactions/stateproof.d.ts +0 -8
- package/src/bid.ts +0 -96
- package/src/client/v2/basemodel.ts +0 -81
- package/src/types/address.ts +0 -7
- package/src/types/blockHeader.ts +0 -81
- package/src/types/index.ts +0 -3
- package/src/types/multisig.ts +0 -22
- package/src/types/transactions/application.ts +0 -111
- package/src/types/transactions/asset.ts +0 -108
- package/src/types/transactions/builder.ts +0 -69
- package/src/types/transactions/keyreg.ts +0 -23
- package/src/types/transactions/payment.ts +0 -14
- package/src/types/transactions/stateproof.ts +0 -17
package/src/mnemonic/mnemonic.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
/* eslint-disable no-bitwise */
|
|
2
|
-
import english from './wordlists/english';
|
|
3
|
-
import * as nacl from '../nacl/naclWrappers';
|
|
4
|
-
import
|
|
5
|
-
import Account from '../types/account';
|
|
2
|
+
import english from './wordlists/english.js';
|
|
3
|
+
import * as nacl from '../nacl/naclWrappers.js';
|
|
4
|
+
import { Address } from '../encoding/address.js';
|
|
5
|
+
import Account from '../types/account.js';
|
|
6
6
|
|
|
7
7
|
export const FAIL_TO_DECODE_MNEMONIC_ERROR_MSG = 'failed to decode mnemonic';
|
|
8
8
|
export const NOT_IN_WORDS_LIST_ERROR_MSG =
|
|
9
9
|
'the mnemonic contains a word that is not in the wordlist';
|
|
10
10
|
|
|
11
11
|
// https://stackoverflow.com/a/51452614
|
|
12
|
-
function toUint11Array(buffer8: Uint8Array | number[]) {
|
|
13
|
-
const buffer11 = [];
|
|
12
|
+
function toUint11Array(buffer8: Uint8Array | number[]): number[] {
|
|
13
|
+
const buffer11: number[] = [];
|
|
14
14
|
let acc = 0;
|
|
15
15
|
let accBits = 0;
|
|
16
|
-
function add(octet) {
|
|
16
|
+
function add(octet: number) {
|
|
17
17
|
acc |= octet << accBits;
|
|
18
18
|
accBits += 8;
|
|
19
19
|
if (accBits >= 11) {
|
|
@@ -33,11 +33,11 @@ function toUint11Array(buffer8: Uint8Array | number[]) {
|
|
|
33
33
|
return buffer11;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
function applyWords(nums: number[]) {
|
|
36
|
+
function applyWords(nums: number[]): string[] {
|
|
37
37
|
return nums.map((n) => english[n]);
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
function computeChecksum(seed: Uint8Array) {
|
|
40
|
+
function computeChecksum(seed: Uint8Array): string {
|
|
41
41
|
const hashBuffer = nacl.genericHash(seed);
|
|
42
42
|
const uint11Hash = toUint11Array(hashBuffer);
|
|
43
43
|
const words = applyWords(uint11Hash);
|
|
@@ -66,11 +66,11 @@ export function mnemonicFromSeed(seed: Uint8Array) {
|
|
|
66
66
|
|
|
67
67
|
// from Uint11Array
|
|
68
68
|
// https://stackoverflow.com/a/51452614
|
|
69
|
-
function toUint8Array(buffer11: number[]) {
|
|
70
|
-
const buffer8 = [];
|
|
69
|
+
function toUint8Array(buffer11: number[]): Uint8Array {
|
|
70
|
+
const buffer8: number[] = [];
|
|
71
71
|
let acc = 0;
|
|
72
72
|
let accBits = 0;
|
|
73
|
-
function add(ui11) {
|
|
73
|
+
function add(ui11: number) {
|
|
74
74
|
acc |= ui11 << accBits;
|
|
75
75
|
accBits += 11;
|
|
76
76
|
while (accBits >= 8) {
|
|
@@ -146,8 +146,8 @@ export function seedFromMnemonic(mnemonic: string) {
|
|
|
146
146
|
export function mnemonicToSecretKey(mn: string): Account {
|
|
147
147
|
const seed = seedFromMnemonic(mn);
|
|
148
148
|
const keys = nacl.keyPairFromSeed(seed);
|
|
149
|
-
const
|
|
150
|
-
return { addr
|
|
149
|
+
const addr = new Address(keys.publicKey);
|
|
150
|
+
return { addr, sk: keys.secretKey };
|
|
151
151
|
}
|
|
152
152
|
|
|
153
153
|
/**
|
package/src/multisig.ts
CHANGED
|
@@ -1,317 +1,119 @@
|
|
|
1
|
-
import
|
|
2
|
-
import * as nacl from './nacl/naclWrappers';
|
|
3
|
-
import * as address from './encoding/address';
|
|
4
|
-
import * as encoding from './encoding/encoding';
|
|
5
|
-
import * as txnBuilder from './transaction';
|
|
6
|
-
import * as utils from './utils/utils';
|
|
7
|
-
import AnyTransaction, { EncodedTransaction } from './types/transactions';
|
|
8
|
-
import { MultisigMetadata } from './types/multisig';
|
|
1
|
+
import * as nacl from './nacl/naclWrappers.js';
|
|
9
2
|
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
3
|
+
Address,
|
|
4
|
+
ALGORAND_ADDRESS_BYTE_LENGTH,
|
|
5
|
+
ALGORAND_CHECKSUM_BYTE_LENGTH,
|
|
6
|
+
} from './encoding/address.js';
|
|
7
|
+
import * as utils from './utils/utils.js';
|
|
8
|
+
import { EncodedMultisig } from './types/transactions/encoded.js';
|
|
13
9
|
|
|
14
10
|
/**
|
|
15
11
|
Utilities for manipulating multisig transaction blobs.
|
|
16
12
|
*/
|
|
17
13
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
const MULTISIG_KEY_NOT_EXIST_ERROR_MSG = 'Key does not exist';
|
|
29
|
-
export const MULTISIG_NO_MUTATE_ERROR_MSG =
|
|
30
|
-
'Cannot mutate a multisig field as it would invalidate all existing signatures.';
|
|
31
|
-
export const MULTISIG_USE_PARTIAL_SIGN_ERROR_MSG =
|
|
32
|
-
'Cannot sign a multisig transaction using `signTxn`. Use `partialSignTxn` instead.';
|
|
33
|
-
export const MULTISIG_SIGNATURE_LENGTH_ERROR_MSG =
|
|
34
|
-
'Cannot add multisig signature. Signature is not of the correct length.';
|
|
14
|
+
/**
|
|
15
|
+
* Required options for creating a multisignature
|
|
16
|
+
*
|
|
17
|
+
* Documentation available at: https://developer.algorand.org/docs/get-details/transactions/signatures/#multisignatures
|
|
18
|
+
*/
|
|
19
|
+
export interface MultisigMetadata {
|
|
20
|
+
/**
|
|
21
|
+
* Multisig version
|
|
22
|
+
*/
|
|
23
|
+
version: number;
|
|
35
24
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
25
|
+
/**
|
|
26
|
+
* Multisig threshold value. Authorization requires a subset of signatures,
|
|
27
|
+
* equal to or greater than the threshold value.
|
|
28
|
+
*/
|
|
29
|
+
threshold: number;
|
|
40
30
|
|
|
41
|
-
|
|
42
|
-
|
|
31
|
+
/**
|
|
32
|
+
* A list of Algorand addresses representing possible signers for this multisig. Order is important.
|
|
33
|
+
*/
|
|
34
|
+
addrs: Array<string | Address>;
|
|
43
35
|
}
|
|
44
36
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
* @param threshold - multisig threshold
|
|
50
|
-
* @param pks - ordered list of public keys in this multisig
|
|
51
|
-
* @returns encoded multisig blob
|
|
52
|
-
*/
|
|
53
|
-
export function createMultisigTransaction(
|
|
54
|
-
txn: txnBuilder.Transaction,
|
|
55
|
-
{ version, threshold, addrs }: MultisigMetadata
|
|
56
|
-
) {
|
|
57
|
-
// construct the appendable multisigned transaction format
|
|
58
|
-
const pks = addrs.map((addr) => address.decodeAddress(addr).publicKey);
|
|
59
|
-
const subsigs = pks.map((pk) => ({ pk: Buffer.from(pk) }));
|
|
37
|
+
// Convert "MultisigAddr" UTF-8 to byte array
|
|
38
|
+
const MULTISIG_PREIMG2ADDR_PREFIX = new Uint8Array([
|
|
39
|
+
77, 117, 108, 116, 105, 115, 105, 103, 65, 100, 100, 114,
|
|
40
|
+
]);
|
|
60
41
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
};
|
|
66
|
-
const txnForEncoding = txn.get_obj_for_encoding();
|
|
67
|
-
const signedTxn: EncodedSignedTransaction = {
|
|
68
|
-
msig,
|
|
69
|
-
txn: txnForEncoding,
|
|
70
|
-
};
|
|
42
|
+
const INVALID_MSIG_VERSION_ERROR_MSG = 'invalid multisig version';
|
|
43
|
+
const INVALID_MSIG_THRESHOLD_ERROR_MSG = 'bad multisig threshold';
|
|
44
|
+
const INVALID_MSIG_PK_ERROR_MSG = 'bad multisig public key - wrong length';
|
|
45
|
+
const UNEXPECTED_PK_LEN_ERROR_MSG = 'nacl public key length is not 32 bytes';
|
|
71
46
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
47
|
+
export function pksFromAddresses(addrs: Array<string | Address>): Uint8Array[] {
|
|
48
|
+
return addrs.map((addr) => {
|
|
49
|
+
if (typeof addr === 'string') {
|
|
50
|
+
return Address.fromString(addr).publicKey;
|
|
51
|
+
}
|
|
52
|
+
return addr.publicKey;
|
|
78
53
|
});
|
|
79
|
-
if (
|
|
80
|
-
address.encodeAddress(txnForEncoding.snd) !==
|
|
81
|
-
address.encodeAddress(msigAddr)
|
|
82
|
-
) {
|
|
83
|
-
signedTxn.sgnr = Buffer.from(msigAddr);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
return new Uint8Array(encoding.encode(signedTxn));
|
|
87
54
|
}
|
|
88
55
|
|
|
89
56
|
/**
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
57
|
+
* fromMultisigPreImg takes multisig parameters and returns a 32 byte typed array public key,
|
|
58
|
+
* representing an address that identifies the "exact group, version, and public keys" that are required for signing.
|
|
59
|
+
* Hash("MultisigAddr" || version uint8 || threshold uint8 || PK1 || PK2 || ...)
|
|
60
|
+
* Encoding this output yields a human readable address.
|
|
94
61
|
* @param version - multisig version
|
|
95
62
|
* @param threshold - multisig threshold
|
|
96
|
-
* @param pks -
|
|
97
|
-
* @returns encoded multisig blob
|
|
63
|
+
* @param pks - array of typed array public keys
|
|
98
64
|
*/
|
|
99
|
-
function
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
});
|
|
110
|
-
// note: this is not signed yet, but will be shortly
|
|
111
|
-
const signedTxn = encoding.decode(encodedMsig) as EncodedSignedTransaction;
|
|
112
|
-
|
|
113
|
-
let keyExist = false;
|
|
114
|
-
// append the multisig signature to the corresponding public key in the multisig blob
|
|
115
|
-
signedTxn.msig.subsig.forEach((subsig, i) => {
|
|
116
|
-
if (nacl.bytesEqual(subsig.pk, myPk)) {
|
|
117
|
-
keyExist = true;
|
|
118
|
-
signedTxn.msig.subsig[i].s = rawSig;
|
|
119
|
-
}
|
|
120
|
-
});
|
|
121
|
-
if (keyExist === false) {
|
|
122
|
-
throw new Error(MULTISIG_KEY_NOT_EXIST_ERROR_MSG);
|
|
65
|
+
export function addressFromMultisigPreImg({
|
|
66
|
+
version,
|
|
67
|
+
threshold,
|
|
68
|
+
pks,
|
|
69
|
+
}: Omit<MultisigMetadata, 'addrs'> & {
|
|
70
|
+
pks: Uint8Array[];
|
|
71
|
+
}): Address {
|
|
72
|
+
if (version !== 1 || version > 255 || version < 0) {
|
|
73
|
+
// ^ a tad redundant, but in case in the future version != 1, still check for uint8
|
|
74
|
+
throw new Error(INVALID_MSIG_VERSION_ERROR_MSG);
|
|
123
75
|
}
|
|
124
|
-
|
|
125
|
-
// if the address of this multisig is different from the transaction sender,
|
|
126
|
-
// we need to add the auth-addr field
|
|
127
|
-
const msigAddr = address.fromMultisigPreImg({
|
|
128
|
-
version,
|
|
129
|
-
threshold,
|
|
130
|
-
pks,
|
|
131
|
-
});
|
|
132
76
|
if (
|
|
133
|
-
|
|
77
|
+
threshold === 0 ||
|
|
78
|
+
pks.length === 0 ||
|
|
79
|
+
threshold > pks.length ||
|
|
80
|
+
threshold > 255
|
|
134
81
|
) {
|
|
135
|
-
|
|
82
|
+
throw new Error(INVALID_MSIG_THRESHOLD_ERROR_MSG);
|
|
136
83
|
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* MultisigTransaction is a Transaction that also supports creating partially-signed multisig transactions.
|
|
143
|
-
*/
|
|
144
|
-
export class MultisigTransaction extends txnBuilder.Transaction {
|
|
145
|
-
/* eslint-disable class-methods-use-this,@typescript-eslint/no-unused-vars,no-dupe-class-members */
|
|
146
|
-
/**
|
|
147
|
-
* Override inherited method to throw an error, as mutating transactions are prohibited in this context
|
|
148
|
-
*/
|
|
149
|
-
addLease() {
|
|
150
|
-
throw new Error(MULTISIG_NO_MUTATE_ERROR_MSG);
|
|
84
|
+
const pkLen = ALGORAND_ADDRESS_BYTE_LENGTH - ALGORAND_CHECKSUM_BYTE_LENGTH;
|
|
85
|
+
if (pkLen !== nacl.PUBLIC_KEY_LENGTH) {
|
|
86
|
+
throw new Error(UNEXPECTED_PK_LEN_ERROR_MSG);
|
|
151
87
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
* Override inherited method to throw an error, as traditional signing is not allowed
|
|
162
|
-
*/
|
|
163
|
-
signTxn(sk: Uint8Array): Uint8Array; // This overload ensures that the override has a compatible type definition with the parent method
|
|
164
|
-
signTxn(sk: any): any {
|
|
165
|
-
throw new Error(MULTISIG_USE_PARTIAL_SIGN_ERROR_MSG);
|
|
166
|
-
}
|
|
167
|
-
/* eslint-enable class-methods-use-this,@typescript-eslint/no-unused-vars,no-dupe-class-members */
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* partialSignTxn partially signs this transaction and returns a partially-signed multisig transaction,
|
|
171
|
-
* encoded with msgpack as a typed array.
|
|
172
|
-
* @param version - multisig version
|
|
173
|
-
* @param threshold - multisig threshold
|
|
174
|
-
* @param pks - multisig public key list, order is important.
|
|
175
|
-
* @param sk - an Algorand secret key to sign with.
|
|
176
|
-
* @returns an encoded, partially signed multisig transaction.
|
|
177
|
-
*/
|
|
178
|
-
partialSignTxn(
|
|
179
|
-
{ version, threshold, pks }: MultisigMetadataWithPks,
|
|
180
|
-
sk: Uint8Array
|
|
181
|
-
) {
|
|
182
|
-
// get signature verifier
|
|
183
|
-
const myPk = nacl.keyPairFromSecretKey(sk).publicKey;
|
|
184
|
-
return createMultisigTransactionWithSignature(
|
|
185
|
-
this,
|
|
186
|
-
{ rawSig: this.rawSignTxn(sk), myPk },
|
|
187
|
-
{ version, threshold, pks }
|
|
188
|
-
);
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
/**
|
|
192
|
-
* partialSignWithMultisigSignature partially signs this transaction with an external raw multisig signature and returns
|
|
193
|
-
* a partially-signed multisig transaction, encoded with msgpack as a typed array.
|
|
194
|
-
* @param metadata - multisig metadata
|
|
195
|
-
* @param signerAddr - address of the signer
|
|
196
|
-
* @param signature - raw multisig signature
|
|
197
|
-
* @returns an encoded, partially signed multisig transaction.
|
|
198
|
-
*/
|
|
199
|
-
partialSignWithMultisigSignature(
|
|
200
|
-
metadata: MultisigMetadataWithPks,
|
|
201
|
-
signerAddr: string,
|
|
202
|
-
signature: Uint8Array
|
|
203
|
-
) {
|
|
204
|
-
if (!nacl.isValidSignatureLength(signature.length)) {
|
|
205
|
-
throw new Error(MULTISIG_SIGNATURE_LENGTH_ERROR_MSG);
|
|
88
|
+
const merged = new Uint8Array(
|
|
89
|
+
MULTISIG_PREIMG2ADDR_PREFIX.length + 2 + pkLen * pks.length
|
|
90
|
+
);
|
|
91
|
+
merged.set(MULTISIG_PREIMG2ADDR_PREFIX, 0);
|
|
92
|
+
merged.set([version], MULTISIG_PREIMG2ADDR_PREFIX.length);
|
|
93
|
+
merged.set([threshold], MULTISIG_PREIMG2ADDR_PREFIX.length + 1);
|
|
94
|
+
for (let i = 0; i < pks.length; i++) {
|
|
95
|
+
if (pks[i].length !== pkLen) {
|
|
96
|
+
throw new Error(INVALID_MSIG_PK_ERROR_MSG);
|
|
206
97
|
}
|
|
207
|
-
|
|
208
|
-
this,
|
|
209
|
-
{
|
|
210
|
-
rawSig: signature,
|
|
211
|
-
myPk: address.decodeAddress(signerAddr).publicKey,
|
|
212
|
-
},
|
|
213
|
-
metadata
|
|
214
|
-
);
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
// eslint-disable-next-line camelcase
|
|
218
|
-
static from_obj_for_encoding(
|
|
219
|
-
txnForEnc: EncodedTransaction
|
|
220
|
-
): MultisigTransaction {
|
|
221
|
-
return super.from_obj_for_encoding(txnForEnc) as MultisigTransaction;
|
|
98
|
+
merged.set(pks[i], MULTISIG_PREIMG2ADDR_PREFIX.length + 2 + i * pkLen);
|
|
222
99
|
}
|
|
100
|
+
return new Address(Uint8Array.from(nacl.genericHash(merged)));
|
|
223
101
|
}
|
|
224
102
|
|
|
225
103
|
/**
|
|
226
|
-
*
|
|
227
|
-
*
|
|
228
|
-
* @
|
|
104
|
+
* fromMultisigPreImgAddrs takes multisig parameters and returns a human readable Algorand address.
|
|
105
|
+
* This is equivalent to fromMultisigPreImg, but interfaces with encoded addresses.
|
|
106
|
+
* @param version - multisig version
|
|
107
|
+
* @param threshold - multisig threshold
|
|
108
|
+
* @param addrs - array of encoded addresses
|
|
229
109
|
*/
|
|
230
|
-
export function
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
const refTxID = MultisigTransaction.from_obj_for_encoding(
|
|
238
|
-
refSigTx.txn
|
|
239
|
-
).txID();
|
|
240
|
-
const refAuthAddr = refSigTx.sgnr
|
|
241
|
-
? address.encodeAddress(refSigTx.sgnr)
|
|
242
|
-
: undefined;
|
|
243
|
-
const refPreImage = {
|
|
244
|
-
version: refSigTx.msig.v,
|
|
245
|
-
threshold: refSigTx.msig.thr,
|
|
246
|
-
pks: refSigTx.msig.subsig.map((subsig) => subsig.pk),
|
|
247
|
-
};
|
|
248
|
-
const refMsigAddr = address.encodeAddress(
|
|
249
|
-
address.fromMultisigPreImg(refPreImage)
|
|
250
|
-
);
|
|
251
|
-
|
|
252
|
-
const newSubsigs = refSigTx.msig.subsig.map((sig) => ({ ...sig }));
|
|
253
|
-
for (let i = 1; i < multisigTxnBlobs.length; i++) {
|
|
254
|
-
const unisig = encoding.decode(
|
|
255
|
-
multisigTxnBlobs[i]
|
|
256
|
-
) as EncodedSignedTransaction;
|
|
257
|
-
|
|
258
|
-
const unisigAlgoTxn = MultisigTransaction.from_obj_for_encoding(unisig.txn);
|
|
259
|
-
if (unisigAlgoTxn.txID() !== refTxID) {
|
|
260
|
-
throw new Error(MULTISIG_MERGE_MISMATCH_ERROR_MSG);
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
const authAddr = unisig.sgnr
|
|
264
|
-
? address.encodeAddress(unisig.sgnr)
|
|
265
|
-
: undefined;
|
|
266
|
-
if (refAuthAddr !== authAddr) {
|
|
267
|
-
throw new Error(MULTISIG_MERGE_MISMATCH_AUTH_ADDR_MSG);
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
// check multisig has same preimage as reference
|
|
271
|
-
if (unisig.msig.subsig.length !== refSigTx.msig.subsig.length) {
|
|
272
|
-
throw new Error(MULTISIG_MERGE_WRONG_PREIMAGE_ERROR_MSG);
|
|
273
|
-
}
|
|
274
|
-
const preimg: MultisigMetadataWithPks = {
|
|
275
|
-
version: unisig.msig.v,
|
|
276
|
-
threshold: unisig.msig.thr,
|
|
277
|
-
pks: unisig.msig.subsig.map((subsig) => subsig.pk),
|
|
278
|
-
};
|
|
279
|
-
const msgigAddr = address.encodeAddress(address.fromMultisigPreImg(preimg));
|
|
280
|
-
if (refMsigAddr !== msgigAddr) {
|
|
281
|
-
throw new Error(MULTISIG_MERGE_WRONG_PREIMAGE_ERROR_MSG);
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
// now, we can merge
|
|
285
|
-
unisig.msig.subsig.forEach((uniSubsig, index) => {
|
|
286
|
-
if (!uniSubsig.s) return;
|
|
287
|
-
const current = newSubsigs[index];
|
|
288
|
-
// we convert the Uint8Arrays uniSubsig.s and current.s to Buffers here because (as
|
|
289
|
-
// of Dec 2020) React overrides the buffer package with an older version that does
|
|
290
|
-
// not support Uint8Arrays in the comparison function. See this thread for more
|
|
291
|
-
// info: https://github.com/algorand/js-algorand-sdk/issues/252
|
|
292
|
-
if (
|
|
293
|
-
current.s &&
|
|
294
|
-
Buffer.compare(Buffer.from(uniSubsig.s), Buffer.from(current.s)) !== 0
|
|
295
|
-
) {
|
|
296
|
-
// mismatch
|
|
297
|
-
throw new Error(MULTISIG_MERGE_SIG_MISMATCH_ERROR_MSG);
|
|
298
|
-
}
|
|
299
|
-
current.s = uniSubsig.s;
|
|
300
|
-
});
|
|
301
|
-
}
|
|
302
|
-
const msig: EncodedMultisig = {
|
|
303
|
-
v: refSigTx.msig.v,
|
|
304
|
-
thr: refSigTx.msig.thr,
|
|
305
|
-
subsig: newSubsigs,
|
|
306
|
-
};
|
|
307
|
-
const signedTxn: EncodedSignedTransaction = {
|
|
308
|
-
msig,
|
|
309
|
-
txn: refSigTx.txn,
|
|
310
|
-
};
|
|
311
|
-
if (typeof refAuthAddr !== 'undefined') {
|
|
312
|
-
signedTxn.sgnr = Buffer.from(address.decodeAddress(refAuthAddr).publicKey);
|
|
313
|
-
}
|
|
314
|
-
return new Uint8Array(encoding.encode(signedTxn));
|
|
110
|
+
export function addressFromMultisigPreImgAddrs({
|
|
111
|
+
version,
|
|
112
|
+
threshold,
|
|
113
|
+
addrs,
|
|
114
|
+
}: MultisigMetadata): Address {
|
|
115
|
+
const pks = pksFromAddresses(addrs);
|
|
116
|
+
return addressFromMultisigPreImg({ version, threshold, pks });
|
|
315
117
|
}
|
|
316
118
|
|
|
317
119
|
export function verifyMultisig(
|
|
@@ -330,7 +132,7 @@ export function verifyMultisig(
|
|
|
330
132
|
|
|
331
133
|
let pk: Uint8Array;
|
|
332
134
|
try {
|
|
333
|
-
pk =
|
|
135
|
+
pk = addressFromMultisigPreImg({ version, threshold, pks }).publicKey;
|
|
334
136
|
} catch (e) {
|
|
335
137
|
return false;
|
|
336
138
|
}
|
|
@@ -365,122 +167,6 @@ export function verifyMultisig(
|
|
|
365
167
|
return true;
|
|
366
168
|
}
|
|
367
169
|
|
|
368
|
-
/**
|
|
369
|
-
* signMultisigTransaction takes a raw transaction (see signTransaction), a multisig preimage, a secret key, and returns
|
|
370
|
-
* a multisig transaction, which is a blob representing a transaction and multisignature account preimage. The returned
|
|
371
|
-
* multisig txn can accumulate additional signatures through mergeMultisigTransactions or appendSignMultisigTransaction.
|
|
372
|
-
* @param txn - object with either payment or key registration fields
|
|
373
|
-
* @param version - multisig version
|
|
374
|
-
* @param threshold - multisig threshold
|
|
375
|
-
* @param addrs - a list of Algorand addresses representing possible signers for this multisig. Order is important.
|
|
376
|
-
* @param sk - Algorand secret key. The corresponding pk should be in the pre image.
|
|
377
|
-
* @returns object containing txID, and blob of partially signed multisig transaction (with multisig preimage information)
|
|
378
|
-
* If the final calculated fee is lower than the protocol minimum fee, the fee will be increased to match the minimum.
|
|
379
|
-
*/
|
|
380
|
-
export function signMultisigTransaction(
|
|
381
|
-
txn: txnBuilder.TransactionLike,
|
|
382
|
-
{ version, threshold, addrs }: MultisigMetadata,
|
|
383
|
-
sk: Uint8Array
|
|
384
|
-
) {
|
|
385
|
-
// check that the from field matches the mSigPreImage. If from field is not populated, fill it in.
|
|
386
|
-
const expectedFromRaw = address.fromMultisigPreImgAddrs({
|
|
387
|
-
version,
|
|
388
|
-
threshold,
|
|
389
|
-
addrs,
|
|
390
|
-
});
|
|
391
|
-
if (!Object.prototype.hasOwnProperty.call(txn, 'from')) {
|
|
392
|
-
// eslint-disable-next-line no-param-reassign
|
|
393
|
-
txn.from = expectedFromRaw;
|
|
394
|
-
}
|
|
395
|
-
// build pks for partialSign
|
|
396
|
-
const pks = addrs.map((addr) => address.decodeAddress(addr).publicKey);
|
|
397
|
-
// `txn` needs to be handled differently if it's a constructed `Transaction` vs a dict of constructor args
|
|
398
|
-
const txnAlreadyBuilt = txn instanceof txnBuilder.Transaction;
|
|
399
|
-
let algoTxn: MultisigTransaction;
|
|
400
|
-
let blob: Uint8Array;
|
|
401
|
-
if (txnAlreadyBuilt) {
|
|
402
|
-
algoTxn = (txn as unknown) as MultisigTransaction;
|
|
403
|
-
blob = MultisigTransaction.prototype.partialSignTxn.call(
|
|
404
|
-
algoTxn,
|
|
405
|
-
{ version, threshold, pks },
|
|
406
|
-
sk
|
|
407
|
-
);
|
|
408
|
-
} else {
|
|
409
|
-
algoTxn = new MultisigTransaction(txn as AnyTransaction);
|
|
410
|
-
blob = algoTxn.partialSignTxn({ version, threshold, pks }, sk);
|
|
411
|
-
}
|
|
412
|
-
return {
|
|
413
|
-
txID: algoTxn.txID().toString(),
|
|
414
|
-
blob,
|
|
415
|
-
};
|
|
416
|
-
}
|
|
417
|
-
|
|
418
|
-
/**
|
|
419
|
-
* appendSignMultisigTransaction takes a multisig transaction blob, and appends our signature to it.
|
|
420
|
-
* While we could derive public key preimagery from the partially-signed multisig transaction,
|
|
421
|
-
* we ask the caller to pass it back in, to ensure they know what they are signing.
|
|
422
|
-
* @param multisigTxnBlob - an encoded multisig txn. Supports non-payment txn types.
|
|
423
|
-
* @param version - multisig version
|
|
424
|
-
* @param threshold - multisig threshold
|
|
425
|
-
* @param addrs - a list of Algorand addresses representing possible signers for this multisig. Order is important.
|
|
426
|
-
* @param sk - Algorand secret key
|
|
427
|
-
* @returns object containing txID, and blob representing encoded multisig txn
|
|
428
|
-
*/
|
|
429
|
-
export function appendSignMultisigTransaction(
|
|
430
|
-
multisigTxnBlob: Uint8Array,
|
|
431
|
-
{ version, threshold, addrs }: MultisigMetadata,
|
|
432
|
-
sk: Uint8Array
|
|
433
|
-
) {
|
|
434
|
-
const pks = addrs.map((addr) => address.decodeAddress(addr).publicKey);
|
|
435
|
-
// obtain underlying txn, sign it, and merge it
|
|
436
|
-
const multisigTxObj = encoding.decode(
|
|
437
|
-
multisigTxnBlob
|
|
438
|
-
) as EncodedSignedTransaction;
|
|
439
|
-
const msigTxn = MultisigTransaction.from_obj_for_encoding(multisigTxObj.txn);
|
|
440
|
-
const partialSignedBlob = msigTxn.partialSignTxn(
|
|
441
|
-
{ version, threshold, pks },
|
|
442
|
-
sk
|
|
443
|
-
);
|
|
444
|
-
return {
|
|
445
|
-
txID: msigTxn.txID().toString(),
|
|
446
|
-
blob: mergeMultisigTransactions([multisigTxnBlob, partialSignedBlob]),
|
|
447
|
-
};
|
|
448
|
-
}
|
|
449
|
-
|
|
450
|
-
/**
|
|
451
|
-
* appendMultisigTransactionSignature takes a multisig transaction blob, and appends a given raw signature to it.
|
|
452
|
-
* This makes it possible to compile a multisig signature using only raw signatures from external methods.
|
|
453
|
-
* @param multisigTxnBlob - an encoded multisig txn. Supports non-payment txn types.
|
|
454
|
-
* @param version - multisig version
|
|
455
|
-
* @param threshold - multisig threshold
|
|
456
|
-
* @param addrs - a list of Algorand addresses representing possible signers for this multisig. Order is important.
|
|
457
|
-
* @param signerAddr - address of the signer
|
|
458
|
-
* @param signature - raw multisig signature
|
|
459
|
-
* @returns object containing txID, and blob representing encoded multisig txn
|
|
460
|
-
*/
|
|
461
|
-
export function appendSignRawMultisigSignature(
|
|
462
|
-
multisigTxnBlob: Uint8Array,
|
|
463
|
-
{ version, threshold, addrs }: MultisigMetadata,
|
|
464
|
-
signerAddr: string,
|
|
465
|
-
signature: Uint8Array
|
|
466
|
-
) {
|
|
467
|
-
const pks = addrs.map((addr) => address.decodeAddress(addr).publicKey);
|
|
468
|
-
// obtain underlying txn, sign it, and merge it
|
|
469
|
-
const multisigTxObj = encoding.decode(
|
|
470
|
-
multisigTxnBlob
|
|
471
|
-
) as EncodedSignedTransaction;
|
|
472
|
-
const msigTxn = MultisigTransaction.from_obj_for_encoding(multisigTxObj.txn);
|
|
473
|
-
const partialSignedBlob = msigTxn.partialSignWithMultisigSignature(
|
|
474
|
-
{ version, threshold, pks },
|
|
475
|
-
signerAddr,
|
|
476
|
-
signature
|
|
477
|
-
);
|
|
478
|
-
return {
|
|
479
|
-
txID: msigTxn.txID().toString(),
|
|
480
|
-
blob: mergeMultisigTransactions([multisigTxnBlob, partialSignedBlob]),
|
|
481
|
-
};
|
|
482
|
-
}
|
|
483
|
-
|
|
484
170
|
/**
|
|
485
171
|
* multisigAddress takes multisig metadata (preimage) and returns the corresponding human readable Algorand address.
|
|
486
172
|
* @param version - multisig version
|
|
@@ -491,6 +177,6 @@ export function multisigAddress({
|
|
|
491
177
|
version,
|
|
492
178
|
threshold,
|
|
493
179
|
addrs,
|
|
494
|
-
}: MultisigMetadata) {
|
|
495
|
-
return
|
|
180
|
+
}: MultisigMetadata): Address {
|
|
181
|
+
return addressFromMultisigPreImgAddrs({ version, threshold, addrs });
|
|
496
182
|
}
|