algosdk 1.24.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/browser/algosdk.min.js +1 -1
- package/dist/browser/algosdk.min.js.LICENSE.txt +0 -18
- package/dist/browser/algosdk.min.js.map +1 -1
- package/dist/cjs/{src/abi → abi}/abi_type.js +0 -0
- package/dist/cjs/abi/abi_type.js.map +1 -0
- package/dist/cjs/{src/abi → abi}/contract.js +0 -0
- package/dist/cjs/abi/contract.js.map +1 -0
- package/dist/cjs/{src/abi → abi}/index.js +0 -0
- package/dist/cjs/abi/index.js.map +1 -0
- package/dist/cjs/{src/abi → abi}/interface.js +0 -0
- package/dist/cjs/abi/interface.js.map +1 -0
- package/dist/cjs/{src/abi → abi}/method.js +0 -0
- package/dist/cjs/abi/method.js.map +1 -0
- package/dist/cjs/{src/abi → abi}/reference.js +0 -0
- package/dist/cjs/abi/reference.js.map +1 -0
- package/dist/cjs/{src/abi → abi}/transaction.js +0 -0
- package/dist/cjs/abi/transaction.js.map +1 -0
- package/dist/cjs/{src/account.js → account.js} +0 -0
- package/dist/cjs/account.js.map +1 -0
- package/dist/cjs/{src/bid.js → bid.js} +0 -0
- package/dist/cjs/bid.js.map +1 -0
- package/dist/cjs/{src/boxStorage.js → boxStorage.js} +0 -0
- package/dist/cjs/boxStorage.js.map +1 -0
- package/dist/cjs/{src/client → client}/baseHTTPClient.js +0 -0
- package/dist/cjs/client/baseHTTPClient.js.map +1 -0
- package/dist/cjs/{src/client → client}/client.js +0 -0
- package/dist/cjs/client/client.js.map +1 -0
- package/dist/cjs/{src/client → client}/kmd.js +0 -0
- package/dist/cjs/client/kmd.js.map +1 -0
- package/dist/cjs/{src/client → client}/urlTokenBaseHTTPClient.js +0 -0
- package/dist/cjs/client/urlTokenBaseHTTPClient.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/algod/accountApplicationInformation.js +0 -0
- package/dist/cjs/client/v2/algod/accountApplicationInformation.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/algod/accountAssetInformation.js +0 -0
- package/dist/cjs/client/v2/algod/accountAssetInformation.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/algod/accountInformation.js +0 -0
- package/dist/cjs/client/v2/algod/accountInformation.js.map +1 -0
- package/dist/cjs/client/v2/algod/algod.js +512 -0
- package/dist/cjs/client/v2/algod/algod.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/algod/block.js +0 -0
- package/dist/cjs/client/v2/algod/block.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/algod/compile.js +0 -0
- package/dist/cjs/client/v2/algod/compile.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/algod/dryrun.js +0 -0
- package/dist/cjs/client/v2/algod/dryrun.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/algod/genesis.js +0 -0
- package/dist/cjs/client/v2/algod/genesis.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/algod/getApplicationBoxByName.js +0 -0
- package/dist/cjs/client/v2/algod/getApplicationBoxByName.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/algod/getApplicationBoxes.js +0 -0
- package/dist/cjs/client/v2/algod/getApplicationBoxes.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/algod/getApplicationByID.js +0 -0
- package/dist/cjs/client/v2/algod/getApplicationByID.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/algod/getAssetByID.js +0 -0
- package/dist/cjs/client/v2/algod/getAssetByID.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/algod/getBlockHash.js +0 -0
- package/dist/cjs/client/v2/algod/getBlockHash.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/algod/getTransactionProof.js +0 -0
- package/dist/cjs/client/v2/algod/getTransactionProof.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/algod/healthCheck.js +0 -0
- package/dist/cjs/client/v2/algod/healthCheck.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/algod/lightBlockHeaderProof.js +0 -0
- package/dist/cjs/client/v2/algod/lightBlockHeaderProof.js.map +1 -0
- package/dist/cjs/client/v2/algod/models/types.js +2085 -0
- package/dist/cjs/client/v2/algod/models/types.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/algod/pendingTransactionInformation.js +0 -0
- package/dist/cjs/client/v2/algod/pendingTransactionInformation.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/algod/pendingTransactions.js +0 -0
- package/dist/cjs/client/v2/algod/pendingTransactions.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/algod/pendingTransactionsByAddress.js +0 -0
- package/dist/cjs/client/v2/algod/pendingTransactionsByAddress.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/algod/sendRawTransaction.js +0 -0
- package/dist/cjs/client/v2/algod/sendRawTransaction.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/algod/stateproof.js +0 -0
- package/dist/cjs/client/v2/algod/stateproof.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/algod/status.js +0 -0
- package/dist/cjs/client/v2/algod/status.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/algod/statusAfterBlock.js +0 -0
- package/dist/cjs/client/v2/algod/statusAfterBlock.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/algod/suggestedParams.js +0 -0
- package/dist/cjs/client/v2/algod/suggestedParams.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/algod/supply.js +0 -0
- package/dist/cjs/client/v2/algod/supply.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/algod/versions.js +0 -0
- package/dist/cjs/client/v2/algod/versions.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/basemodel.js +0 -0
- package/dist/cjs/client/v2/basemodel.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/indexer/indexer.js +0 -0
- package/dist/cjs/client/v2/indexer/indexer.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/indexer/lookupAccountAppLocalStates.js +0 -0
- package/dist/cjs/client/v2/indexer/lookupAccountAppLocalStates.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/indexer/lookupAccountAssets.js +0 -0
- package/dist/cjs/client/v2/indexer/lookupAccountAssets.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/indexer/lookupAccountByID.js +0 -0
- package/dist/cjs/client/v2/indexer/lookupAccountByID.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/indexer/lookupAccountCreatedApplications.js +0 -0
- package/dist/cjs/client/v2/indexer/lookupAccountCreatedApplications.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/indexer/lookupAccountCreatedAssets.js +0 -0
- package/dist/cjs/client/v2/indexer/lookupAccountCreatedAssets.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/indexer/lookupAccountTransactions.js +0 -0
- package/dist/cjs/client/v2/indexer/lookupAccountTransactions.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/indexer/lookupApplicationBoxByIDandName.js +0 -0
- package/dist/cjs/client/v2/indexer/lookupApplicationBoxByIDandName.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/indexer/lookupApplicationLogs.js +0 -0
- package/dist/cjs/client/v2/indexer/lookupApplicationLogs.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/indexer/lookupApplications.js +0 -0
- package/dist/cjs/client/v2/indexer/lookupApplications.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/indexer/lookupAssetBalances.js +0 -0
- package/dist/cjs/client/v2/indexer/lookupAssetBalances.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/indexer/lookupAssetByID.js +0 -0
- package/dist/cjs/client/v2/indexer/lookupAssetByID.js.map +1 -0
- package/dist/cjs/client/v2/indexer/lookupAssetTransactions.js +385 -0
- package/dist/cjs/client/v2/indexer/lookupAssetTransactions.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/indexer/lookupBlock.js +0 -0
- package/dist/cjs/client/v2/indexer/lookupBlock.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/indexer/lookupTransactionByID.js +0 -0
- package/dist/cjs/client/v2/indexer/lookupTransactionByID.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/indexer/makeHealthCheck.js +0 -0
- package/dist/cjs/client/v2/indexer/makeHealthCheck.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/indexer/models/types.js +0 -0
- package/dist/cjs/client/v2/indexer/models/types.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/indexer/searchAccounts.js +0 -0
- package/dist/cjs/client/v2/indexer/searchAccounts.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/indexer/searchForApplicationBoxes.js +0 -0
- package/dist/cjs/client/v2/indexer/searchForApplicationBoxes.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/indexer/searchForApplications.js +0 -0
- package/dist/cjs/client/v2/indexer/searchForApplications.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/indexer/searchForAssets.js +0 -0
- package/dist/cjs/client/v2/indexer/searchForAssets.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/indexer/searchForTransactions.js +0 -0
- package/dist/cjs/client/v2/indexer/searchForTransactions.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/jsonrequest.js +0 -0
- package/dist/cjs/client/v2/jsonrequest.js.map +1 -0
- package/dist/cjs/{src/client → client}/v2/serviceClient.js +0 -0
- package/dist/cjs/client/v2/serviceClient.js.map +1 -0
- package/dist/cjs/{src/composer.js → composer.js} +0 -0
- package/dist/cjs/composer.js.map +1 -0
- package/dist/cjs/{src/convert.js → convert.js} +0 -0
- package/dist/cjs/convert.js.map +1 -0
- package/dist/cjs/dryrun.js +309 -0
- package/dist/cjs/dryrun.js.map +1 -0
- package/dist/cjs/{src/encoding → encoding}/address.js +0 -0
- package/dist/cjs/encoding/address.js.map +1 -0
- package/dist/cjs/{src/encoding → encoding}/bigint.js +0 -0
- package/dist/cjs/encoding/bigint.js.map +1 -0
- package/dist/cjs/{src/encoding → encoding}/encoding.js +0 -0
- package/dist/cjs/encoding/encoding.js.map +1 -0
- package/dist/cjs/{src/encoding → encoding}/uint64.js +0 -0
- package/dist/cjs/encoding/uint64.js.map +1 -0
- package/dist/cjs/{src/group.js → group.js} +0 -0
- package/dist/cjs/group.js.map +1 -0
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/{src/logic → logic}/sourcemap.js +0 -0
- package/dist/cjs/logic/sourcemap.js.map +1 -0
- package/dist/cjs/logicsig.js +435 -0
- package/dist/cjs/logicsig.js.map +1 -0
- package/dist/cjs/main.js +197 -0
- package/dist/cjs/main.js.map +1 -0
- package/dist/cjs/makeTxn.js +670 -0
- package/dist/cjs/makeTxn.js.map +1 -0
- package/dist/cjs/{src/mnemonic → mnemonic}/mnemonic.js +0 -0
- package/dist/cjs/mnemonic/mnemonic.js.map +1 -0
- package/dist/cjs/{src/mnemonic → mnemonic}/wordlists/english.js +0 -0
- package/dist/cjs/mnemonic/wordlists/english.js.map +1 -0
- package/dist/cjs/{src/multisig.js → multisig.js} +0 -0
- package/dist/cjs/multisig.js.map +1 -0
- package/dist/cjs/{src/nacl → nacl}/naclWrappers.js +0 -0
- package/dist/cjs/nacl/naclWrappers.js.map +1 -0
- package/dist/cjs/{src/signer.js → signer.js} +0 -0
- package/dist/cjs/signer.js.map +1 -0
- package/dist/cjs/{src/transaction.js → transaction.js} +0 -0
- package/dist/cjs/transaction.js.map +1 -0
- package/dist/cjs/{src/types → types}/account.js +0 -0
- package/dist/cjs/types/account.js.map +1 -0
- package/dist/cjs/{src/types → types}/address.js +0 -0
- package/dist/cjs/types/address.js.map +1 -0
- package/dist/cjs/{src/types → types}/blockHeader.js +0 -0
- package/dist/cjs/types/blockHeader.js.map +1 -0
- package/dist/cjs/{src/types → types}/index.js +0 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/{src/types → types}/intDecoding.js +0 -0
- package/dist/cjs/types/intDecoding.js.map +1 -0
- package/dist/cjs/{src/types → types}/multisig.js +0 -0
- package/dist/cjs/types/multisig.js.map +1 -0
- package/dist/cjs/{src/types → types}/transactions/application.js +0 -0
- package/dist/cjs/types/transactions/application.js.map +1 -0
- package/dist/cjs/{src/types → types}/transactions/asset.js +0 -0
- package/dist/cjs/types/transactions/asset.js.map +1 -0
- package/dist/cjs/{src/types → types}/transactions/base.js +0 -0
- package/dist/cjs/types/transactions/base.js.map +1 -0
- package/dist/cjs/{src/types → types}/transactions/builder.js +0 -0
- package/dist/cjs/types/transactions/builder.js.map +1 -0
- package/dist/cjs/{src/types → types}/transactions/encoded.js +0 -0
- package/dist/cjs/types/transactions/encoded.js.map +1 -0
- package/dist/cjs/{src/types → types}/transactions/index.js +0 -0
- package/dist/cjs/types/transactions/index.js.map +1 -0
- package/dist/cjs/{src/types → types}/transactions/keyreg.js +0 -0
- package/dist/cjs/types/transactions/keyreg.js.map +1 -0
- package/dist/cjs/{src/types → types}/transactions/payment.js +0 -0
- package/dist/cjs/types/transactions/payment.js.map +1 -0
- package/dist/cjs/{src/types → types}/transactions/stateproof.js +0 -0
- package/dist/cjs/types/transactions/stateproof.js.map +1 -0
- package/dist/cjs/{src/types → types}/utils.js +0 -0
- package/dist/cjs/types/utils.js.map +1 -0
- package/dist/cjs/{src/utils → utils}/utils.js +0 -0
- package/dist/cjs/utils/utils.js.map +1 -0
- package/dist/cjs/{src/wait.js → wait.js} +0 -0
- package/dist/cjs/wait.js.map +1 -0
- package/dist/esm/{src/abi → abi}/abi_type.js +0 -0
- package/dist/esm/abi/abi_type.js.map +1 -0
- package/dist/esm/{src/abi → abi}/contract.js +0 -0
- package/dist/esm/abi/contract.js.map +1 -0
- package/dist/esm/{src/abi → abi}/index.js +0 -0
- package/dist/esm/abi/index.js.map +1 -0
- package/dist/esm/{src/abi → abi}/interface.js +0 -0
- package/dist/esm/abi/interface.js.map +1 -0
- package/dist/esm/{src/abi → abi}/method.js +0 -0
- package/dist/esm/abi/method.js.map +1 -0
- package/dist/esm/{src/abi → abi}/reference.js +0 -0
- package/dist/esm/abi/reference.js.map +1 -0
- package/dist/esm/{src/abi → abi}/transaction.js +0 -0
- package/dist/esm/abi/transaction.js.map +1 -0
- package/dist/esm/{src/account.js → account.js} +0 -0
- package/dist/esm/account.js.map +1 -0
- package/dist/esm/{src/bid.js → bid.js} +0 -0
- package/dist/esm/bid.js.map +1 -0
- package/dist/esm/{src/boxStorage.js → boxStorage.js} +0 -0
- package/dist/esm/boxStorage.js.map +1 -0
- package/dist/esm/{src/client → client}/baseHTTPClient.js +0 -0
- package/dist/esm/client/baseHTTPClient.js.map +1 -0
- package/dist/esm/{src/client → client}/client.js +0 -0
- package/dist/esm/client/client.js.map +1 -0
- package/dist/esm/{src/client → client}/kmd.js +0 -0
- package/dist/esm/client/kmd.js.map +1 -0
- package/dist/esm/{src/client → client}/urlTokenBaseHTTPClient.js +0 -0
- package/dist/esm/client/urlTokenBaseHTTPClient.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/algod/accountApplicationInformation.js +0 -0
- package/dist/esm/client/v2/algod/accountApplicationInformation.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/algod/accountAssetInformation.js +0 -0
- package/dist/esm/client/v2/algod/accountAssetInformation.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/algod/accountInformation.js +0 -0
- package/dist/esm/client/v2/algod/accountInformation.js.map +1 -0
- package/dist/esm/client/v2/algod/algod.js +506 -0
- package/dist/esm/client/v2/algod/algod.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/algod/block.js +0 -0
- package/dist/esm/client/v2/algod/block.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/algod/compile.js +0 -0
- package/dist/esm/client/v2/algod/compile.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/algod/dryrun.js +0 -0
- package/dist/esm/client/v2/algod/dryrun.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/algod/genesis.js +0 -0
- package/dist/esm/client/v2/algod/genesis.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/algod/getApplicationBoxByName.js +0 -0
- package/dist/esm/client/v2/algod/getApplicationBoxByName.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/algod/getApplicationBoxes.js +0 -0
- package/dist/esm/client/v2/algod/getApplicationBoxes.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/algod/getApplicationByID.js +0 -0
- package/dist/esm/client/v2/algod/getApplicationByID.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/algod/getAssetByID.js +0 -0
- package/dist/esm/client/v2/algod/getAssetByID.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/algod/getBlockHash.js +0 -0
- package/dist/esm/client/v2/algod/getBlockHash.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/algod/getTransactionProof.js +0 -0
- package/dist/esm/client/v2/algod/getTransactionProof.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/algod/healthCheck.js +0 -0
- package/dist/esm/client/v2/algod/healthCheck.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/algod/lightBlockHeaderProof.js +0 -0
- package/dist/esm/client/v2/algod/lightBlockHeaderProof.js.map +1 -0
- package/dist/esm/client/v2/algod/models/types.js +2038 -0
- package/dist/esm/client/v2/algod/models/types.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/algod/pendingTransactionInformation.js +0 -0
- package/dist/esm/client/v2/algod/pendingTransactionInformation.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/algod/pendingTransactions.js +0 -0
- package/dist/esm/client/v2/algod/pendingTransactions.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/algod/pendingTransactionsByAddress.js +0 -0
- package/dist/esm/client/v2/algod/pendingTransactionsByAddress.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/algod/sendRawTransaction.js +0 -0
- package/dist/esm/client/v2/algod/sendRawTransaction.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/algod/stateproof.js +0 -0
- package/dist/esm/client/v2/algod/stateproof.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/algod/status.js +0 -0
- package/dist/esm/client/v2/algod/status.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/algod/statusAfterBlock.js +0 -0
- package/dist/esm/client/v2/algod/statusAfterBlock.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/algod/suggestedParams.js +0 -0
- package/dist/esm/client/v2/algod/suggestedParams.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/algod/supply.js +0 -0
- package/dist/esm/client/v2/algod/supply.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/algod/versions.js +0 -0
- package/dist/esm/client/v2/algod/versions.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/basemodel.js +0 -0
- package/dist/esm/client/v2/basemodel.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/indexer/indexer.js +0 -0
- package/dist/esm/client/v2/indexer/indexer.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/indexer/lookupAccountAppLocalStates.js +0 -0
- package/dist/esm/client/v2/indexer/lookupAccountAppLocalStates.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/indexer/lookupAccountAssets.js +0 -0
- package/dist/esm/client/v2/indexer/lookupAccountAssets.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/indexer/lookupAccountByID.js +0 -0
- package/dist/esm/client/v2/indexer/lookupAccountByID.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/indexer/lookupAccountCreatedApplications.js +0 -0
- package/dist/esm/client/v2/indexer/lookupAccountCreatedApplications.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/indexer/lookupAccountCreatedAssets.js +0 -0
- package/dist/esm/client/v2/indexer/lookupAccountCreatedAssets.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/indexer/lookupAccountTransactions.js +0 -0
- package/dist/esm/client/v2/indexer/lookupAccountTransactions.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/indexer/lookupApplicationBoxByIDandName.js +0 -0
- package/dist/esm/client/v2/indexer/lookupApplicationBoxByIDandName.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/indexer/lookupApplicationLogs.js +0 -0
- package/dist/esm/client/v2/indexer/lookupApplicationLogs.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/indexer/lookupApplications.js +0 -0
- package/dist/esm/client/v2/indexer/lookupApplications.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/indexer/lookupAssetBalances.js +0 -0
- package/dist/esm/client/v2/indexer/lookupAssetBalances.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/indexer/lookupAssetByID.js +0 -0
- package/dist/esm/client/v2/indexer/lookupAssetByID.js.map +1 -0
- package/dist/esm/client/v2/indexer/lookupAssetTransactions.js +379 -0
- package/dist/esm/client/v2/indexer/lookupAssetTransactions.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/indexer/lookupBlock.js +0 -0
- package/dist/esm/client/v2/indexer/lookupBlock.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/indexer/lookupTransactionByID.js +0 -0
- package/dist/esm/client/v2/indexer/lookupTransactionByID.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/indexer/makeHealthCheck.js +0 -0
- package/dist/esm/client/v2/indexer/makeHealthCheck.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/indexer/models/types.js +0 -0
- package/dist/esm/client/v2/indexer/models/types.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/indexer/searchAccounts.js +0 -0
- package/dist/esm/client/v2/indexer/searchAccounts.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/indexer/searchForApplicationBoxes.js +0 -0
- package/dist/esm/client/v2/indexer/searchForApplicationBoxes.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/indexer/searchForApplications.js +0 -0
- package/dist/esm/client/v2/indexer/searchForApplications.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/indexer/searchForAssets.js +0 -0
- package/dist/esm/client/v2/indexer/searchForAssets.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/indexer/searchForTransactions.js +0 -0
- package/dist/esm/client/v2/indexer/searchForTransactions.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/jsonrequest.js +0 -0
- package/dist/esm/client/v2/jsonrequest.js.map +1 -0
- package/dist/esm/{src/client → client}/v2/serviceClient.js +0 -0
- package/dist/esm/client/v2/serviceClient.js.map +1 -0
- package/dist/esm/{src/composer.js → composer.js} +0 -0
- package/dist/esm/composer.js.map +1 -0
- package/dist/esm/{src/convert.js → convert.js} +0 -0
- package/dist/esm/convert.js.map +1 -0
- package/dist/esm/dryrun.js +304 -0
- package/dist/esm/dryrun.js.map +1 -0
- package/dist/esm/{src/encoding → encoding}/address.js +0 -0
- package/dist/esm/encoding/address.js.map +1 -0
- package/dist/esm/{src/encoding → encoding}/bigint.js +0 -0
- package/dist/esm/encoding/bigint.js.map +1 -0
- package/dist/esm/{src/encoding → encoding}/encoding.js +0 -0
- package/dist/esm/encoding/encoding.js.map +1 -0
- package/dist/esm/{src/encoding → encoding}/uint64.js +0 -0
- package/dist/esm/encoding/uint64.js.map +1 -0
- package/dist/esm/{src/group.js → group.js} +0 -0
- package/dist/esm/group.js.map +1 -0
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/{src/logic → logic}/sourcemap.js +0 -0
- package/dist/esm/logic/sourcemap.js.map +1 -0
- package/dist/esm/logicsig.js +401 -0
- package/dist/esm/logicsig.js.map +1 -0
- package/dist/esm/main.js +120 -0
- package/dist/esm/main.js.map +1 -0
- package/dist/esm/makeTxn.js +616 -0
- package/dist/esm/makeTxn.js.map +1 -0
- package/dist/esm/{src/mnemonic → mnemonic}/mnemonic.js +0 -0
- package/dist/esm/mnemonic/mnemonic.js.map +1 -0
- package/dist/esm/{src/mnemonic → mnemonic}/wordlists/english.js +0 -0
- package/dist/esm/mnemonic/wordlists/english.js.map +1 -0
- package/dist/esm/{src/multisig.js → multisig.js} +0 -0
- package/dist/esm/multisig.js.map +1 -0
- package/dist/esm/{src/nacl → nacl}/naclWrappers.js +0 -0
- package/dist/esm/nacl/naclWrappers.js.map +1 -0
- package/dist/esm/{src/signer.js → signer.js} +0 -0
- package/dist/esm/signer.js.map +1 -0
- package/dist/esm/{src/transaction.js → transaction.js} +0 -0
- package/dist/esm/transaction.js.map +1 -0
- package/dist/esm/{src/types → types}/account.js +0 -0
- package/dist/esm/types/account.js.map +1 -0
- package/dist/esm/{src/types → types}/address.js +0 -0
- package/dist/esm/types/address.js.map +1 -0
- package/dist/esm/{src/types → types}/blockHeader.js +0 -0
- package/dist/esm/types/blockHeader.js.map +1 -0
- package/dist/esm/{src/types → types}/index.js +0 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/{src/types → types}/intDecoding.js +0 -0
- package/dist/esm/types/intDecoding.js.map +1 -0
- package/dist/esm/{src/types → types}/multisig.js +0 -0
- package/dist/esm/types/multisig.js.map +1 -0
- package/dist/esm/{src/types → types}/transactions/application.js +0 -0
- package/dist/esm/types/transactions/application.js.map +1 -0
- package/dist/esm/{src/types → types}/transactions/asset.js +0 -0
- package/dist/esm/types/transactions/asset.js.map +1 -0
- package/dist/esm/{src/types → types}/transactions/base.js +0 -0
- package/dist/esm/types/transactions/base.js.map +1 -0
- package/dist/esm/{src/types → types}/transactions/builder.js +0 -0
- package/dist/esm/types/transactions/builder.js.map +1 -0
- package/dist/esm/{src/types → types}/transactions/encoded.js +0 -0
- package/dist/esm/types/transactions/encoded.js.map +1 -0
- package/dist/esm/{src/types → types}/transactions/index.js +0 -0
- package/dist/esm/types/transactions/index.js.map +1 -0
- package/dist/esm/{src/types → types}/transactions/keyreg.js +0 -0
- package/dist/esm/types/transactions/keyreg.js.map +1 -0
- package/dist/esm/{src/types → types}/transactions/payment.js +0 -0
- package/dist/esm/types/transactions/payment.js.map +1 -0
- package/dist/esm/{src/types → types}/transactions/stateproof.js +0 -0
- package/dist/esm/types/transactions/stateproof.js.map +1 -0
- package/dist/esm/{src/types → types}/utils.js +0 -0
- package/dist/esm/types/utils.js.map +1 -0
- package/dist/esm/{src/utils → utils}/utils.js +0 -0
- package/dist/esm/utils/utils.js.map +1 -0
- package/dist/esm/{src/wait.js → wait.js} +0 -0
- package/dist/esm/wait.js.map +1 -0
- package/dist/types/{src/abi → abi}/abi_type.d.ts +0 -0
- package/dist/types/{src/abi → abi}/contract.d.ts +0 -0
- package/dist/types/{src/abi → abi}/index.d.ts +0 -0
- package/dist/types/{src/abi → abi}/interface.d.ts +0 -0
- package/dist/types/{src/abi → abi}/method.d.ts +0 -0
- package/dist/types/{src/abi → abi}/reference.d.ts +0 -0
- package/dist/types/{src/abi → abi}/transaction.d.ts +0 -0
- package/dist/types/{src/account.d.ts → account.d.ts} +0 -0
- package/dist/types/{src/bid.d.ts → bid.d.ts} +0 -0
- package/dist/types/{src/boxStorage.d.ts → boxStorage.d.ts} +0 -0
- package/dist/types/{src/client → client}/baseHTTPClient.d.ts +0 -0
- package/dist/types/{src/client → client}/client.d.ts +0 -0
- package/dist/types/{src/client → client}/kmd.d.ts +0 -0
- package/dist/types/{src/client → client}/urlTokenBaseHTTPClient.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/algod/accountApplicationInformation.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/algod/accountAssetInformation.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/algod/accountInformation.d.ts +0 -0
- package/dist/types/client/v2/algod/algod.d.ts +456 -0
- package/dist/types/{src/client → client}/v2/algod/block.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/algod/compile.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/algod/dryrun.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/algod/genesis.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/algod/getApplicationBoxByName.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/algod/getApplicationBoxes.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/algod/getApplicationByID.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/algod/getAssetByID.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/algod/getBlockHash.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/algod/getTransactionProof.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/algod/healthCheck.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/algod/lightBlockHeaderProof.d.ts +0 -0
- package/dist/types/client/v2/algod/models/types.d.ts +1689 -0
- package/dist/types/{src/client → client}/v2/algod/pendingTransactionInformation.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/algod/pendingTransactions.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/algod/pendingTransactionsByAddress.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/algod/sendRawTransaction.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/algod/stateproof.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/algod/status.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/algod/statusAfterBlock.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/algod/suggestedParams.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/algod/supply.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/algod/versions.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/basemodel.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/indexer/indexer.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/indexer/lookupAccountAppLocalStates.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/indexer/lookupAccountAssets.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/indexer/lookupAccountByID.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/indexer/lookupAccountCreatedApplications.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/indexer/lookupAccountCreatedAssets.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/indexer/lookupAccountTransactions.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/indexer/lookupApplicationBoxByIDandName.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/indexer/lookupApplicationLogs.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/indexer/lookupApplications.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/indexer/lookupAssetBalances.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/indexer/lookupAssetByID.d.ts +0 -0
- package/dist/types/client/v2/indexer/lookupAssetTransactions.d.ts +323 -0
- package/dist/types/{src/client → client}/v2/indexer/lookupBlock.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/indexer/lookupTransactionByID.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/indexer/makeHealthCheck.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/indexer/models/types.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/indexer/searchAccounts.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/indexer/searchForApplicationBoxes.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/indexer/searchForApplications.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/indexer/searchForAssets.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/indexer/searchForTransactions.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/jsonrequest.d.ts +0 -0
- package/dist/types/{src/client → client}/v2/serviceClient.d.ts +0 -0
- package/dist/types/{src/composer.d.ts → composer.d.ts} +0 -0
- package/dist/types/{src/convert.d.ts → convert.d.ts} +0 -0
- package/dist/types/{src/dryrun.d.ts → dryrun.d.ts} +0 -0
- package/dist/types/{src/encoding → encoding}/address.d.ts +0 -0
- package/dist/types/{src/encoding → encoding}/bigint.d.ts +0 -0
- package/dist/types/{src/encoding → encoding}/encoding.d.ts +0 -0
- package/dist/types/{src/encoding → encoding}/uint64.d.ts +0 -0
- package/dist/types/{src/group.d.ts → group.d.ts} +0 -0
- package/dist/types/index.d.ts +2 -2
- package/dist/types/{src/logic → logic}/sourcemap.d.ts +0 -0
- package/dist/types/logicsig.d.ts +183 -0
- package/dist/types/main.d.ts +88 -0
- package/dist/types/makeTxn.d.ts +426 -0
- package/dist/types/{src/mnemonic → mnemonic}/mnemonic.d.ts +0 -0
- package/dist/types/{src/mnemonic → mnemonic}/wordlists/english.d.ts +0 -0
- package/dist/types/{src/multisig.d.ts → multisig.d.ts} +0 -0
- package/dist/types/{src/nacl → nacl}/naclWrappers.d.ts +0 -0
- package/dist/types/{src/signer.d.ts → signer.d.ts} +0 -0
- package/dist/types/{src/transaction.d.ts → transaction.d.ts} +0 -0
- package/dist/types/{src/types → types}/account.d.ts +0 -0
- package/dist/types/{src/types → types}/address.d.ts +0 -0
- package/dist/types/{src/types → types}/blockHeader.d.ts +0 -0
- package/dist/types/{src/types → types}/index.d.ts +0 -0
- package/dist/types/{src/types → types}/intDecoding.d.ts +0 -0
- package/dist/types/{src/types → types}/multisig.d.ts +0 -0
- package/dist/types/{src/types → types}/transactions/application.d.ts +0 -0
- package/dist/types/{src/types → types}/transactions/asset.d.ts +0 -0
- package/dist/types/{src/types → types}/transactions/base.d.ts +0 -0
- package/dist/types/{src/types → types}/transactions/builder.d.ts +0 -0
- package/dist/types/types/transactions/encoded.d.ts +329 -0
- package/dist/types/{src/types → types}/transactions/index.d.ts +0 -0
- package/dist/types/{src/types → types}/transactions/keyreg.d.ts +0 -0
- package/dist/types/{src/types → types}/transactions/payment.d.ts +0 -0
- package/dist/types/{src/types → types}/transactions/stateproof.d.ts +0 -0
- package/dist/types/{src/types → types}/utils.d.ts +0 -0
- package/dist/types/{src/utils → utils}/utils.d.ts +0 -0
- package/dist/types/{src/wait.d.ts → wait.d.ts} +0 -0
- package/package.json +10 -6
- package/src/abi/abi_type.ts +846 -0
- package/src/abi/contract.ts +51 -0
- package/src/abi/index.ts +6 -0
- package/src/abi/interface.ts +35 -0
- package/src/abi/method.ts +186 -0
- package/src/abi/reference.ts +24 -0
- package/src/abi/transaction.ts +61 -0
- package/src/account.ts +12 -0
- package/src/bid.ts +95 -0
- package/src/boxStorage.ts +42 -0
- package/src/client/baseHTTPClient.ts +58 -0
- package/src/client/client.ts +306 -0
- package/src/client/kmd.ts +423 -0
- package/src/client/urlTokenBaseHTTPClient.ts +217 -0
- package/src/client/v2/algod/accountApplicationInformation.ts +20 -0
- package/src/client/v2/algod/accountAssetInformation.ts +20 -0
- package/src/client/v2/algod/accountInformation.ts +37 -0
- package/src/client/v2/algod/algod.ts +561 -0
- package/src/client/v2/algod/block.ts +30 -0
- package/src/client/v2/algod/compile.ts +50 -0
- package/src/client/v2/algod/dryrun.ts +33 -0
- package/src/client/v2/algod/genesis.ts +8 -0
- package/src/client/v2/algod/getApplicationBoxByName.ts +49 -0
- package/src/client/v2/algod/getApplicationBoxes.ts +61 -0
- package/src/client/v2/algod/getApplicationByID.ts +14 -0
- package/src/client/v2/algod/getAssetByID.ts +14 -0
- package/src/client/v2/algod/getBlockHash.ts +18 -0
- package/src/client/v2/algod/getTransactionProof.ts +43 -0
- package/src/client/v2/algod/healthCheck.ts +19 -0
- package/src/client/v2/algod/lightBlockHeaderProof.ts +15 -0
- package/src/client/v2/algod/models/types.ts +3731 -0
- package/src/client/v2/algod/pendingTransactionInformation.ts +32 -0
- package/src/client/v2/algod/pendingTransactions.ts +32 -0
- package/src/client/v2/algod/pendingTransactionsByAddress.ts +32 -0
- package/src/client/v2/algod/sendRawTransaction.ts +59 -0
- package/src/client/v2/algod/stateproof.ts +15 -0
- package/src/client/v2/algod/status.ts +8 -0
- package/src/client/v2/algod/statusAfterBlock.ts +15 -0
- package/src/client/v2/algod/suggestedParams.ts +24 -0
- package/src/client/v2/algod/supply.ts +8 -0
- package/src/client/v2/algod/versions.ts +11 -0
- package/src/client/v2/basemodel.ts +79 -0
- package/src/client/v2/indexer/indexer.ts +432 -0
- package/src/client/v2/indexer/lookupAccountAppLocalStates.ts +140 -0
- package/src/client/v2/indexer/lookupAccountAssets.ts +141 -0
- package/src/client/v2/indexer/lookupAccountByID.ts +109 -0
- package/src/client/v2/indexer/lookupAccountCreatedApplications.ts +141 -0
- package/src/client/v2/indexer/lookupAccountCreatedAssets.ts +142 -0
- package/src/client/v2/indexer/lookupAccountTransactions.ts +393 -0
- package/src/client/v2/indexer/lookupApplicationBoxByIDandName.ts +50 -0
- package/src/client/v2/indexer/lookupApplicationLogs.ts +156 -0
- package/src/client/v2/indexer/lookupApplications.ts +59 -0
- package/src/client/v2/indexer/lookupAssetBalances.ts +146 -0
- package/src/client/v2/indexer/lookupAssetByID.ts +58 -0
- package/src/client/v2/indexer/lookupAssetTransactions.ts +398 -0
- package/src/client/v2/indexer/lookupBlock.ts +39 -0
- package/src/client/v2/indexer/lookupTransactionByID.ts +30 -0
- package/src/client/v2/indexer/makeHealthCheck.ts +23 -0
- package/src/client/v2/indexer/models/types.ts +5667 -0
- package/src/client/v2/indexer/searchAccounts.ts +268 -0
- package/src/client/v2/indexer/searchForApplicationBoxes.ts +101 -0
- package/src/client/v2/indexer/searchForApplications.ts +134 -0
- package/src/client/v2/indexer/searchForAssets.ts +175 -0
- package/src/client/v2/indexer/searchForTransactions.ts +435 -0
- package/src/client/v2/jsonrequest.ts +103 -0
- package/src/client/v2/serviceClient.ts +86 -0
- package/src/composer.ts +688 -0
- package/src/convert.ts +25 -0
- package/src/dryrun.ts +468 -0
- package/src/encoding/address.ts +191 -0
- package/src/encoding/bigint.ts +33 -0
- package/src/encoding/encoding.ts +56 -0
- package/src/encoding/uint64.ts +84 -0
- package/src/group.ts +97 -0
- package/src/index.ts +4 -0
- package/src/logic/sourcemap.ts +67 -0
- package/src/logicsig.ts +512 -0
- package/src/main.ts +181 -0
- package/src/makeTxn.ts +1450 -0
- package/src/mnemonic/mnemonic.ts +181 -0
- package/src/mnemonic/wordlists/english.ts +2052 -0
- package/src/multisig.ts +495 -0
- package/src/nacl/naclWrappers.ts +49 -0
- package/src/signer.ts +105 -0
- package/src/transaction.ts +1363 -0
- package/src/types/account.ts +16 -0
- package/src/types/address.ts +7 -0
- package/src/types/blockHeader.ts +81 -0
- package/src/types/index.ts +3 -0
- package/src/types/intDecoding.ts +29 -0
- package/src/types/multisig.ts +22 -0
- package/src/types/transactions/application.ts +111 -0
- package/src/types/transactions/asset.ts +108 -0
- package/src/types/transactions/base.ts +428 -0
- package/src/types/transactions/builder.ts +69 -0
- package/src/types/transactions/encoded.ts +406 -0
- package/src/types/transactions/index.ts +72 -0
- package/src/types/transactions/keyreg.ts +23 -0
- package/src/types/transactions/payment.ts +14 -0
- package/src/types/transactions/stateproof.ts +17 -0
- package/src/types/utils.ts +63 -0
- package/src/utils/utils.ts +121 -0
- package/src/wait.ts +58 -0
- package/dist/cjs/src/abi/abi_type.js.map +0 -1
- package/dist/cjs/src/abi/contract.js.map +0 -1
- package/dist/cjs/src/abi/index.js.map +0 -1
- package/dist/cjs/src/abi/interface.js.map +0 -1
- package/dist/cjs/src/abi/method.js.map +0 -1
- package/dist/cjs/src/abi/reference.js.map +0 -1
- package/dist/cjs/src/abi/transaction.js.map +0 -1
- package/dist/cjs/src/account.js.map +0 -1
- package/dist/cjs/src/bid.js.map +0 -1
- package/dist/cjs/src/boxStorage.js.map +0 -1
- package/dist/cjs/src/client/algod.js +0 -295
- package/dist/cjs/src/client/algod.js.map +0 -1
- package/dist/cjs/src/client/baseHTTPClient.js.map +0 -1
- package/dist/cjs/src/client/client.js.map +0 -1
- package/dist/cjs/src/client/kmd.js.map +0 -1
- package/dist/cjs/src/client/urlTokenBaseHTTPClient.js.map +0 -1
- package/dist/cjs/src/client/v2/algod/accountApplicationInformation.js.map +0 -1
- package/dist/cjs/src/client/v2/algod/accountAssetInformation.js.map +0 -1
- package/dist/cjs/src/client/v2/algod/accountInformation.js.map +0 -1
- package/dist/cjs/src/client/v2/algod/algod.js +0 -512
- package/dist/cjs/src/client/v2/algod/algod.js.map +0 -1
- package/dist/cjs/src/client/v2/algod/block.js.map +0 -1
- package/dist/cjs/src/client/v2/algod/compile.js.map +0 -1
- package/dist/cjs/src/client/v2/algod/dryrun.js.map +0 -1
- package/dist/cjs/src/client/v2/algod/genesis.js.map +0 -1
- package/dist/cjs/src/client/v2/algod/getApplicationBoxByName.js.map +0 -1
- package/dist/cjs/src/client/v2/algod/getApplicationBoxes.js.map +0 -1
- package/dist/cjs/src/client/v2/algod/getApplicationByID.js.map +0 -1
- package/dist/cjs/src/client/v2/algod/getAssetByID.js.map +0 -1
- package/dist/cjs/src/client/v2/algod/getBlockHash.js.map +0 -1
- package/dist/cjs/src/client/v2/algod/getTransactionProof.js.map +0 -1
- package/dist/cjs/src/client/v2/algod/healthCheck.js.map +0 -1
- package/dist/cjs/src/client/v2/algod/lightBlockHeaderProof.js.map +0 -1
- package/dist/cjs/src/client/v2/algod/models/types.js +0 -2047
- package/dist/cjs/src/client/v2/algod/models/types.js.map +0 -1
- package/dist/cjs/src/client/v2/algod/pendingTransactionInformation.js.map +0 -1
- package/dist/cjs/src/client/v2/algod/pendingTransactions.js.map +0 -1
- package/dist/cjs/src/client/v2/algod/pendingTransactionsByAddress.js.map +0 -1
- package/dist/cjs/src/client/v2/algod/sendRawTransaction.js.map +0 -1
- package/dist/cjs/src/client/v2/algod/stateproof.js.map +0 -1
- package/dist/cjs/src/client/v2/algod/status.js.map +0 -1
- package/dist/cjs/src/client/v2/algod/statusAfterBlock.js.map +0 -1
- package/dist/cjs/src/client/v2/algod/suggestedParams.js.map +0 -1
- package/dist/cjs/src/client/v2/algod/supply.js.map +0 -1
- package/dist/cjs/src/client/v2/algod/versions.js.map +0 -1
- package/dist/cjs/src/client/v2/basemodel.js.map +0 -1
- package/dist/cjs/src/client/v2/indexer/indexer.js.map +0 -1
- package/dist/cjs/src/client/v2/indexer/lookupAccountAppLocalStates.js.map +0 -1
- package/dist/cjs/src/client/v2/indexer/lookupAccountAssets.js.map +0 -1
- package/dist/cjs/src/client/v2/indexer/lookupAccountByID.js.map +0 -1
- package/dist/cjs/src/client/v2/indexer/lookupAccountCreatedApplications.js.map +0 -1
- package/dist/cjs/src/client/v2/indexer/lookupAccountCreatedAssets.js.map +0 -1
- package/dist/cjs/src/client/v2/indexer/lookupAccountTransactions.js.map +0 -1
- package/dist/cjs/src/client/v2/indexer/lookupApplicationBoxByIDandName.js.map +0 -1
- package/dist/cjs/src/client/v2/indexer/lookupApplicationLogs.js.map +0 -1
- package/dist/cjs/src/client/v2/indexer/lookupApplications.js.map +0 -1
- package/dist/cjs/src/client/v2/indexer/lookupAssetBalances.js.map +0 -1
- package/dist/cjs/src/client/v2/indexer/lookupAssetByID.js.map +0 -1
- package/dist/cjs/src/client/v2/indexer/lookupAssetTransactions.js +0 -392
- package/dist/cjs/src/client/v2/indexer/lookupAssetTransactions.js.map +0 -1
- package/dist/cjs/src/client/v2/indexer/lookupBlock.js.map +0 -1
- package/dist/cjs/src/client/v2/indexer/lookupTransactionByID.js.map +0 -1
- package/dist/cjs/src/client/v2/indexer/makeHealthCheck.js.map +0 -1
- package/dist/cjs/src/client/v2/indexer/models/types.js.map +0 -1
- package/dist/cjs/src/client/v2/indexer/searchAccounts.js.map +0 -1
- package/dist/cjs/src/client/v2/indexer/searchForApplicationBoxes.js.map +0 -1
- package/dist/cjs/src/client/v2/indexer/searchForApplications.js.map +0 -1
- package/dist/cjs/src/client/v2/indexer/searchForAssets.js.map +0 -1
- package/dist/cjs/src/client/v2/indexer/searchForTransactions.js.map +0 -1
- package/dist/cjs/src/client/v2/jsonrequest.js.map +0 -1
- package/dist/cjs/src/client/v2/serviceClient.js.map +0 -1
- package/dist/cjs/src/composer.js.map +0 -1
- package/dist/cjs/src/convert.js.map +0 -1
- package/dist/cjs/src/dryrun.js +0 -300
- package/dist/cjs/src/dryrun.js.map +0 -1
- package/dist/cjs/src/encoding/address.js.map +0 -1
- package/dist/cjs/src/encoding/bigint.js.map +0 -1
- package/dist/cjs/src/encoding/encoding.js.map +0 -1
- package/dist/cjs/src/encoding/uint64.js.map +0 -1
- package/dist/cjs/src/group.js.map +0 -1
- package/dist/cjs/src/logic/langspec.json +0 -2014
- package/dist/cjs/src/logic/logic.js +0 -262
- package/dist/cjs/src/logic/logic.js.map +0 -1
- package/dist/cjs/src/logic/sourcemap.js.map +0 -1
- package/dist/cjs/src/logicTemplates/dynamicfee.js +0 -192
- package/dist/cjs/src/logicTemplates/dynamicfee.js.map +0 -1
- package/dist/cjs/src/logicTemplates/htlc.js +0 -145
- package/dist/cjs/src/logicTemplates/htlc.js.map +0 -1
- package/dist/cjs/src/logicTemplates/index.js +0 -19
- package/dist/cjs/src/logicTemplates/index.js.map +0 -1
- package/dist/cjs/src/logicTemplates/limitorder.js +0 -167
- package/dist/cjs/src/logicTemplates/limitorder.js.map +0 -1
- package/dist/cjs/src/logicTemplates/periodicpayment.js +0 -163
- package/dist/cjs/src/logicTemplates/periodicpayment.js.map +0 -1
- package/dist/cjs/src/logicTemplates/split.js +0 -154
- package/dist/cjs/src/logicTemplates/split.js.map +0 -1
- package/dist/cjs/src/logicTemplates/templates.js +0 -67
- package/dist/cjs/src/logicTemplates/templates.js.map +0 -1
- package/dist/cjs/src/logicsig.js +0 -446
- package/dist/cjs/src/logicsig.js.map +0 -1
- package/dist/cjs/src/main.js +0 -200
- package/dist/cjs/src/main.js.map +0 -1
- package/dist/cjs/src/makeTxn.js +0 -862
- package/dist/cjs/src/makeTxn.js.map +0 -1
- package/dist/cjs/src/mnemonic/mnemonic.js.map +0 -1
- package/dist/cjs/src/mnemonic/wordlists/english.js.map +0 -1
- package/dist/cjs/src/multisig.js.map +0 -1
- package/dist/cjs/src/nacl/naclWrappers.js.map +0 -1
- package/dist/cjs/src/signer.js.map +0 -1
- package/dist/cjs/src/transaction.js.map +0 -1
- package/dist/cjs/src/types/account.js.map +0 -1
- package/dist/cjs/src/types/address.js.map +0 -1
- package/dist/cjs/src/types/blockHeader.js.map +0 -1
- package/dist/cjs/src/types/index.js.map +0 -1
- package/dist/cjs/src/types/intDecoding.js.map +0 -1
- package/dist/cjs/src/types/multisig.js.map +0 -1
- package/dist/cjs/src/types/transactions/application.js.map +0 -1
- package/dist/cjs/src/types/transactions/asset.js.map +0 -1
- package/dist/cjs/src/types/transactions/base.js.map +0 -1
- package/dist/cjs/src/types/transactions/builder.js.map +0 -1
- package/dist/cjs/src/types/transactions/encoded.js.map +0 -1
- package/dist/cjs/src/types/transactions/index.js.map +0 -1
- package/dist/cjs/src/types/transactions/keyreg.js.map +0 -1
- package/dist/cjs/src/types/transactions/payment.js.map +0 -1
- package/dist/cjs/src/types/transactions/stateproof.js.map +0 -1
- package/dist/cjs/src/types/utils.js.map +0 -1
- package/dist/cjs/src/utils/utils.js.map +0 -1
- package/dist/cjs/src/wait.js.map +0 -1
- package/dist/esm/src/abi/abi_type.js.map +0 -1
- package/dist/esm/src/abi/contract.js.map +0 -1
- package/dist/esm/src/abi/index.js.map +0 -1
- package/dist/esm/src/abi/interface.js.map +0 -1
- package/dist/esm/src/abi/method.js.map +0 -1
- package/dist/esm/src/abi/reference.js.map +0 -1
- package/dist/esm/src/abi/transaction.js.map +0 -1
- package/dist/esm/src/account.js.map +0 -1
- package/dist/esm/src/bid.js.map +0 -1
- package/dist/esm/src/boxStorage.js.map +0 -1
- package/dist/esm/src/client/algod.js +0 -295
- package/dist/esm/src/client/algod.js.map +0 -1
- package/dist/esm/src/client/baseHTTPClient.js.map +0 -1
- package/dist/esm/src/client/client.js.map +0 -1
- package/dist/esm/src/client/kmd.js.map +0 -1
- package/dist/esm/src/client/urlTokenBaseHTTPClient.js.map +0 -1
- package/dist/esm/src/client/v2/algod/accountApplicationInformation.js.map +0 -1
- package/dist/esm/src/client/v2/algod/accountAssetInformation.js.map +0 -1
- package/dist/esm/src/client/v2/algod/accountInformation.js.map +0 -1
- package/dist/esm/src/client/v2/algod/algod.js +0 -506
- package/dist/esm/src/client/v2/algod/algod.js.map +0 -1
- package/dist/esm/src/client/v2/algod/block.js.map +0 -1
- package/dist/esm/src/client/v2/algod/compile.js.map +0 -1
- package/dist/esm/src/client/v2/algod/dryrun.js.map +0 -1
- package/dist/esm/src/client/v2/algod/genesis.js.map +0 -1
- package/dist/esm/src/client/v2/algod/getApplicationBoxByName.js.map +0 -1
- package/dist/esm/src/client/v2/algod/getApplicationBoxes.js.map +0 -1
- package/dist/esm/src/client/v2/algod/getApplicationByID.js.map +0 -1
- package/dist/esm/src/client/v2/algod/getAssetByID.js.map +0 -1
- package/dist/esm/src/client/v2/algod/getBlockHash.js.map +0 -1
- package/dist/esm/src/client/v2/algod/getTransactionProof.js.map +0 -1
- package/dist/esm/src/client/v2/algod/healthCheck.js.map +0 -1
- package/dist/esm/src/client/v2/algod/lightBlockHeaderProof.js.map +0 -1
- package/dist/esm/src/client/v2/algod/models/types.js +0 -1998
- package/dist/esm/src/client/v2/algod/models/types.js.map +0 -1
- package/dist/esm/src/client/v2/algod/pendingTransactionInformation.js.map +0 -1
- package/dist/esm/src/client/v2/algod/pendingTransactions.js.map +0 -1
- package/dist/esm/src/client/v2/algod/pendingTransactionsByAddress.js.map +0 -1
- package/dist/esm/src/client/v2/algod/sendRawTransaction.js.map +0 -1
- package/dist/esm/src/client/v2/algod/stateproof.js.map +0 -1
- package/dist/esm/src/client/v2/algod/status.js.map +0 -1
- package/dist/esm/src/client/v2/algod/statusAfterBlock.js.map +0 -1
- package/dist/esm/src/client/v2/algod/suggestedParams.js.map +0 -1
- package/dist/esm/src/client/v2/algod/supply.js.map +0 -1
- package/dist/esm/src/client/v2/algod/versions.js.map +0 -1
- package/dist/esm/src/client/v2/basemodel.js.map +0 -1
- package/dist/esm/src/client/v2/indexer/indexer.js.map +0 -1
- package/dist/esm/src/client/v2/indexer/lookupAccountAppLocalStates.js.map +0 -1
- package/dist/esm/src/client/v2/indexer/lookupAccountAssets.js.map +0 -1
- package/dist/esm/src/client/v2/indexer/lookupAccountByID.js.map +0 -1
- package/dist/esm/src/client/v2/indexer/lookupAccountCreatedApplications.js.map +0 -1
- package/dist/esm/src/client/v2/indexer/lookupAccountCreatedAssets.js.map +0 -1
- package/dist/esm/src/client/v2/indexer/lookupAccountTransactions.js.map +0 -1
- package/dist/esm/src/client/v2/indexer/lookupApplicationBoxByIDandName.js.map +0 -1
- package/dist/esm/src/client/v2/indexer/lookupApplicationLogs.js.map +0 -1
- package/dist/esm/src/client/v2/indexer/lookupApplications.js.map +0 -1
- package/dist/esm/src/client/v2/indexer/lookupAssetBalances.js.map +0 -1
- package/dist/esm/src/client/v2/indexer/lookupAssetByID.js.map +0 -1
- package/dist/esm/src/client/v2/indexer/lookupAssetTransactions.js +0 -386
- package/dist/esm/src/client/v2/indexer/lookupAssetTransactions.js.map +0 -1
- package/dist/esm/src/client/v2/indexer/lookupBlock.js.map +0 -1
- package/dist/esm/src/client/v2/indexer/lookupTransactionByID.js.map +0 -1
- package/dist/esm/src/client/v2/indexer/makeHealthCheck.js.map +0 -1
- package/dist/esm/src/client/v2/indexer/models/types.js.map +0 -1
- package/dist/esm/src/client/v2/indexer/searchAccounts.js.map +0 -1
- package/dist/esm/src/client/v2/indexer/searchForApplicationBoxes.js.map +0 -1
- package/dist/esm/src/client/v2/indexer/searchForApplications.js.map +0 -1
- package/dist/esm/src/client/v2/indexer/searchForAssets.js.map +0 -1
- package/dist/esm/src/client/v2/indexer/searchForTransactions.js.map +0 -1
- package/dist/esm/src/client/v2/jsonrequest.js.map +0 -1
- package/dist/esm/src/client/v2/serviceClient.js.map +0 -1
- package/dist/esm/src/composer.js.map +0 -1
- package/dist/esm/src/convert.js.map +0 -1
- package/dist/esm/src/dryrun.js +0 -295
- package/dist/esm/src/dryrun.js.map +0 -1
- package/dist/esm/src/encoding/address.js.map +0 -1
- package/dist/esm/src/encoding/bigint.js.map +0 -1
- package/dist/esm/src/encoding/encoding.js.map +0 -1
- package/dist/esm/src/encoding/uint64.js.map +0 -1
- package/dist/esm/src/group.js.map +0 -1
- package/dist/esm/src/logic/langspec.json +0 -2014
- package/dist/esm/src/logic/logic.js +0 -249
- package/dist/esm/src/logic/logic.js.map +0 -1
- package/dist/esm/src/logic/sourcemap.js.map +0 -1
- package/dist/esm/src/logicTemplates/dynamicfee.js +0 -192
- package/dist/esm/src/logicTemplates/dynamicfee.js.map +0 -1
- package/dist/esm/src/logicTemplates/htlc.js +0 -145
- package/dist/esm/src/logicTemplates/htlc.js.map +0 -1
- package/dist/esm/src/logicTemplates/index.js +0 -19
- package/dist/esm/src/logicTemplates/index.js.map +0 -1
- package/dist/esm/src/logicTemplates/limitorder.js +0 -167
- package/dist/esm/src/logicTemplates/limitorder.js.map +0 -1
- package/dist/esm/src/logicTemplates/periodicpayment.js +0 -163
- package/dist/esm/src/logicTemplates/periodicpayment.js.map +0 -1
- package/dist/esm/src/logicTemplates/split.js +0 -154
- package/dist/esm/src/logicTemplates/split.js.map +0 -1
- package/dist/esm/src/logicTemplates/templates.js +0 -67
- package/dist/esm/src/logicTemplates/templates.js.map +0 -1
- package/dist/esm/src/logicsig.js +0 -411
- package/dist/esm/src/logicsig.js.map +0 -1
- package/dist/esm/src/main.js +0 -123
- package/dist/esm/src/main.js.map +0 -1
- package/dist/esm/src/makeTxn.js +0 -801
- package/dist/esm/src/makeTxn.js.map +0 -1
- package/dist/esm/src/mnemonic/mnemonic.js.map +0 -1
- package/dist/esm/src/mnemonic/wordlists/english.js.map +0 -1
- package/dist/esm/src/multisig.js.map +0 -1
- package/dist/esm/src/nacl/naclWrappers.js.map +0 -1
- package/dist/esm/src/signer.js.map +0 -1
- package/dist/esm/src/transaction.js.map +0 -1
- package/dist/esm/src/types/account.js.map +0 -1
- package/dist/esm/src/types/address.js.map +0 -1
- package/dist/esm/src/types/blockHeader.js.map +0 -1
- package/dist/esm/src/types/index.js.map +0 -1
- package/dist/esm/src/types/intDecoding.js.map +0 -1
- package/dist/esm/src/types/multisig.js.map +0 -1
- package/dist/esm/src/types/transactions/application.js.map +0 -1
- package/dist/esm/src/types/transactions/asset.js.map +0 -1
- package/dist/esm/src/types/transactions/base.js.map +0 -1
- package/dist/esm/src/types/transactions/builder.js.map +0 -1
- package/dist/esm/src/types/transactions/encoded.js.map +0 -1
- package/dist/esm/src/types/transactions/index.js.map +0 -1
- package/dist/esm/src/types/transactions/keyreg.js.map +0 -1
- package/dist/esm/src/types/transactions/payment.js.map +0 -1
- package/dist/esm/src/types/transactions/stateproof.js.map +0 -1
- package/dist/esm/src/types/utils.js.map +0 -1
- package/dist/esm/src/utils/utils.js.map +0 -1
- package/dist/esm/src/wait.js.map +0 -1
- package/dist/types/src/client/algod.d.ts +0 -162
- package/dist/types/src/client/v2/algod/algod.d.ts +0 -456
- package/dist/types/src/client/v2/algod/models/types.d.ts +0 -1634
- package/dist/types/src/client/v2/indexer/lookupAssetTransactions.d.ts +0 -327
- package/dist/types/src/logic/logic.d.ts +0 -45
- package/dist/types/src/logicTemplates/dynamicfee.d.ts +0 -59
- package/dist/types/src/logicTemplates/htlc.d.ts +0 -51
- package/dist/types/src/logicTemplates/index.d.ts +0 -16
- package/dist/types/src/logicTemplates/limitorder.d.ts +0 -70
- package/dist/types/src/logicTemplates/periodicpayment.d.ts +0 -58
- package/dist/types/src/logicTemplates/split.d.ts +0 -57
- package/dist/types/src/logicTemplates/templates.d.ts +0 -6
- package/dist/types/src/logicsig.d.ts +0 -191
- package/dist/types/src/main.d.ts +0 -90
- package/dist/types/src/makeTxn.d.ts +0 -572
- package/dist/types/src/types/transactions/encoded.d.ts +0 -344
package/src/multisig.ts
ADDED
|
@@ -0,0 +1,495 @@
|
|
|
1
|
+
import * as nacl from './nacl/naclWrappers';
|
|
2
|
+
import * as address from './encoding/address';
|
|
3
|
+
import * as encoding from './encoding/encoding';
|
|
4
|
+
import * as txnBuilder from './transaction';
|
|
5
|
+
import * as utils from './utils/utils';
|
|
6
|
+
import AnyTransaction, { EncodedTransaction } from './types/transactions';
|
|
7
|
+
import { MultisigMetadata } from './types/multisig';
|
|
8
|
+
import {
|
|
9
|
+
EncodedMultisig,
|
|
10
|
+
EncodedSignedTransaction,
|
|
11
|
+
} from './types/transactions/encoded';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
Utilities for manipulating multisig transaction blobs.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
export const MULTISIG_MERGE_LESSTHANTWO_ERROR_MSG =
|
|
18
|
+
'Not enough multisig transactions to merge. Need at least two';
|
|
19
|
+
export const MULTISIG_MERGE_MISMATCH_ERROR_MSG =
|
|
20
|
+
'Cannot merge txs. txIDs differ';
|
|
21
|
+
export const MULTISIG_MERGE_MISMATCH_AUTH_ADDR_MSG =
|
|
22
|
+
'Cannot merge txs. Auth addrs differ';
|
|
23
|
+
export const MULTISIG_MERGE_WRONG_PREIMAGE_ERROR_MSG =
|
|
24
|
+
'Cannot merge txs. Multisig preimages differ';
|
|
25
|
+
export const MULTISIG_MERGE_SIG_MISMATCH_ERROR_MSG =
|
|
26
|
+
'Cannot merge txs. subsigs are mismatched.';
|
|
27
|
+
const MULTISIG_KEY_NOT_EXIST_ERROR_MSG = 'Key does not exist';
|
|
28
|
+
export const MULTISIG_NO_MUTATE_ERROR_MSG =
|
|
29
|
+
'Cannot mutate a multisig field as it would invalidate all existing signatures.';
|
|
30
|
+
export const MULTISIG_USE_PARTIAL_SIGN_ERROR_MSG =
|
|
31
|
+
'Cannot sign a multisig transaction using `signTxn`. Use `partialSignTxn` instead.';
|
|
32
|
+
export const MULTISIG_SIGNATURE_LENGTH_ERROR_MSG =
|
|
33
|
+
'Cannot add multisig signature. Signature is not of the correct length.';
|
|
34
|
+
|
|
35
|
+
interface MultisigOptions {
|
|
36
|
+
rawSig: Uint8Array;
|
|
37
|
+
myPk: Uint8Array;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
interface MultisigMetadataWithPks extends Omit<MultisigMetadata, 'addrs'> {
|
|
41
|
+
pks: Uint8Array[];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* createMultisigTransaction creates a raw, unsigned multisig transaction blob.
|
|
46
|
+
* @param txn - the actual transaction.
|
|
47
|
+
* @param version - multisig version
|
|
48
|
+
* @param threshold - multisig threshold
|
|
49
|
+
* @param pks - ordered list of public keys in this multisig
|
|
50
|
+
* @returns encoded multisig blob
|
|
51
|
+
*/
|
|
52
|
+
export function createMultisigTransaction(
|
|
53
|
+
txn: txnBuilder.Transaction,
|
|
54
|
+
{ version, threshold, addrs }: MultisigMetadata
|
|
55
|
+
) {
|
|
56
|
+
// construct the appendable multisigned transaction format
|
|
57
|
+
const pks = addrs.map((addr) => address.decodeAddress(addr).publicKey);
|
|
58
|
+
const subsigs = pks.map((pk) => ({ pk: Buffer.from(pk) }));
|
|
59
|
+
|
|
60
|
+
const msig: EncodedMultisig = {
|
|
61
|
+
v: version,
|
|
62
|
+
thr: threshold,
|
|
63
|
+
subsig: subsigs,
|
|
64
|
+
};
|
|
65
|
+
const txnForEncoding = txn.get_obj_for_encoding();
|
|
66
|
+
const signedTxn: EncodedSignedTransaction = {
|
|
67
|
+
msig,
|
|
68
|
+
txn: txnForEncoding,
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
// if the address of this multisig is different from the transaction sender,
|
|
72
|
+
// we need to add the auth-addr field
|
|
73
|
+
const msigAddr = address.fromMultisigPreImg({
|
|
74
|
+
version,
|
|
75
|
+
threshold,
|
|
76
|
+
pks,
|
|
77
|
+
});
|
|
78
|
+
if (
|
|
79
|
+
address.encodeAddress(txnForEncoding.snd) !==
|
|
80
|
+
address.encodeAddress(msigAddr)
|
|
81
|
+
) {
|
|
82
|
+
signedTxn.sgnr = Buffer.from(msigAddr);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
return new Uint8Array(encoding.encode(signedTxn));
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* createMultisigTransactionWithSignature creates a multisig transaction blob with an included signature.
|
|
90
|
+
* @param txn - the actual transaction to sign.
|
|
91
|
+
* @param rawSig - a Buffer raw signature of that transaction
|
|
92
|
+
* @param myPk - a public key that corresponds with rawSig
|
|
93
|
+
* @param version - multisig version
|
|
94
|
+
* @param threshold - multisig threshold
|
|
95
|
+
* @param pks - ordered list of public keys in this multisig
|
|
96
|
+
* @returns encoded multisig blob
|
|
97
|
+
*/
|
|
98
|
+
function createMultisigTransactionWithSignature(
|
|
99
|
+
txn: txnBuilder.Transaction,
|
|
100
|
+
{ rawSig, myPk }: MultisigOptions,
|
|
101
|
+
{ version, threshold, pks }: MultisigMetadataWithPks
|
|
102
|
+
) {
|
|
103
|
+
// Create an empty encoded multisig transaction
|
|
104
|
+
const encodedMsig = createMultisigTransaction(txn, {
|
|
105
|
+
version,
|
|
106
|
+
threshold,
|
|
107
|
+
addrs: pks.map((pk) => address.encodeAddress(pk)),
|
|
108
|
+
});
|
|
109
|
+
// note: this is not signed yet, but will be shortly
|
|
110
|
+
const signedTxn = encoding.decode(encodedMsig) as EncodedSignedTransaction;
|
|
111
|
+
|
|
112
|
+
let keyExist = false;
|
|
113
|
+
// append the multisig signature to the corresponding public key in the multisig blob
|
|
114
|
+
signedTxn.msig.subsig.forEach((subsig, i) => {
|
|
115
|
+
if (nacl.bytesEqual(subsig.pk, myPk)) {
|
|
116
|
+
keyExist = true;
|
|
117
|
+
signedTxn.msig.subsig[i].s = rawSig;
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
if (keyExist === false) {
|
|
121
|
+
throw new Error(MULTISIG_KEY_NOT_EXIST_ERROR_MSG);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// if the address of this multisig is different from the transaction sender,
|
|
125
|
+
// we need to add the auth-addr field
|
|
126
|
+
const msigAddr = address.fromMultisigPreImg({
|
|
127
|
+
version,
|
|
128
|
+
threshold,
|
|
129
|
+
pks,
|
|
130
|
+
});
|
|
131
|
+
if (
|
|
132
|
+
address.encodeAddress(signedTxn.txn.snd) !== address.encodeAddress(msigAddr)
|
|
133
|
+
) {
|
|
134
|
+
signedTxn.sgnr = Buffer.from(msigAddr);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
return new Uint8Array(encoding.encode(signedTxn));
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* MultisigTransaction is a Transaction that also supports creating partially-signed multisig transactions.
|
|
142
|
+
*/
|
|
143
|
+
export class MultisigTransaction extends txnBuilder.Transaction {
|
|
144
|
+
/* eslint-disable class-methods-use-this,@typescript-eslint/no-unused-vars,no-dupe-class-members */
|
|
145
|
+
/**
|
|
146
|
+
* Override inherited method to throw an error, as mutating transactions are prohibited in this context
|
|
147
|
+
*/
|
|
148
|
+
addLease() {
|
|
149
|
+
throw new Error(MULTISIG_NO_MUTATE_ERROR_MSG);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Override inherited method to throw an error, as mutating transactions are prohibited in this context
|
|
154
|
+
*/
|
|
155
|
+
addRekey() {
|
|
156
|
+
throw new Error(MULTISIG_NO_MUTATE_ERROR_MSG);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Override inherited method to throw an error, as traditional signing is not allowed
|
|
161
|
+
*/
|
|
162
|
+
signTxn(sk: Uint8Array): Uint8Array; // This overload ensures that the override has a compatible type definition with the parent method
|
|
163
|
+
signTxn(sk: any): any {
|
|
164
|
+
throw new Error(MULTISIG_USE_PARTIAL_SIGN_ERROR_MSG);
|
|
165
|
+
}
|
|
166
|
+
/* eslint-enable class-methods-use-this,@typescript-eslint/no-unused-vars,no-dupe-class-members */
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* partialSignTxn partially signs this transaction and returns a partially-signed multisig transaction,
|
|
170
|
+
* encoded with msgpack as a typed array.
|
|
171
|
+
* @param version - multisig version
|
|
172
|
+
* @param threshold - multisig threshold
|
|
173
|
+
* @param pks - multisig public key list, order is important.
|
|
174
|
+
* @param sk - an Algorand secret key to sign with.
|
|
175
|
+
* @returns an encoded, partially signed multisig transaction.
|
|
176
|
+
*/
|
|
177
|
+
partialSignTxn(
|
|
178
|
+
{ version, threshold, pks }: MultisigMetadataWithPks,
|
|
179
|
+
sk: Uint8Array
|
|
180
|
+
) {
|
|
181
|
+
// get signature verifier
|
|
182
|
+
const myPk = nacl.keyPairFromSecretKey(sk).publicKey;
|
|
183
|
+
return createMultisigTransactionWithSignature(
|
|
184
|
+
this,
|
|
185
|
+
{ rawSig: this.rawSignTxn(sk), myPk },
|
|
186
|
+
{ version, threshold, pks }
|
|
187
|
+
);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* partialSignWithMultisigSignature partially signs this transaction with an external raw multisig signature and returns
|
|
192
|
+
* a partially-signed multisig transaction, encoded with msgpack as a typed array.
|
|
193
|
+
* @param metadata - multisig metadata
|
|
194
|
+
* @param signerAddr - address of the signer
|
|
195
|
+
* @param signature - raw multisig signature
|
|
196
|
+
* @returns an encoded, partially signed multisig transaction.
|
|
197
|
+
*/
|
|
198
|
+
partialSignWithMultisigSignature(
|
|
199
|
+
metadata: MultisigMetadataWithPks,
|
|
200
|
+
signerAddr: string,
|
|
201
|
+
signature: Uint8Array
|
|
202
|
+
) {
|
|
203
|
+
if (!nacl.isValidSignatureLength(signature.length)) {
|
|
204
|
+
throw new Error(MULTISIG_SIGNATURE_LENGTH_ERROR_MSG);
|
|
205
|
+
}
|
|
206
|
+
return createMultisigTransactionWithSignature(
|
|
207
|
+
this,
|
|
208
|
+
{
|
|
209
|
+
rawSig: signature,
|
|
210
|
+
myPk: address.decodeAddress(signerAddr).publicKey,
|
|
211
|
+
},
|
|
212
|
+
metadata
|
|
213
|
+
);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
// eslint-disable-next-line camelcase
|
|
217
|
+
static from_obj_for_encoding(
|
|
218
|
+
txnForEnc: EncodedTransaction
|
|
219
|
+
): MultisigTransaction {
|
|
220
|
+
return super.from_obj_for_encoding(txnForEnc) as MultisigTransaction;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* mergeMultisigTransactions takes a list of multisig transaction blobs, and merges them.
|
|
226
|
+
* @param multisigTxnBlobs - a list of blobs representing encoded multisig txns
|
|
227
|
+
* @returns typed array msg-pack encoded multisig txn
|
|
228
|
+
*/
|
|
229
|
+
export function mergeMultisigTransactions(multisigTxnBlobs: Uint8Array[]) {
|
|
230
|
+
if (multisigTxnBlobs.length < 2) {
|
|
231
|
+
throw new Error(MULTISIG_MERGE_LESSTHANTWO_ERROR_MSG);
|
|
232
|
+
}
|
|
233
|
+
const refSigTx = encoding.decode(
|
|
234
|
+
multisigTxnBlobs[0]
|
|
235
|
+
) as EncodedSignedTransaction;
|
|
236
|
+
const refTxID = MultisigTransaction.from_obj_for_encoding(
|
|
237
|
+
refSigTx.txn
|
|
238
|
+
).txID();
|
|
239
|
+
const refAuthAddr = refSigTx.sgnr
|
|
240
|
+
? address.encodeAddress(refSigTx.sgnr)
|
|
241
|
+
: undefined;
|
|
242
|
+
const refPreImage = {
|
|
243
|
+
version: refSigTx.msig.v,
|
|
244
|
+
threshold: refSigTx.msig.thr,
|
|
245
|
+
pks: refSigTx.msig.subsig.map((subsig) => subsig.pk),
|
|
246
|
+
};
|
|
247
|
+
const refMsigAddr = address.encodeAddress(
|
|
248
|
+
address.fromMultisigPreImg(refPreImage)
|
|
249
|
+
);
|
|
250
|
+
|
|
251
|
+
const newSubsigs = refSigTx.msig.subsig.map((sig) => ({ ...sig }));
|
|
252
|
+
for (let i = 1; i < multisigTxnBlobs.length; i++) {
|
|
253
|
+
const unisig = encoding.decode(
|
|
254
|
+
multisigTxnBlobs[i]
|
|
255
|
+
) as EncodedSignedTransaction;
|
|
256
|
+
|
|
257
|
+
const unisigAlgoTxn = MultisigTransaction.from_obj_for_encoding(unisig.txn);
|
|
258
|
+
if (unisigAlgoTxn.txID() !== refTxID) {
|
|
259
|
+
throw new Error(MULTISIG_MERGE_MISMATCH_ERROR_MSG);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
const authAddr = unisig.sgnr
|
|
263
|
+
? address.encodeAddress(unisig.sgnr)
|
|
264
|
+
: undefined;
|
|
265
|
+
if (refAuthAddr !== authAddr) {
|
|
266
|
+
throw new Error(MULTISIG_MERGE_MISMATCH_AUTH_ADDR_MSG);
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
// check multisig has same preimage as reference
|
|
270
|
+
if (unisig.msig.subsig.length !== refSigTx.msig.subsig.length) {
|
|
271
|
+
throw new Error(MULTISIG_MERGE_WRONG_PREIMAGE_ERROR_MSG);
|
|
272
|
+
}
|
|
273
|
+
const preimg: MultisigMetadataWithPks = {
|
|
274
|
+
version: unisig.msig.v,
|
|
275
|
+
threshold: unisig.msig.thr,
|
|
276
|
+
pks: unisig.msig.subsig.map((subsig) => subsig.pk),
|
|
277
|
+
};
|
|
278
|
+
const msgigAddr = address.encodeAddress(address.fromMultisigPreImg(preimg));
|
|
279
|
+
if (refMsigAddr !== msgigAddr) {
|
|
280
|
+
throw new Error(MULTISIG_MERGE_WRONG_PREIMAGE_ERROR_MSG);
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
// now, we can merge
|
|
284
|
+
unisig.msig.subsig.forEach((uniSubsig, index) => {
|
|
285
|
+
if (!uniSubsig.s) return;
|
|
286
|
+
const current = newSubsigs[index];
|
|
287
|
+
// we convert the Uint8Arrays uniSubsig.s and current.s to Buffers here because (as
|
|
288
|
+
// of Dec 2020) React overrides the buffer package with an older version that does
|
|
289
|
+
// not support Uint8Arrays in the comparison function. See this thread for more
|
|
290
|
+
// info: https://github.com/algorand/js-algorand-sdk/issues/252
|
|
291
|
+
if (
|
|
292
|
+
current.s &&
|
|
293
|
+
Buffer.compare(Buffer.from(uniSubsig.s), Buffer.from(current.s)) !== 0
|
|
294
|
+
) {
|
|
295
|
+
// mismatch
|
|
296
|
+
throw new Error(MULTISIG_MERGE_SIG_MISMATCH_ERROR_MSG);
|
|
297
|
+
}
|
|
298
|
+
current.s = uniSubsig.s;
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
const msig: EncodedMultisig = {
|
|
302
|
+
v: refSigTx.msig.v,
|
|
303
|
+
thr: refSigTx.msig.thr,
|
|
304
|
+
subsig: newSubsigs,
|
|
305
|
+
};
|
|
306
|
+
const signedTxn: EncodedSignedTransaction = {
|
|
307
|
+
msig,
|
|
308
|
+
txn: refSigTx.txn,
|
|
309
|
+
};
|
|
310
|
+
if (typeof refAuthAddr !== 'undefined') {
|
|
311
|
+
signedTxn.sgnr = Buffer.from(address.decodeAddress(refAuthAddr).publicKey);
|
|
312
|
+
}
|
|
313
|
+
return new Uint8Array(encoding.encode(signedTxn));
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
export function verifyMultisig(
|
|
317
|
+
toBeVerified: Uint8Array,
|
|
318
|
+
msig: EncodedMultisig,
|
|
319
|
+
publicKey: Uint8Array
|
|
320
|
+
) {
|
|
321
|
+
const version = msig.v;
|
|
322
|
+
const threshold = msig.thr;
|
|
323
|
+
const subsigs = msig.subsig;
|
|
324
|
+
|
|
325
|
+
const pks = subsigs.map((subsig) => subsig.pk);
|
|
326
|
+
if (msig.subsig.length < threshold) {
|
|
327
|
+
return false;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
let pk: Uint8Array;
|
|
331
|
+
try {
|
|
332
|
+
pk = address.fromMultisigPreImg({ version, threshold, pks });
|
|
333
|
+
} catch (e) {
|
|
334
|
+
return false;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
if (!utils.arrayEqual(pk, publicKey)) {
|
|
338
|
+
return false;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
let counter = 0;
|
|
342
|
+
for (const subsig of subsigs) {
|
|
343
|
+
if (subsig.s !== undefined) {
|
|
344
|
+
counter += 1;
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
if (counter < threshold) {
|
|
348
|
+
return false;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
let verifiedCounter = 0;
|
|
352
|
+
for (const subsig of subsigs) {
|
|
353
|
+
if (subsig.s !== undefined) {
|
|
354
|
+
if (nacl.verify(toBeVerified, subsig.s, subsig.pk)) {
|
|
355
|
+
verifiedCounter += 1;
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
if (verifiedCounter < threshold) {
|
|
361
|
+
return false;
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
return true;
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
/**
|
|
368
|
+
* signMultisigTransaction takes a raw transaction (see signTransaction), a multisig preimage, a secret key, and returns
|
|
369
|
+
* a multisig transaction, which is a blob representing a transaction and multisignature account preimage. The returned
|
|
370
|
+
* multisig txn can accumulate additional signatures through mergeMultisigTransactions or appendSignMultisigTransaction.
|
|
371
|
+
* @param txn - object with either payment or key registration fields
|
|
372
|
+
* @param version - multisig version
|
|
373
|
+
* @param threshold - multisig threshold
|
|
374
|
+
* @param addrs - a list of Algorand addresses representing possible signers for this multisig. Order is important.
|
|
375
|
+
* @param sk - Algorand secret key. The corresponding pk should be in the pre image.
|
|
376
|
+
* @returns object containing txID, and blob of partially signed multisig transaction (with multisig preimage information)
|
|
377
|
+
* If the final calculated fee is lower than the protocol minimum fee, the fee will be increased to match the minimum.
|
|
378
|
+
*/
|
|
379
|
+
export function signMultisigTransaction(
|
|
380
|
+
txn: txnBuilder.TransactionLike,
|
|
381
|
+
{ version, threshold, addrs }: MultisigMetadata,
|
|
382
|
+
sk: Uint8Array
|
|
383
|
+
) {
|
|
384
|
+
// check that the from field matches the mSigPreImage. If from field is not populated, fill it in.
|
|
385
|
+
const expectedFromRaw = address.fromMultisigPreImgAddrs({
|
|
386
|
+
version,
|
|
387
|
+
threshold,
|
|
388
|
+
addrs,
|
|
389
|
+
});
|
|
390
|
+
if (!Object.prototype.hasOwnProperty.call(txn, 'from')) {
|
|
391
|
+
// eslint-disable-next-line no-param-reassign
|
|
392
|
+
txn.from = expectedFromRaw;
|
|
393
|
+
}
|
|
394
|
+
// build pks for partialSign
|
|
395
|
+
const pks = addrs.map((addr) => address.decodeAddress(addr).publicKey);
|
|
396
|
+
// `txn` needs to be handled differently if it's a constructed `Transaction` vs a dict of constructor args
|
|
397
|
+
const txnAlreadyBuilt = txn instanceof txnBuilder.Transaction;
|
|
398
|
+
let algoTxn: MultisigTransaction;
|
|
399
|
+
let blob: Uint8Array;
|
|
400
|
+
if (txnAlreadyBuilt) {
|
|
401
|
+
algoTxn = (txn as unknown) as MultisigTransaction;
|
|
402
|
+
blob = MultisigTransaction.prototype.partialSignTxn.call(
|
|
403
|
+
algoTxn,
|
|
404
|
+
{ version, threshold, pks },
|
|
405
|
+
sk
|
|
406
|
+
);
|
|
407
|
+
} else {
|
|
408
|
+
algoTxn = new MultisigTransaction(txn as AnyTransaction);
|
|
409
|
+
blob = algoTxn.partialSignTxn({ version, threshold, pks }, sk);
|
|
410
|
+
}
|
|
411
|
+
return {
|
|
412
|
+
txID: algoTxn.txID().toString(),
|
|
413
|
+
blob,
|
|
414
|
+
};
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
/**
|
|
418
|
+
* appendSignMultisigTransaction takes a multisig transaction blob, and appends our signature to it.
|
|
419
|
+
* While we could derive public key preimagery from the partially-signed multisig transaction,
|
|
420
|
+
* we ask the caller to pass it back in, to ensure they know what they are signing.
|
|
421
|
+
* @param multisigTxnBlob - an encoded multisig txn. Supports non-payment txn types.
|
|
422
|
+
* @param version - multisig version
|
|
423
|
+
* @param threshold - multisig threshold
|
|
424
|
+
* @param addrs - a list of Algorand addresses representing possible signers for this multisig. Order is important.
|
|
425
|
+
* @param sk - Algorand secret key
|
|
426
|
+
* @returns object containing txID, and blob representing encoded multisig txn
|
|
427
|
+
*/
|
|
428
|
+
export function appendSignMultisigTransaction(
|
|
429
|
+
multisigTxnBlob: Uint8Array,
|
|
430
|
+
{ version, threshold, addrs }: MultisigMetadata,
|
|
431
|
+
sk: Uint8Array
|
|
432
|
+
) {
|
|
433
|
+
const pks = addrs.map((addr) => address.decodeAddress(addr).publicKey);
|
|
434
|
+
// obtain underlying txn, sign it, and merge it
|
|
435
|
+
const multisigTxObj = encoding.decode(
|
|
436
|
+
multisigTxnBlob
|
|
437
|
+
) as EncodedSignedTransaction;
|
|
438
|
+
const msigTxn = MultisigTransaction.from_obj_for_encoding(multisigTxObj.txn);
|
|
439
|
+
const partialSignedBlob = msigTxn.partialSignTxn(
|
|
440
|
+
{ version, threshold, pks },
|
|
441
|
+
sk
|
|
442
|
+
);
|
|
443
|
+
return {
|
|
444
|
+
txID: msigTxn.txID().toString(),
|
|
445
|
+
blob: mergeMultisigTransactions([multisigTxnBlob, partialSignedBlob]),
|
|
446
|
+
};
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
/**
|
|
450
|
+
* appendMultisigTransactionSignature takes a multisig transaction blob, and appends a given raw signature to it.
|
|
451
|
+
* This makes it possible to compile a multisig signature using only raw signatures from external methods.
|
|
452
|
+
* @param multisigTxnBlob - an encoded multisig txn. Supports non-payment txn types.
|
|
453
|
+
* @param version - multisig version
|
|
454
|
+
* @param threshold - multisig threshold
|
|
455
|
+
* @param addrs - a list of Algorand addresses representing possible signers for this multisig. Order is important.
|
|
456
|
+
* @param signerAddr - address of the signer
|
|
457
|
+
* @param signature - raw multisig signature
|
|
458
|
+
* @returns object containing txID, and blob representing encoded multisig txn
|
|
459
|
+
*/
|
|
460
|
+
export function appendSignRawMultisigSignature(
|
|
461
|
+
multisigTxnBlob: Uint8Array,
|
|
462
|
+
{ version, threshold, addrs }: MultisigMetadata,
|
|
463
|
+
signerAddr: string,
|
|
464
|
+
signature: Uint8Array
|
|
465
|
+
) {
|
|
466
|
+
const pks = addrs.map((addr) => address.decodeAddress(addr).publicKey);
|
|
467
|
+
// obtain underlying txn, sign it, and merge it
|
|
468
|
+
const multisigTxObj = encoding.decode(
|
|
469
|
+
multisigTxnBlob
|
|
470
|
+
) as EncodedSignedTransaction;
|
|
471
|
+
const msigTxn = MultisigTransaction.from_obj_for_encoding(multisigTxObj.txn);
|
|
472
|
+
const partialSignedBlob = msigTxn.partialSignWithMultisigSignature(
|
|
473
|
+
{ version, threshold, pks },
|
|
474
|
+
signerAddr,
|
|
475
|
+
signature
|
|
476
|
+
);
|
|
477
|
+
return {
|
|
478
|
+
txID: msigTxn.txID().toString(),
|
|
479
|
+
blob: mergeMultisigTransactions([multisigTxnBlob, partialSignedBlob]),
|
|
480
|
+
};
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
/**
|
|
484
|
+
* multisigAddress takes multisig metadata (preimage) and returns the corresponding human readable Algorand address.
|
|
485
|
+
* @param version - multisig version
|
|
486
|
+
* @param threshold - multisig threshold
|
|
487
|
+
* @param addrs - list of Algorand addresses
|
|
488
|
+
*/
|
|
489
|
+
export function multisigAddress({
|
|
490
|
+
version,
|
|
491
|
+
threshold,
|
|
492
|
+
addrs,
|
|
493
|
+
}: MultisigMetadata) {
|
|
494
|
+
return address.fromMultisigPreImgAddrs({ version, threshold, addrs });
|
|
495
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import nacl from 'tweetnacl';
|
|
2
|
+
import sha512 from 'js-sha512';
|
|
3
|
+
|
|
4
|
+
export function genericHash(arr: sha512.Message) {
|
|
5
|
+
return sha512.sha512_256.array(arr);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export function randomBytes(length: number) {
|
|
9
|
+
return nacl.randomBytes(length);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export function keyPairFromSeed(seed: Uint8Array) {
|
|
13
|
+
return nacl.sign.keyPair.fromSeed(seed);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function keyPair() {
|
|
17
|
+
const seed = randomBytes(nacl.box.secretKeyLength);
|
|
18
|
+
return keyPairFromSeed(seed);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export function isValidSignatureLength(len: number) {
|
|
22
|
+
return len === nacl.sign.signatureLength;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export function keyPairFromSecretKey(sk: Uint8Array) {
|
|
26
|
+
return nacl.sign.keyPair.fromSecretKey(sk);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function sign(msg: Uint8Array, secretKey: Uint8Array) {
|
|
30
|
+
return nacl.sign.detached(msg, secretKey);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export function bytesEqual(a: Uint8Array, b: Uint8Array) {
|
|
34
|
+
return nacl.verify(a, b);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export function verify(
|
|
38
|
+
message: Uint8Array,
|
|
39
|
+
signature: Uint8Array,
|
|
40
|
+
verifyKey: Uint8Array
|
|
41
|
+
) {
|
|
42
|
+
return nacl.sign.detached.verify(message, signature, verifyKey);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// constants
|
|
46
|
+
export const PUBLIC_KEY_LENGTH = nacl.sign.publicKeyLength;
|
|
47
|
+
export const SECRET_KEY_LENGTH = nacl.sign.secretKeyLength;
|
|
48
|
+
export const HASH_BYTES_LENGTH = 32;
|
|
49
|
+
export const SEED_BTYES_LENGTH = 32;
|
package/src/signer.ts
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { Transaction } from './transaction';
|
|
2
|
+
import Account from './types/account';
|
|
3
|
+
import { LogicSigAccount, signLogicSigTransactionObject } from './logicsig';
|
|
4
|
+
import { MultisigMetadata } from './types/multisig';
|
|
5
|
+
import { signMultisigTransaction, mergeMultisigTransactions } from './multisig';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* This type represents a function which can sign transactions from an atomic transaction group.
|
|
9
|
+
* @param txnGroup - The atomic group containing transactions to be signed
|
|
10
|
+
* @param indexesToSign - An array of indexes in the atomic transaction group that should be signed
|
|
11
|
+
* @returns A promise which resolves an array of encoded signed transactions. The length of the
|
|
12
|
+
* array will be the same as the length of indexesToSign, and each index i in the array
|
|
13
|
+
* corresponds to the signed transaction from txnGroup[indexesToSign[i]]
|
|
14
|
+
*/
|
|
15
|
+
export type TransactionSigner = (
|
|
16
|
+
txnGroup: Transaction[],
|
|
17
|
+
indexesToSign: number[]
|
|
18
|
+
) => Promise<Uint8Array[]>;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Create a TransactionSigner that can sign transactions for the provided basic Account.
|
|
22
|
+
*/
|
|
23
|
+
export function makeBasicAccountTransactionSigner(
|
|
24
|
+
account: Account
|
|
25
|
+
): TransactionSigner {
|
|
26
|
+
return (txnGroup: Transaction[], indexesToSign: number[]) => {
|
|
27
|
+
const signed: Uint8Array[] = [];
|
|
28
|
+
|
|
29
|
+
for (const index of indexesToSign) {
|
|
30
|
+
signed.push(txnGroup[index].signTxn(account.sk));
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return Promise.resolve(signed);
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Create a TransactionSigner that can sign transactions for the provided LogicSigAccount.
|
|
39
|
+
*/
|
|
40
|
+
export function makeLogicSigAccountTransactionSigner(
|
|
41
|
+
account: LogicSigAccount
|
|
42
|
+
): TransactionSigner {
|
|
43
|
+
return (txnGroup: Transaction[], indexesToSign: number[]) => {
|
|
44
|
+
const signed: Uint8Array[] = [];
|
|
45
|
+
|
|
46
|
+
for (const index of indexesToSign) {
|
|
47
|
+
const { blob } = signLogicSigTransactionObject(txnGroup[index], account);
|
|
48
|
+
signed.push(blob);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return Promise.resolve(signed);
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Create a TransactionSigner that can sign transactions for the provided Multisig account.
|
|
57
|
+
* @param msig - The Multisig account metadata
|
|
58
|
+
* @param sks - An array of private keys belonging to the msig which should sign the transactions.
|
|
59
|
+
*/
|
|
60
|
+
export function makeMultiSigAccountTransactionSigner(
|
|
61
|
+
msig: MultisigMetadata,
|
|
62
|
+
sks: Uint8Array[]
|
|
63
|
+
): TransactionSigner {
|
|
64
|
+
return (txnGroup: Transaction[], indexesToSign: number[]) => {
|
|
65
|
+
const signed: Uint8Array[] = [];
|
|
66
|
+
|
|
67
|
+
for (const index of indexesToSign) {
|
|
68
|
+
const txn = txnGroup[index];
|
|
69
|
+
const partialSigs: Uint8Array[] = [];
|
|
70
|
+
|
|
71
|
+
for (const sk of sks) {
|
|
72
|
+
const { blob } = signMultisigTransaction(txn, msig, sk);
|
|
73
|
+
partialSigs.push(blob);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
signed.push(mergeMultisigTransactions(partialSigs));
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return Promise.resolve(signed);
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/** Represents an unsigned transactions and a signer that can authorize that transaction. */
|
|
84
|
+
export interface TransactionWithSigner {
|
|
85
|
+
/** An unsigned transaction */
|
|
86
|
+
txn: Transaction;
|
|
87
|
+
/** A transaction signer that can authorize txn */
|
|
88
|
+
signer: TransactionSigner;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Check if a value conforms to the TransactionWithSigner structure.
|
|
93
|
+
* @param value - The value to check.
|
|
94
|
+
* @returns True if an only if the value has the structure of a TransactionWithSigner.
|
|
95
|
+
*/
|
|
96
|
+
export function isTransactionWithSigner(
|
|
97
|
+
value: any
|
|
98
|
+
): value is TransactionWithSigner {
|
|
99
|
+
return (
|
|
100
|
+
typeof value === 'object' &&
|
|
101
|
+
Object.keys(value).length === 2 &&
|
|
102
|
+
typeof value.txn === 'object' &&
|
|
103
|
+
typeof value.signer === 'function'
|
|
104
|
+
);
|
|
105
|
+
}
|