algosdk 1.23.2 → 1.24.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 +4 -4
- package/dist/browser/algosdk.min.js +1 -1
- package/dist/browser/algosdk.min.js.map +1 -1
- package/dist/cjs/abi/abi_type.js +693 -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}/algod.js +0 -0
- package/dist/cjs/client/algod.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/{src/client → client}/v2/algod/algod.js +0 -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 +2047 -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/{src/client → client}/v2/indexer/lookupAssetTransactions.js +0 -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/{src/dryrun.js → dryrun.js} +0 -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}/langspec.json +0 -0
- package/dist/cjs/{src/logic → logic}/logic.js +0 -0
- package/dist/cjs/logic/logic.js.map +1 -0
- package/dist/cjs/{src/logic → logic}/sourcemap.js +0 -0
- package/dist/cjs/logic/sourcemap.js.map +1 -0
- package/dist/cjs/{src/logicTemplates → logicTemplates}/dynamicfee.js +0 -0
- package/dist/cjs/logicTemplates/dynamicfee.js.map +1 -0
- package/dist/cjs/{src/logicTemplates → logicTemplates}/htlc.js +0 -0
- package/dist/cjs/logicTemplates/htlc.js.map +1 -0
- package/dist/cjs/{src/logicTemplates → logicTemplates}/index.js +0 -0
- package/dist/cjs/logicTemplates/index.js.map +1 -0
- package/dist/cjs/{src/logicTemplates → logicTemplates}/limitorder.js +0 -0
- package/dist/cjs/logicTemplates/limitorder.js.map +1 -0
- package/dist/cjs/{src/logicTemplates → logicTemplates}/periodicpayment.js +0 -0
- package/dist/cjs/logicTemplates/periodicpayment.js.map +1 -0
- package/dist/cjs/{src/logicTemplates → logicTemplates}/split.js +0 -0
- package/dist/cjs/logicTemplates/split.js.map +1 -0
- package/dist/cjs/{src/logicTemplates → logicTemplates}/templates.js +0 -0
- package/dist/cjs/logicTemplates/templates.js.map +1 -0
- package/dist/cjs/{src/logicsig.js → logicsig.js} +0 -0
- package/dist/cjs/logicsig.js.map +1 -0
- package/dist/cjs/{src/main.js → main.js} +0 -0
- package/dist/cjs/main.js.map +1 -0
- package/dist/cjs/{src/makeTxn.js → makeTxn.js} +0 -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/multisig.js +398 -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/abi/abi_type.js +680 -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}/algod.js +0 -0
- package/dist/esm/client/algod.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/{src/client → client}/v2/algod/algod.js +0 -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 +1998 -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/{src/client → client}/v2/indexer/lookupAssetTransactions.js +0 -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/{src/dryrun.js → dryrun.js} +0 -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}/langspec.json +0 -0
- package/dist/esm/{src/logic → logic}/logic.js +0 -0
- package/dist/esm/logic/logic.js.map +1 -0
- package/dist/esm/{src/logic → logic}/sourcemap.js +0 -0
- package/dist/esm/logic/sourcemap.js.map +1 -0
- package/dist/esm/{src/logicTemplates → logicTemplates}/dynamicfee.js +0 -0
- package/dist/esm/logicTemplates/dynamicfee.js.map +1 -0
- package/dist/esm/{src/logicTemplates → logicTemplates}/htlc.js +0 -0
- package/dist/esm/logicTemplates/htlc.js.map +1 -0
- package/dist/esm/{src/logicTemplates → logicTemplates}/index.js +0 -0
- package/dist/esm/logicTemplates/index.js.map +1 -0
- package/dist/esm/{src/logicTemplates → logicTemplates}/limitorder.js +0 -0
- package/dist/esm/logicTemplates/limitorder.js.map +1 -0
- package/dist/esm/{src/logicTemplates → logicTemplates}/periodicpayment.js +0 -0
- package/dist/esm/logicTemplates/periodicpayment.js.map +1 -0
- package/dist/esm/{src/logicTemplates → logicTemplates}/split.js +0 -0
- package/dist/esm/logicTemplates/split.js.map +1 -0
- package/dist/esm/{src/logicTemplates → logicTemplates}/templates.js +0 -0
- package/dist/esm/logicTemplates/templates.js.map +1 -0
- package/dist/esm/{src/logicsig.js → logicsig.js} +0 -0
- package/dist/esm/logicsig.js.map +1 -0
- package/dist/esm/{src/main.js → main.js} +0 -0
- package/dist/esm/main.js.map +1 -0
- package/dist/esm/{src/makeTxn.js → makeTxn.js} +0 -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/multisig.js +364 -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}/algod.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/{src/client → client}/v2/algod/algod.d.ts +0 -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 +1634 -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/{src/client → client}/v2/indexer/lookupAssetTransactions.d.ts +0 -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}/logic.d.ts +0 -0
- package/dist/types/{src/logic → logic}/sourcemap.d.ts +0 -0
- package/dist/types/{src/logicTemplates → logicTemplates}/dynamicfee.d.ts +0 -0
- package/dist/types/{src/logicTemplates → logicTemplates}/htlc.d.ts +0 -0
- package/dist/types/{src/logicTemplates → logicTemplates}/index.d.ts +0 -0
- package/dist/types/{src/logicTemplates → logicTemplates}/limitorder.d.ts +0 -0
- package/dist/types/{src/logicTemplates → logicTemplates}/periodicpayment.d.ts +0 -0
- package/dist/types/{src/logicTemplates → logicTemplates}/split.d.ts +0 -0
- package/dist/types/{src/logicTemplates → logicTemplates}/templates.d.ts +0 -0
- package/dist/types/{src/logicsig.d.ts → logicsig.d.ts} +0 -0
- package/dist/types/{src/main.d.ts → main.d.ts} +0 -0
- package/dist/types/{src/makeTxn.d.ts → makeTxn.d.ts} +0 -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/multisig.d.ts +125 -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/{src/types → types}/transactions/encoded.d.ts +0 -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/algod.js +365 -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 +3662 -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 +406 -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/langspec.json +2014 -0
- package/src/logic/logic.ts +316 -0
- package/src/logic/sourcemap.ts +67 -0
- package/src/logicTemplates/dynamicfee.js +219 -0
- package/src/logicTemplates/htlc.js +165 -0
- package/src/logicTemplates/index.js +20 -0
- package/src/logicTemplates/limitorder.js +227 -0
- package/src/logicTemplates/periodicpayment.js +208 -0
- package/src/logicTemplates/split.js +208 -0
- package/src/logicTemplates/templates.js +78 -0
- package/src/logicsig.ts +523 -0
- package/src/main.ts +185 -0
- package/src/makeTxn.ts +1871 -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 +423 -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 +0 -693
- 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.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.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 -2033
- 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.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.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/logic.js.map +0 -1
- package/dist/cjs/src/logic/sourcemap.js.map +0 -1
- package/dist/cjs/src/logicTemplates/dynamicfee.js.map +0 -1
- package/dist/cjs/src/logicTemplates/htlc.js.map +0 -1
- package/dist/cjs/src/logicTemplates/index.js.map +0 -1
- package/dist/cjs/src/logicTemplates/limitorder.js.map +0 -1
- package/dist/cjs/src/logicTemplates/periodicpayment.js.map +0 -1
- package/dist/cjs/src/logicTemplates/split.js.map +0 -1
- package/dist/cjs/src/logicTemplates/templates.js.map +0 -1
- package/dist/cjs/src/logicsig.js.map +0 -1
- package/dist/cjs/src/main.js.map +0 -1
- 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 +0 -398
- 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 +0 -680
- 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.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.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 -1984
- 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.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.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/logic.js.map +0 -1
- package/dist/esm/src/logic/sourcemap.js.map +0 -1
- package/dist/esm/src/logicTemplates/dynamicfee.js.map +0 -1
- package/dist/esm/src/logicTemplates/htlc.js.map +0 -1
- package/dist/esm/src/logicTemplates/index.js.map +0 -1
- package/dist/esm/src/logicTemplates/limitorder.js.map +0 -1
- package/dist/esm/src/logicTemplates/periodicpayment.js.map +0 -1
- package/dist/esm/src/logicTemplates/split.js.map +0 -1
- package/dist/esm/src/logicTemplates/templates.js.map +0 -1
- package/dist/esm/src/logicsig.js.map +0 -1
- package/dist/esm/src/main.js.map +0 -1
- 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 +0 -364
- 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/v2/algod/models/types.d.ts +0 -1612
- package/dist/types/src/multisig.d.ts +0 -125
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
const sha256 = require('js-sha256');
|
|
2
|
+
const { keccak256 } = require('js-sha3');
|
|
3
|
+
const logic = require('../logic/logic');
|
|
4
|
+
const logicSig = require('../logicsig');
|
|
5
|
+
const templates = require('./templates');
|
|
6
|
+
const transaction = require('../transaction');
|
|
7
|
+
|
|
8
|
+
class HTLC {
|
|
9
|
+
/**
|
|
10
|
+
* HTLC allows a user to receive the Algo prior to a deadline (in terms of a round) by proving a knowledge
|
|
11
|
+
* of a special value or to forfeit the ability to claim, returning it to the payer.
|
|
12
|
+
* This contract is usually used to perform cross-chained atomic swaps
|
|
13
|
+
*
|
|
14
|
+
* More formally -
|
|
15
|
+
* Algos can be transferred under only two circumstances:
|
|
16
|
+
* 1. To receiver if hash_function(arg_0) = hash_value
|
|
17
|
+
* 2. To owner if txn.FirstValid > expiry_round
|
|
18
|
+
* ...
|
|
19
|
+
*
|
|
20
|
+
* @deprecated This feature will be removed in v2.
|
|
21
|
+
*
|
|
22
|
+
*Parameters
|
|
23
|
+
*----------
|
|
24
|
+
* @param {string} owner: an address that can receive the asset after the expiry round
|
|
25
|
+
* @param {string} receiver: address to receive Algos
|
|
26
|
+
* @param {string} hashFunction: the hash function to be used (must be either sha256 or keccak256)
|
|
27
|
+
* @param {string} hashImage: the hash image in base64
|
|
28
|
+
* @param {int} expiryRound: the round on which the assets can be transferred back to owner
|
|
29
|
+
* @param {int} maxFee: the maximum fee that can be paid to the network by the account
|
|
30
|
+
* @returns {HTLC}
|
|
31
|
+
*/
|
|
32
|
+
constructor(owner, receiver, hashFunction, hashImage, expiryRound, maxFee) {
|
|
33
|
+
// don't need to validate owner, receiver - they'll be validated by template.insert
|
|
34
|
+
if (!Number.isSafeInteger(expiryRound) || expiryRound < 0)
|
|
35
|
+
throw Error(
|
|
36
|
+
'expiryRound must be a positive number and smaller than 2^53-1'
|
|
37
|
+
);
|
|
38
|
+
if (!Number.isSafeInteger(maxFee) || maxFee < 0)
|
|
39
|
+
throw Error('maxFee must be a positive number and smaller than 2^53-1');
|
|
40
|
+
|
|
41
|
+
let referenceProgramB64 = '';
|
|
42
|
+
if (hashFunction === 'sha256') {
|
|
43
|
+
referenceProgramB64 =
|
|
44
|
+
'ASAECAEACSYDIOaalh5vLV96yGYHkmVSvpgjXtMzY8qIkYu5yTipFbb5IH+DsWV/8fxTuS3BgUih1l38LUsfo9Z3KErd0gASbZBpIP68oLsUSlpOp7Q4pGgayA5soQW8tgf8VlMlyVaV9qITMQEiDjEQIxIQMQcyAxIQMQgkEhAxCSgSLQEpEhAxCSoSMQIlDRAREA==';
|
|
45
|
+
} else if (hashFunction === 'keccak256') {
|
|
46
|
+
referenceProgramB64 =
|
|
47
|
+
'ASAECAEACSYDIOaalh5vLV96yGYHkmVSvpgjXtMzY8qIkYu5yTipFbb5IH+DsWV/8fxTuS3BgUih1l38LUsfo9Z3KErd0gASbZBpIP68oLsUSlpOp7Q4pGgayA5soQW8tgf8VlMlyVaV9qITMQEiDjEQIxIQMQcyAxIQMQgkEhAxCSgSLQIpEhAxCSoSMQIlDRAREA==';
|
|
48
|
+
} else {
|
|
49
|
+
throw Error('hash function unrecognized');
|
|
50
|
+
}
|
|
51
|
+
// validate hashImage length
|
|
52
|
+
const hashImageBytes = Buffer.from(hashImage, 'base64');
|
|
53
|
+
if (hashImageBytes.length !== 32)
|
|
54
|
+
throw Error('hash image must be 32 bytes');
|
|
55
|
+
|
|
56
|
+
const referenceProgramBytes = Buffer.from(referenceProgramB64, 'base64');
|
|
57
|
+
const referenceOffsets = [
|
|
58
|
+
3 /* expiryRound */,
|
|
59
|
+
6 /* receiver */,
|
|
60
|
+
10 /* hashImage */,
|
|
61
|
+
42 /* owner */,
|
|
62
|
+
76,
|
|
63
|
+
];
|
|
64
|
+
const injectionVector = [maxFee, expiryRound, receiver, hashImage, owner];
|
|
65
|
+
const injectionTypes = [
|
|
66
|
+
templates.valTypes.INT,
|
|
67
|
+
templates.valTypes.INT,
|
|
68
|
+
templates.valTypes.ADDRESS,
|
|
69
|
+
templates.valTypes.BASE64,
|
|
70
|
+
templates.valTypes.ADDRESS,
|
|
71
|
+
];
|
|
72
|
+
const injectedBytes = templates.inject(
|
|
73
|
+
referenceProgramBytes,
|
|
74
|
+
referenceOffsets,
|
|
75
|
+
injectionVector,
|
|
76
|
+
injectionTypes
|
|
77
|
+
);
|
|
78
|
+
this.programBytes = injectedBytes;
|
|
79
|
+
const lsig = new logicSig.LogicSig(injectedBytes, undefined);
|
|
80
|
+
this.address = lsig.address();
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* returns the program bytes
|
|
85
|
+
* @returns {Uint8Array}
|
|
86
|
+
*/
|
|
87
|
+
getProgram() {
|
|
88
|
+
return this.programBytes;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* returns the string address of the contract
|
|
93
|
+
* @returns {string}
|
|
94
|
+
*/
|
|
95
|
+
getAddress() {
|
|
96
|
+
return this.address;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* signTransactionWithHTLCUnlock accepts a transaction, such as a payment, and builds the HTLC-unlocking signature around that transaction
|
|
102
|
+
*
|
|
103
|
+
* @deprecated This feature will be removed in v2.
|
|
104
|
+
*
|
|
105
|
+
* @param {Uint8Array} contract : byte representation of the HTLC
|
|
106
|
+
* @param {Object} txn dictionary containing constructor arguments for a transaction
|
|
107
|
+
* @param {string} preImageAsBase64 : preimage of the hash as base64 string
|
|
108
|
+
*
|
|
109
|
+
* @returns {Object} Object containing txID and blob representing signed transaction.
|
|
110
|
+
* @throws error on validation failure
|
|
111
|
+
*/
|
|
112
|
+
function signTransactionWithHTLCUnlock(contract, txn, preImageAsBase64) {
|
|
113
|
+
const preImageBytes = Buffer.from(preImageAsBase64, 'base64');
|
|
114
|
+
|
|
115
|
+
// hash validation
|
|
116
|
+
const readResult = logic.readProgram(contract, undefined);
|
|
117
|
+
const ints = readResult[0];
|
|
118
|
+
const byteArrays = readResult[1];
|
|
119
|
+
const expectedHashedOutput = byteArrays[1];
|
|
120
|
+
const hashFunction = contract[contract.length - 15];
|
|
121
|
+
if (hashFunction === 1) {
|
|
122
|
+
const hash = sha256.create();
|
|
123
|
+
hash.update(preImageBytes);
|
|
124
|
+
const actualHashedOutput = Buffer.from(hash.hex(), 'hex');
|
|
125
|
+
if (!actualHashedOutput.equals(expectedHashedOutput)) {
|
|
126
|
+
throw new Error(
|
|
127
|
+
'sha256 hash of preimage did not match stored contract hash'
|
|
128
|
+
);
|
|
129
|
+
}
|
|
130
|
+
} else if (hashFunction === 2) {
|
|
131
|
+
const hash = keccak256.create();
|
|
132
|
+
hash.update(preImageBytes);
|
|
133
|
+
const actualHashedOutput = Buffer.from(hash.hex(), 'hex');
|
|
134
|
+
if (!actualHashedOutput.equals(expectedHashedOutput)) {
|
|
135
|
+
throw new Error(
|
|
136
|
+
'keccak256 hash of preimage did not match stored contract hash'
|
|
137
|
+
);
|
|
138
|
+
}
|
|
139
|
+
} else {
|
|
140
|
+
throw new Error('hash function in contract unrecognized');
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
const args = [preImageBytes]; // array of one element, the Uint8Array preimage
|
|
144
|
+
|
|
145
|
+
const lsig = new logicSig.LogicSig(contract, args);
|
|
146
|
+
// clear out receiver just in case
|
|
147
|
+
// eslint-disable-next-line no-param-reassign
|
|
148
|
+
delete txn.to;
|
|
149
|
+
|
|
150
|
+
const maxFee = ints[0];
|
|
151
|
+
// check fee
|
|
152
|
+
const tempTxn = new transaction.Transaction(txn);
|
|
153
|
+
if (tempTxn.fee > maxFee) {
|
|
154
|
+
throw new Error(
|
|
155
|
+
`final fee of payment transaction${tempTxn.fee.toString()}greater than transaction max fee${maxFee.toString()}`
|
|
156
|
+
);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
return logicSig.signLogicSigTransaction(txn, lsig);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
module.exports = {
|
|
163
|
+
HTLC,
|
|
164
|
+
signTransactionWithHTLCUnlock,
|
|
165
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const dynamicFeeTemplate = require('./dynamicfee');
|
|
2
|
+
const htlcTemplate = require('./htlc');
|
|
3
|
+
const limitOrderTemplate = require('./limitorder');
|
|
4
|
+
const splitTemplate = require('./split');
|
|
5
|
+
const periodicPayTemplate = require('./periodicpayment');
|
|
6
|
+
|
|
7
|
+
module.exports = {
|
|
8
|
+
DynamicFee: dynamicFeeTemplate.DynamicFee,
|
|
9
|
+
getDynamicFeeTransactions: dynamicFeeTemplate.getDynamicFeeTransactions,
|
|
10
|
+
signDynamicFee: dynamicFeeTemplate.signDynamicFee,
|
|
11
|
+
HTLC: htlcTemplate.HTLC,
|
|
12
|
+
signTransactionWithHTLCUnlock: htlcTemplate.signTransactionWithHTLCUnlock,
|
|
13
|
+
LimitOrder: limitOrderTemplate.LimitOrder,
|
|
14
|
+
getSwapAssetsTransaction: limitOrderTemplate.getSwapAssetsTransaction,
|
|
15
|
+
Split: splitTemplate.Split,
|
|
16
|
+
getSplitFundsTransaction: splitTemplate.getSplitFundsTransaction,
|
|
17
|
+
PeriodicPayment: periodicPayTemplate.PeriodicPayment,
|
|
18
|
+
getPeriodicPaymentWithdrawalTransaction:
|
|
19
|
+
periodicPayTemplate.getPeriodicPaymentWithdrawalTransaction,
|
|
20
|
+
};
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
const address = require('../encoding/address');
|
|
2
|
+
const makeTxn = require('../makeTxn');
|
|
3
|
+
const group = require('../group');
|
|
4
|
+
const logic = require('../logic/logic');
|
|
5
|
+
const logicSig = require('../logicsig');
|
|
6
|
+
const nacl = require('../nacl/naclWrappers');
|
|
7
|
+
const templates = require('./templates');
|
|
8
|
+
const utils = require('../utils/utils');
|
|
9
|
+
|
|
10
|
+
class LimitOrder {
|
|
11
|
+
/**
|
|
12
|
+
* MakeLimitOrder allows a user to exchange some number of assets for some number of algos.
|
|
13
|
+
* Fund the contract with some number of Algos to limit the maximum number of
|
|
14
|
+
* Algos you're willing to trade for some other asset.
|
|
15
|
+
*
|
|
16
|
+
* Works on two cases:
|
|
17
|
+
* * trading Algos for some other asset
|
|
18
|
+
* * closing out Algos back to the originator after a timeout
|
|
19
|
+
*
|
|
20
|
+
* trade case, a 2 transaction group:
|
|
21
|
+
* gtxn[0] (this txn) Algos from Me to Other
|
|
22
|
+
* gtxn[1] asset from Other to Me
|
|
23
|
+
*
|
|
24
|
+
* We want to get _at least_ some amount of the other asset per our Algos
|
|
25
|
+
* gtxn[1].AssetAmount / gtxn[0].Amount >= N / D
|
|
26
|
+
* ===
|
|
27
|
+
* gtxn[1].AssetAmount * D >= gtxn[0].Amount * N
|
|
28
|
+
*
|
|
29
|
+
* close-out case:
|
|
30
|
+
* txn alone, close out value after timeout
|
|
31
|
+
*
|
|
32
|
+
* @deprecated This class will be removed in v2.
|
|
33
|
+
*
|
|
34
|
+
* Constructor Parameters:
|
|
35
|
+
* @param {string} owner: the address to refund funds to on timeout
|
|
36
|
+
* @param {int} assetid: the ID of the transferred asset
|
|
37
|
+
* @param {int} ratn: exchange rate (N asset per D Algos, or better)
|
|
38
|
+
* @param {int} ratd: exchange rate (N asset per D Algos, or better)
|
|
39
|
+
* @param {int} expiryRound: the round at which the account expires
|
|
40
|
+
* @param {int} minTrade: the minimum amount (of Algos) to be traded away
|
|
41
|
+
* @param {int} maxFee: maximum fee used by the limit order transaction
|
|
42
|
+
* @returns {LimitOrder}
|
|
43
|
+
*/
|
|
44
|
+
constructor(owner, assetid, ratn, ratd, expiryRound, minTrade, maxFee) {
|
|
45
|
+
// don't need to validate owner - it will be validated by template.insert
|
|
46
|
+
if (!Number.isSafeInteger(assetid) || assetid < 0)
|
|
47
|
+
throw Error('assetid must be a positive number and smaller than 2^53-1');
|
|
48
|
+
if (!Number.isSafeInteger(ratn) || ratn < 0)
|
|
49
|
+
throw Error('ratn must be a positive number and smaller than 2^53-1');
|
|
50
|
+
if (!Number.isSafeInteger(ratd) || ratd < 0)
|
|
51
|
+
throw Error('ratd must be a positive number and smaller than 2^53-1');
|
|
52
|
+
if (!Number.isSafeInteger(expiryRound) || expiryRound < 0)
|
|
53
|
+
throw Error(
|
|
54
|
+
'expiryRound must be a positive number and smaller than 2^53-1'
|
|
55
|
+
);
|
|
56
|
+
if (!Number.isSafeInteger(minTrade) || minTrade < 0)
|
|
57
|
+
throw Error('minTrade must be a positive number and smaller than 2^53-1');
|
|
58
|
+
if (!Number.isSafeInteger(maxFee) || maxFee < 0)
|
|
59
|
+
throw Error('maxFee must be a positive number and smaller than 2^53-1');
|
|
60
|
+
|
|
61
|
+
const referenceProgramB64 =
|
|
62
|
+
'ASAKAAEFAgYEBwgJCiYBIP68oLsUSlpOp7Q4pGgayA5soQW8tgf8VlMlyVaV9qITMRYiEjEQIxIQMQEkDhAyBCMSQABVMgQlEjEIIQQNEDEJMgMSEDMBECEFEhAzAREhBhIQMwEUKBIQMwETMgMSEDMBEiEHHTUCNQExCCEIHTUENQM0ATQDDUAAJDQBNAMSNAI0BA8QQAAWADEJKBIxAiEJDRAxBzIDEhAxCCISEBA=';
|
|
63
|
+
const referenceProgramBytes = Buffer.from(referenceProgramB64, 'base64');
|
|
64
|
+
const referenceOffsets = [
|
|
65
|
+
5 /* minTrade */,
|
|
66
|
+
7 /* assetID */,
|
|
67
|
+
9 /* ratd */,
|
|
68
|
+
10 /* ratn */,
|
|
69
|
+
11 /* expiryRound */,
|
|
70
|
+
12 /* owner */,
|
|
71
|
+
16,
|
|
72
|
+
];
|
|
73
|
+
const injectionVector = [
|
|
74
|
+
maxFee,
|
|
75
|
+
minTrade,
|
|
76
|
+
assetid,
|
|
77
|
+
ratd,
|
|
78
|
+
ratn,
|
|
79
|
+
expiryRound,
|
|
80
|
+
owner,
|
|
81
|
+
];
|
|
82
|
+
const injectionTypes = [
|
|
83
|
+
templates.valTypes.INT,
|
|
84
|
+
templates.valTypes.INT,
|
|
85
|
+
templates.valTypes.INT,
|
|
86
|
+
templates.valTypes.INT,
|
|
87
|
+
templates.valTypes.INT,
|
|
88
|
+
templates.valTypes.INT,
|
|
89
|
+
templates.valTypes.ADDRESS,
|
|
90
|
+
];
|
|
91
|
+
const injectedBytes = templates.inject(
|
|
92
|
+
referenceProgramBytes,
|
|
93
|
+
referenceOffsets,
|
|
94
|
+
injectionVector,
|
|
95
|
+
injectionTypes
|
|
96
|
+
);
|
|
97
|
+
this.programBytes = injectedBytes;
|
|
98
|
+
const lsig = new logicSig.LogicSig(injectedBytes, undefined);
|
|
99
|
+
this.address = lsig.address();
|
|
100
|
+
this.owner = owner;
|
|
101
|
+
this.assetid = assetid;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* returns the program bytes
|
|
106
|
+
* @returns {Uint8Array}
|
|
107
|
+
*/
|
|
108
|
+
getProgram() {
|
|
109
|
+
return this.programBytes;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* returns the string address of the contract
|
|
114
|
+
* @returns {string}
|
|
115
|
+
*/
|
|
116
|
+
getAddress() {
|
|
117
|
+
return this.address;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* returns a group transactions array which transfer funds according to the contract's ratio
|
|
123
|
+
*
|
|
124
|
+
* @deprecated This feature will be removed in v2.
|
|
125
|
+
*
|
|
126
|
+
* @param {Uint8Array} contract: byteform of the contract from the payer
|
|
127
|
+
* @param {int} assetAmount: the amount of assets to be sent
|
|
128
|
+
* @param {int} microAlgoAmount: number of microAlgos to transfer
|
|
129
|
+
* @param {Uint8Array} secretKey: secret key for signing transaction
|
|
130
|
+
* @param {int} fee: the fee per byte to pay in microAlgos
|
|
131
|
+
* @param {int} firstRound: the first round on which these txns will be valid
|
|
132
|
+
* @param {int} lastRound: the last round on which these txns will be valid
|
|
133
|
+
* @param {string} genesisHash: the b64-encoded genesis hash indicating the network for this transaction
|
|
134
|
+
* @returns {Uint8Array}
|
|
135
|
+
* the first payment sends money (Algos) from contract to the recipient (we'll call him Buyer), closing the rest of the account to Owner
|
|
136
|
+
* the second payment sends money (the asset) from Buyer to the Owner
|
|
137
|
+
* these transactions will be rejected if they do not meet the restrictions set by the contract
|
|
138
|
+
* @throws error if arguments fail contract validation
|
|
139
|
+
*/
|
|
140
|
+
function getSwapAssetsTransaction(
|
|
141
|
+
contract,
|
|
142
|
+
assetAmount,
|
|
143
|
+
microAlgoAmount,
|
|
144
|
+
secretKey,
|
|
145
|
+
fee,
|
|
146
|
+
firstRound,
|
|
147
|
+
lastRound,
|
|
148
|
+
genesisHash
|
|
149
|
+
) {
|
|
150
|
+
const buyerKeyPair = nacl.keyPairFromSecretKey(secretKey);
|
|
151
|
+
const buyerAddr = address.encodeAddress(buyerKeyPair.publicKey);
|
|
152
|
+
const programOutputs = logic.readProgram(contract, undefined);
|
|
153
|
+
const ints = programOutputs[0];
|
|
154
|
+
const byteArrays = programOutputs[1];
|
|
155
|
+
|
|
156
|
+
let noCloseRemainder;
|
|
157
|
+
let noAssetRevocationTarget;
|
|
158
|
+
const contractAssetID = ints[6];
|
|
159
|
+
const contractOwner = address.encodeAddress(byteArrays[0]);
|
|
160
|
+
const lsig = logicSig.makeLogicSig(contract, undefined);
|
|
161
|
+
const contractAddress = lsig.address();
|
|
162
|
+
const algosForAssets = makeTxn.makePaymentTxn(
|
|
163
|
+
contractAddress,
|
|
164
|
+
buyerAddr,
|
|
165
|
+
fee,
|
|
166
|
+
microAlgoAmount,
|
|
167
|
+
noCloseRemainder,
|
|
168
|
+
firstRound,
|
|
169
|
+
lastRound,
|
|
170
|
+
undefined,
|
|
171
|
+
genesisHash,
|
|
172
|
+
undefined
|
|
173
|
+
);
|
|
174
|
+
const assetsForAlgos = makeTxn.makeAssetTransferTxn(
|
|
175
|
+
buyerAddr,
|
|
176
|
+
contractOwner,
|
|
177
|
+
noCloseRemainder,
|
|
178
|
+
noAssetRevocationTarget,
|
|
179
|
+
fee,
|
|
180
|
+
assetAmount,
|
|
181
|
+
firstRound,
|
|
182
|
+
lastRound,
|
|
183
|
+
undefined,
|
|
184
|
+
genesisHash,
|
|
185
|
+
undefined,
|
|
186
|
+
contractAssetID
|
|
187
|
+
);
|
|
188
|
+
const txns = [algosForAssets, assetsForAlgos];
|
|
189
|
+
const txGroup = group.assignGroupID(txns);
|
|
190
|
+
|
|
191
|
+
const ratd = ints[7];
|
|
192
|
+
const ratn = ints[8];
|
|
193
|
+
if (assetAmount * ratd < microAlgoAmount * ratn) {
|
|
194
|
+
throw new Error(
|
|
195
|
+
`bad payment ratio, ${assetAmount.toString()}*${ratd.toString()} !>= ${microAlgoAmount.toString()}*${ratn.toString()}`
|
|
196
|
+
);
|
|
197
|
+
}
|
|
198
|
+
const minTrade = ints[4];
|
|
199
|
+
if (microAlgoAmount < minTrade) {
|
|
200
|
+
throw new Error(
|
|
201
|
+
`payment amount ${microAlgoAmount.toString()} less than minimum trade ${minTrade.toString()}`
|
|
202
|
+
);
|
|
203
|
+
}
|
|
204
|
+
const maxFee = ints[2];
|
|
205
|
+
if (txGroup[0].fee > maxFee) {
|
|
206
|
+
throw new Error(
|
|
207
|
+
`final fee of payment transaction ${txGroup[0].fee.toString()} greater than transaction max fee ${maxFee.toString()}`
|
|
208
|
+
);
|
|
209
|
+
}
|
|
210
|
+
if (txGroup[1].fee > maxFee) {
|
|
211
|
+
throw new Error(
|
|
212
|
+
`final fee of asset transaction ${txGroup[1].fee.toString()} greater than transaction max fee ${maxFee.toString()}`
|
|
213
|
+
);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
const algosForAssetsSigned = logicSig.signLogicSigTransactionObject(
|
|
217
|
+
txGroup[0],
|
|
218
|
+
lsig
|
|
219
|
+
);
|
|
220
|
+
const assetsForAlgosSigned = txGroup[1].signTxn(secretKey);
|
|
221
|
+
return utils.concatArrays(algosForAssetsSigned.blob, assetsForAlgosSigned);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
module.exports = {
|
|
225
|
+
LimitOrder,
|
|
226
|
+
getSwapAssetsTransaction,
|
|
227
|
+
};
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
const address = require('../encoding/address');
|
|
2
|
+
const makeTxn = require('../makeTxn');
|
|
3
|
+
const logic = require('../logic/logic');
|
|
4
|
+
const logicSig = require('../logicsig');
|
|
5
|
+
const nacl = require('../nacl/naclWrappers');
|
|
6
|
+
const templates = require('./templates');
|
|
7
|
+
|
|
8
|
+
class PeriodicPayment {
|
|
9
|
+
/**
|
|
10
|
+
* MakePeriodicPayment allows some account to execute periodic withdrawal of funds.
|
|
11
|
+
* This is a contract account.
|
|
12
|
+
*
|
|
13
|
+
* This allows receiver to withdraw amount every
|
|
14
|
+
* period rounds for withdrawWindow after every multiple
|
|
15
|
+
* of period.
|
|
16
|
+
*
|
|
17
|
+
* After expiryRound, all remaining funds in the escrow
|
|
18
|
+
* are available to receiver.
|
|
19
|
+
*
|
|
20
|
+
* @deprecated This class will be removed in v2.
|
|
21
|
+
*
|
|
22
|
+
* Constructor Parameters:
|
|
23
|
+
* @param {string} receiver: address which is authorized to receive withdrawals
|
|
24
|
+
* @param {int} amount: the amount to send each period
|
|
25
|
+
* @param {int} withdrawalWindow: the duration of a withdrawal period
|
|
26
|
+
* @param {int} period: the time between a pair of withdrawal periods
|
|
27
|
+
* @param {int} expiryRound: the round at which the account expires
|
|
28
|
+
* @param {int} maxFee: maximum fee used by the withdrawal transaction
|
|
29
|
+
* @param {string} lease: b64 representation of lease to use, or leave undefined to generate one
|
|
30
|
+
* @returns {PeriodicPayment}
|
|
31
|
+
*/
|
|
32
|
+
constructor(
|
|
33
|
+
receiver,
|
|
34
|
+
amount,
|
|
35
|
+
withdrawalWindow,
|
|
36
|
+
period,
|
|
37
|
+
expiryRound,
|
|
38
|
+
maxFee,
|
|
39
|
+
lease
|
|
40
|
+
) {
|
|
41
|
+
// don't need to validate receiver or lease, it's validated by template insert
|
|
42
|
+
this.receiver = receiver;
|
|
43
|
+
if (!Number.isSafeInteger(amount) || amount < 0)
|
|
44
|
+
throw Error('amount must be a positive number and smaller than 2^53-1');
|
|
45
|
+
this.amount = amount;
|
|
46
|
+
if (!Number.isSafeInteger(withdrawalWindow) || withdrawalWindow < 0)
|
|
47
|
+
throw Error(
|
|
48
|
+
'withdrawalWindow must be a positive number and smaller than 2^53-1'
|
|
49
|
+
);
|
|
50
|
+
this.withdrawalWindow = withdrawalWindow;
|
|
51
|
+
if (!Number.isSafeInteger(period) || period < 0)
|
|
52
|
+
throw Error('period must be a positive number and smaller than 2^53-1');
|
|
53
|
+
this.period = period;
|
|
54
|
+
if (!Number.isSafeInteger(expiryRound) || expiryRound < 0)
|
|
55
|
+
throw Error(
|
|
56
|
+
'expiryRound must be a positive number and smaller than 2^53-1'
|
|
57
|
+
);
|
|
58
|
+
this.expiryRound = expiryRound;
|
|
59
|
+
if (!Number.isSafeInteger(maxFee) || maxFee < 0)
|
|
60
|
+
throw Error('maxFee must be a positive number and smaller than 2^53-1');
|
|
61
|
+
this.maxFee = maxFee;
|
|
62
|
+
|
|
63
|
+
if (lease === undefined) {
|
|
64
|
+
const leaseBytes = nacl.randomBytes(32);
|
|
65
|
+
this.lease = Buffer.from(leaseBytes).toString('base64');
|
|
66
|
+
} else {
|
|
67
|
+
this.lease = lease;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
this.programBytes = this.getProgram();
|
|
71
|
+
const lsig = new logicSig.LogicSig(this.programBytes, undefined);
|
|
72
|
+
this.address = lsig.address();
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* returns the program bytes
|
|
77
|
+
* @returns {Uint8Array}
|
|
78
|
+
*/
|
|
79
|
+
getProgram() {
|
|
80
|
+
const referenceProgramB64 =
|
|
81
|
+
'ASAHAQYFAAQDByYCIAECAwQFBgcIAQIDBAUGBwgBAgMEBQYHCAECAwQFBgcIIJKvkYTkEzwJf2arzJOxERsSogG9nQzKPkpIoc4TzPTFMRAiEjEBIw4QMQIkGCUSEDEEIQQxAggSEDEGKBIQMQkyAxIxBykSEDEIIQUSEDEJKRIxBzIDEhAxAiEGDRAxCCUSEBEQ';
|
|
82
|
+
const referenceProgramBytes = Buffer.from(referenceProgramB64, 'base64');
|
|
83
|
+
const referenceOffsets = [
|
|
84
|
+
4 /* period */,
|
|
85
|
+
5 /* withdrawWindow */,
|
|
86
|
+
7 /* amount */,
|
|
87
|
+
8 /* expiryRound */,
|
|
88
|
+
9 /* lease */,
|
|
89
|
+
12 /* receiver */,
|
|
90
|
+
46,
|
|
91
|
+
];
|
|
92
|
+
const injectionVector = [
|
|
93
|
+
this.maxFee,
|
|
94
|
+
this.period,
|
|
95
|
+
this.withdrawalWindow,
|
|
96
|
+
this.amount,
|
|
97
|
+
this.expiryRound,
|
|
98
|
+
this.lease,
|
|
99
|
+
this.receiver,
|
|
100
|
+
];
|
|
101
|
+
const injectionTypes = [
|
|
102
|
+
templates.valTypes.INT,
|
|
103
|
+
templates.valTypes.INT,
|
|
104
|
+
templates.valTypes.INT,
|
|
105
|
+
templates.valTypes.INT,
|
|
106
|
+
templates.valTypes.INT,
|
|
107
|
+
templates.valTypes.BASE64,
|
|
108
|
+
templates.valTypes.ADDRESS,
|
|
109
|
+
];
|
|
110
|
+
return templates.inject(
|
|
111
|
+
referenceProgramBytes,
|
|
112
|
+
referenceOffsets,
|
|
113
|
+
injectionVector,
|
|
114
|
+
injectionTypes
|
|
115
|
+
);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* returns the string address of the contract
|
|
120
|
+
* @returns {string}
|
|
121
|
+
*/
|
|
122
|
+
getAddress() {
|
|
123
|
+
return this.address;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* getPeriodicPaymentWithdrawalTransaction returns a signed transaction extracting funds form the contract
|
|
129
|
+
*
|
|
130
|
+
* @deprecated This feature will be removed in v2.
|
|
131
|
+
*
|
|
132
|
+
* @param {Uint8Array} contract: the bytearray defining the contract, received from the payer
|
|
133
|
+
* @param {int} fee: the fee per byte for the transaction
|
|
134
|
+
* @param {int} firstValid: the first round on which the txn will be valid
|
|
135
|
+
* @param {string} genesisHash: the hash representing the network for the txn
|
|
136
|
+
* @returns {Object} Object containing txID and blob representing signed transaction
|
|
137
|
+
* @throws error on failure
|
|
138
|
+
*/
|
|
139
|
+
function getPeriodicPaymentWithdrawalTransaction(
|
|
140
|
+
contract,
|
|
141
|
+
fee,
|
|
142
|
+
firstValid,
|
|
143
|
+
genesisHash
|
|
144
|
+
) {
|
|
145
|
+
const readResult = logic.readProgram(contract, undefined);
|
|
146
|
+
const ints = readResult[0];
|
|
147
|
+
const byteArrays = readResult[1];
|
|
148
|
+
const period = ints[2];
|
|
149
|
+
const duration = ints[4];
|
|
150
|
+
const amount = ints[5];
|
|
151
|
+
if (firstValid % period !== 0) {
|
|
152
|
+
throw new Error(
|
|
153
|
+
`firstValid round ${firstValid.toString()} was not a multiple of contract period ${period.toString()}`
|
|
154
|
+
);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
// extract receiver and convert as needed
|
|
158
|
+
const receiverBytes = byteArrays[1];
|
|
159
|
+
const receiver = address.encodeAddress(receiverBytes);
|
|
160
|
+
// extract lease and convert
|
|
161
|
+
const leaseBuffer = byteArrays[0];
|
|
162
|
+
const lease = new Uint8Array(leaseBuffer);
|
|
163
|
+
const lastValid = firstValid + duration;
|
|
164
|
+
const to = receiver;
|
|
165
|
+
let noCloseRemainder;
|
|
166
|
+
let noNote;
|
|
167
|
+
const lsig = logicSig.makeLogicSig(contract, undefined);
|
|
168
|
+
const from = lsig.address();
|
|
169
|
+
const txn = {
|
|
170
|
+
from,
|
|
171
|
+
to,
|
|
172
|
+
fee,
|
|
173
|
+
amount,
|
|
174
|
+
closeRemainderTo: noCloseRemainder,
|
|
175
|
+
firstRound: firstValid,
|
|
176
|
+
lastRound: lastValid,
|
|
177
|
+
note: noNote,
|
|
178
|
+
genesisHash,
|
|
179
|
+
genesisID: '',
|
|
180
|
+
type: 'pay',
|
|
181
|
+
lease,
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
// check fee
|
|
185
|
+
const tempTxn = makeTxn.makePaymentTxn(
|
|
186
|
+
from,
|
|
187
|
+
to,
|
|
188
|
+
fee,
|
|
189
|
+
amount,
|
|
190
|
+
noCloseRemainder,
|
|
191
|
+
firstValid,
|
|
192
|
+
lastValid,
|
|
193
|
+
noNote,
|
|
194
|
+
genesisHash,
|
|
195
|
+
''
|
|
196
|
+
);
|
|
197
|
+
if (tempTxn.fee > ints[1]) {
|
|
198
|
+
throw new Error(
|
|
199
|
+
`final fee of payment transaction${tempTxn.fee.toString()}greater than transaction max fee${ints[1].toString()}`
|
|
200
|
+
);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
return logicSig.signLogicSigTransaction(txn, lsig);
|
|
204
|
+
}
|
|
205
|
+
module.exports = {
|
|
206
|
+
PeriodicPayment,
|
|
207
|
+
getPeriodicPaymentWithdrawalTransaction,
|
|
208
|
+
};
|