create-dubhe 0.0.8 → 0.0.10
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/dist/index.mjs +55 -55
- package/package.json +1 -1
- package/template/101/aptos-template/contracts/counter/.history/aptos_local/latest.json +6 -0
- package/template/101/aptos-template/contracts/counter/build/counter/BuildInfo.yaml +60 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/counter_schema.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/counter_system.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/account.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aggregator.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aggregator_factory.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aggregator_v2.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aptos_account.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aptos_coin.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aptos_governance.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/block.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/chain_id.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/chain_status.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/code.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/coin.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/config_buffer.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/consensus_config.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/create_signer.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/delegation_pool.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/dispatchable_fungible_asset.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/dkg.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/event.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/execution_config.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/function_info.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/fungible_asset.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/gas_schedule.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/genesis.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/governance_proposal.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/guid.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/jwk_consensus_config.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/jwks.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/keyless_account.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/managed_coin.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/multisig_account.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/object.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/object_code_deployment.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/optional_aggregator.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/primary_fungible_store.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/randomness.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/randomness_api_v0_config.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/randomness_config.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/randomness_config_seqnum.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/reconfiguration.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/reconfiguration_state.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/reconfiguration_with_dkg.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/resource_account.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/stake.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/staking_config.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/staking_contract.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/staking_proxy.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/state_storage.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/storage_gas.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/system_addresses.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/timestamp.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/transaction_context.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/transaction_fee.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/transaction_validation.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/util.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/validator_consensus_info.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/version.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/vesting.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/voting.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/any.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/aptos_hash.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/big_vector.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/bls12381.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/bls12381_algebra.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/bn254_algebra.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/capability.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/comparator.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/copyable_any.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/crypto_algebra.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/debug.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/ed25519.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/fixed_point64.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/from_bcs.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/math128.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/math64.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/math_fixed.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/math_fixed64.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/multi_ed25519.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/pool_u64.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/pool_u64_unbound.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/ristretto255.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/ristretto255_bulletproofs.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/ristretto255_elgamal.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/ristretto255_pedersen.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/secp256k1.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/simple_map.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/smart_table.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/smart_vector.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/string_utils.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/table.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/table_with_length.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/type_info.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/acl.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/bcs.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/bit_vector.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/error.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/features.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/fixed_point32.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/hash.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/mem.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/option.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/signer.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/string.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/vector.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/deploy_hook.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/entity_key.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/events.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/init.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/world.mv +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/counter_schema.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/counter_system.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/account.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aggregator.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aggregator_factory.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aggregator_v2.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aptos_account.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aptos_coin.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aptos_governance.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/block.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/chain_id.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/chain_status.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/code.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/coin.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/config_buffer.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/consensus_config.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/create_signer.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/delegation_pool.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/dispatchable_fungible_asset.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/dkg.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/event.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/execution_config.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/function_info.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/fungible_asset.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/gas_schedule.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/genesis.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/governance_proposal.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/guid.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/jwk_consensus_config.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/jwks.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/keyless_account.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/managed_coin.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/multisig_account.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/object.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/object_code_deployment.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/optional_aggregator.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/primary_fungible_store.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/randomness.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/randomness_api_v0_config.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/randomness_config.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/randomness_config_seqnum.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/reconfiguration.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/reconfiguration_state.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/reconfiguration_with_dkg.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/resource_account.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/stake.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/staking_config.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/staking_contract.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/staking_proxy.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/state_storage.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/storage_gas.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/system_addresses.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/timestamp.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/transaction_context.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/transaction_fee.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/transaction_validation.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/util.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/validator_consensus_info.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/version.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/vesting.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/voting.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/any.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/aptos_hash.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/big_vector.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/bls12381.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/bls12381_algebra.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/bn254_algebra.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/capability.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/comparator.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/copyable_any.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/crypto_algebra.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/debug.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/ed25519.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/fixed_point64.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/from_bcs.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/math128.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/math64.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/math_fixed.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/math_fixed64.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/multi_ed25519.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/pool_u64.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/pool_u64_unbound.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/ristretto255.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/ristretto255_bulletproofs.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/ristretto255_elgamal.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/ristretto255_pedersen.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/secp256k1.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/simple_map.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/smart_table.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/smart_vector.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/string_utils.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/table.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/table_with_length.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/type_info.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/acl.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/bcs.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/bit_vector.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/error.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/features.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/fixed_point32.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/hash.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/mem.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/option.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/signer.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/string.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/vector.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/deploy_hook.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/entity_key.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/events.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/init.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/source_maps/world.mvsm +0 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/counter_schema.move +59 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/counter_system.move +11 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/account.move +1604 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aggregator.move +48 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aggregator_factory.move +83 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aggregator_v2.move +473 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aptos_account.move +480 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aptos_coin.move +204 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aptos_governance.move +1390 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/block.move +349 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/chain_id.move +41 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/chain_status.move +48 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/code.move +367 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/coin.move +2014 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/config_buffer.move +101 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/consensus_config.move +77 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/create_signer.move +21 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/delegation_pool.move +5568 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/dispatchable_fungible_asset.move +228 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/dkg.move +121 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/event.move +92 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/execution_config.move +66 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/function_info.move +100 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/fungible_asset.move +1673 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/gas_schedule.move +176 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/genesis.move +549 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/governance_proposal.move +23 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/guid.move +68 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/jwk_consensus_config.move +148 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/jwks.move +889 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/keyless_account.move +312 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/managed_coin.move +267 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/multisig_account.move +2594 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/object.move +1095 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/object_code_deployment.move +147 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/optional_aggregator.move +286 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/primary_fungible_store.move +405 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/randomness.move +574 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/randomness_api_v0_config.move +57 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/randomness_config.move +153 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/randomness_config_seqnum.move +49 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/reconfiguration.move +222 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/reconfiguration_state.move +132 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/reconfiguration_with_dkg.move +69 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/resource_account.move +267 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/stake.move +3185 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/staking_config.move +686 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/staking_contract.move +1627 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/staking_proxy.move +228 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/state_storage.move +90 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/storage_gas.move +622 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/system_addresses.move +82 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/timestamp.move +88 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/transaction_context.move +262 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/transaction_fee.move +170 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/transaction_validation.move +486 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/util.move +16 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/validator_consensus_info.move +42 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/version.move +115 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/vesting.move +2192 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/voting.move +1282 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/any.move +57 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/aptos_hash.move +253 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/big_vector.move +469 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/bls12381.move +985 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/bls12381_algebra.move +802 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/bn254_algebra.move +855 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/capability.move +193 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/comparator.move +173 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/copyable_any.move +45 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/crypto_algebra.move +351 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/debug.move +278 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/ed25519.move +262 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/fixed_point64.move +447 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/from_bcs.move +91 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/math128.move +381 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/math64.move +336 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/math_fixed.move +139 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/math_fixed64.move +142 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/multi_ed25519.move +482 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/pool_u64.move +571 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/pool_u64_unbound.move +270 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/ristretto255.move +1310 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/ristretto255_bulletproofs.move +253 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/ristretto255_elgamal.move +234 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/ristretto255_pedersen.move +158 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/secp256k1.move +114 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/simple_map.move +319 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/smart_table.move +769 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/smart_vector.move +766 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/string_utils.move +148 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/table.move +152 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/table_with_length.move +141 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/type_info.move +351 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/acl.move +46 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/bcs.move +46 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/bit_vector.move +239 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/error.move +88 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/features.move +784 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/fixed_point32.move +295 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/hash.move +8 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/mem.move +34 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/option.move +356 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/signer.move +21 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/string.move +93 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/vector.move +691 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/deploy_hook.move +19 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/entity_key.move +31 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/events.move +34 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/init.move +17 -0
- package/template/101/aptos-template/contracts/counter/build/counter/sources/world.move +65 -0
- package/template/101/aptos-template/package.json +25 -34
- package/template/101/aptos-template/pnpm-lock.yaml +6737 -0
- package/template/101/aptos-template/scripts/checkBalance.ts +37 -0
- package/template/101/aptos-template/scripts/generateAccount.ts +37 -8
- package/template/101/aptos-template/src/chain/config.ts +3 -3
- package/template/101/aptos-template/src/pages/_app.tsx +7 -1
- package/template/101/aptos-template/src/pages/home/index.tsx +50 -35
- package/template/101/initia-template/.dockerignore +7 -0
- package/template/101/initia-template/.eslintrc.json +3 -0
- package/template/101/initia-template/.prettierrc +8 -0
- package/template/101/initia-template/Dockerfile +52 -0
- package/template/101/initia-template/LICENSE +674 -0
- package/template/101/initia-template/README.md +14 -0
- package/template/101/initia-template/contracts/counter/Move.toml +10 -0
- package/template/101/initia-template/contracts/counter/build/counter/BuildInfo.yaml +46 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/counter.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/account.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/address.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/any.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/aptos_hash.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/base64.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/bech32.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/bigdecimal.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/biguint.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/block.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/code.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/coin.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/collection.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/comparator.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/copyable_any.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/cosmos.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/debug.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/dex.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/dispatchable_fungible_asset.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/ed25519.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/event.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/fixed_point64.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/from_bcs.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/function_info.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/fungible_asset.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/hex.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/initia_nft.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/json.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/keccak.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/managed_coin.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/math128.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/math64.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/minitswap.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/multisig.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/multisig_v2.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/nft.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/object.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/object_code_deployment.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/oracle.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/primary_fungible_store.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/property_map.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/query.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/royalty.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/secp256k1.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/simple_map.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/simple_nft.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/soul_bound_token.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/stableswap.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/staking.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/string_utils.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/table.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/table_key.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/timestamp.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/transaction_context.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/type_info.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveNursery/acl.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveNursery/capability.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveNursery/compare.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveNursery/guid.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/ascii.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/bcs.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/bit_vector.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/error.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/fixed_point32.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/hash.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/option.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/signer.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/string.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/vector.mv +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/counter.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/account.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/address.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/any.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/aptos_hash.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/base64.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/bech32.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/bigdecimal.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/biguint.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/block.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/code.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/coin.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/collection.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/comparator.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/copyable_any.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/cosmos.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/debug.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/dex.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/dispatchable_fungible_asset.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/ed25519.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/event.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/fixed_point64.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/from_bcs.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/function_info.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/fungible_asset.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/hex.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/initia_nft.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/json.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/keccak.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/managed_coin.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/math128.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/math64.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/minitswap.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/multisig.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/multisig_v2.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/nft.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/object.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/object_code_deployment.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/oracle.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/primary_fungible_store.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/property_map.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/query.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/royalty.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/secp256k1.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/simple_map.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/simple_nft.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/soul_bound_token.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/stableswap.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/staking.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/string_utils.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/table.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/table_key.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/timestamp.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/transaction_context.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/type_info.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveNursery/acl.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveNursery/capability.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveNursery/compare.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveNursery/guid.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/ascii.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/bcs.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/bit_vector.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/error.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/fixed_point32.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/hash.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/option.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/signer.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/string.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/vector.mvsm +0 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/counter.move +25 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/account.move +386 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/address.move +97 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/any.move +63 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/aptos_hash.move +20 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/base64.move +14 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/bech32.move +37 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/bigdecimal.move +628 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/biguint.move +364 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/block.move +55 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/code.move +357 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/coin.move +430 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/collection.move +674 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/comparator.move +176 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/copyable_any.move +53 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/cosmos.move +572 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/debug.move +352 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/dex.move +2795 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/dispatchable_fungible_asset.move +206 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/ed25519.move +184 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/event.move +42 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/fixed_point64.move +691 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/from_bcs.move +114 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/function_info.move +106 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/fungible_asset.move +1391 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/hex.move +196 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/initia_nft.move +695 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/json.move +266 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/keccak.move +33 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/managed_coin.move +283 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/math128.move +343 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/math64.move +286 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/minitswap.move +3461 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/multisig.move +1011 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/multisig_v2.move +2465 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/nft.move +704 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/object.move +797 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/object_code_deployment.move +157 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/oracle.move +71 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/primary_fungible_store.move +529 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/property_map.move +907 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/query.move +112 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/royalty.move +153 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/secp256k1.move +265 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/simple_map.move +329 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/simple_nft.move +561 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/soul_bound_token.move +862 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/stableswap.move +1659 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/staking.move +2555 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/string_utils.move +234 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/table.move +362 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/table_key.move +47 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/timestamp.move +49 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/transaction_context.move +87 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/type_info.move +80 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveNursery/acl.move +52 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveNursery/capability.move +231 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveNursery/compare.move +76 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveNursery/guid.move +116 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/ascii.move +153 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/bcs.move +17 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/bit_vector.move +179 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/error.move +116 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/fixed_point32.move +315 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/hash.move +31 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/option.move +390 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/signer.move +21 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/string.move +99 -0
- package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/vector.move +703 -0
- package/template/101/initia-template/contracts/counter/sources/counter.move +25 -0
- package/template/101/initia-template/dubhe.config.ts +14 -0
- package/template/101/initia-template/jest.config.ts +17 -0
- package/template/101/initia-template/next-env.d.ts +5 -0
- package/template/101/initia-template/next-i18next.config.js +6 -0
- package/template/101/initia-template/next.config.js +15 -0
- package/template/101/initia-template/package.json +74 -0
- package/template/101/initia-template/pnpm-lock.yaml +7204 -0
- package/template/101/initia-template/postcss.config.js +6 -0
- package/template/101/initia-template/public/discord.svg +9 -0
- package/template/101/initia-template/public/fail.svg +12 -0
- package/template/101/initia-template/public/favicon.ico +0 -0
- package/template/101/initia-template/public/locales/de/common.json +8 -0
- package/template/101/initia-template/public/locales/de/footer.json +3 -0
- package/template/101/initia-template/public/locales/de/second-page.json +5 -0
- package/template/101/initia-template/public/locales/en/common.json +8 -0
- package/template/101/initia-template/public/locales/en/footer.json +3 -0
- package/template/101/initia-template/public/locales/en/second-page.json +5 -0
- package/template/101/initia-template/public/locales/zn/common.json +8 -0
- package/template/101/initia-template/public/locales/zn/footer.json +3 -0
- package/template/101/initia-template/public/locales/zn/second-page.json +5 -0
- package/template/101/initia-template/public/logo.svg +1 -0
- package/template/101/initia-template/public/medium.svg +9 -0
- package/template/101/initia-template/public/successful.svg +11 -0
- package/template/101/initia-template/public/telegram.svg +9 -0
- package/template/101/initia-template/public/twitter.svg +9 -0
- package/template/101/initia-template/scripts/checkBalance.ts +37 -0
- package/template/101/initia-template/scripts/generateAccount.ts +57 -0
- package/template/101/initia-template/scripts/storeConfig.ts +52 -0
- package/template/101/initia-template/scripts/waitNode.ts +9 -0
- package/template/101/initia-template/src/chain/config.ts +5 -0
- package/template/101/initia-template/src/css/font-awesome.css +2337 -0
- package/template/101/initia-template/src/css/font-awesome.min.css +4 -0
- package/template/101/initia-template/src/fonts/FontAwesome.otf +0 -0
- package/template/101/initia-template/src/fonts/fontawesome-webfont.eot +0 -0
- package/template/101/initia-template/src/fonts/fontawesome-webfont.svg +2671 -0
- package/template/101/initia-template/src/fonts/fontawesome-webfont.ttf +0 -0
- package/template/101/initia-template/src/fonts/fontawesome-webfont.woff +0 -0
- package/template/101/initia-template/src/fonts/fontawesome-webfont.woff2 +0 -0
- package/template/101/initia-template/src/jotai/index.tsx +12 -0
- package/template/101/initia-template/src/pages/_app.tsx +15 -0
- package/template/101/initia-template/src/pages/home/index.tsx +90 -0
- package/template/101/initia-template/src/pages/index.tsx +14 -0
- package/template/101/initia-template/tailwind.config.js +56 -0
- package/template/101/initia-template/tsconfig.json +25 -0
- package/template/101/movement-template/.dockerignore +7 -0
- package/template/101/movement-template/.eslintrc.json +3 -0
- package/template/101/movement-template/.prettierrc +8 -0
- package/template/101/movement-template/Dockerfile +56 -0
- package/template/101/movement-template/LICENSE +674 -0
- package/template/101/movement-template/README.md +14 -0
- package/template/101/movement-template/contracts/counter/Move.toml +16 -0
- package/template/101/movement-template/contracts/counter/build/counter/BuildInfo.yaml +60 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/counter_schema.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/counter_system.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/account.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aggregator.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aggregator_factory.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aggregator_v2.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aptos_account.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aptos_coin.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aptos_governance.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/block.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/chain_id.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/chain_status.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/code.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/coin.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/config_buffer.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/consensus_config.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/create_signer.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/delegation_pool.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/dispatchable_fungible_asset.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/dkg.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/event.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/execution_config.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/function_info.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/fungible_asset.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/gas_schedule.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/genesis.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/governance_proposal.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/guid.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/jwk_consensus_config.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/jwks.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/keyless_account.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/managed_coin.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/multisig_account.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/object.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/object_code_deployment.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/optional_aggregator.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/primary_fungible_store.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/randomness.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/randomness_api_v0_config.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/randomness_config.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/randomness_config_seqnum.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/reconfiguration.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/reconfiguration_state.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/reconfiguration_with_dkg.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/resource_account.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/stake.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/staking_config.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/staking_contract.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/staking_proxy.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/state_storage.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/storage_gas.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/system_addresses.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/timestamp.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/transaction_context.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/transaction_fee.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/transaction_validation.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/util.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/validator_consensus_info.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/version.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/vesting.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/voting.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/any.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/aptos_hash.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/big_vector.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/bls12381.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/bls12381_algebra.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/bn254_algebra.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/capability.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/comparator.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/copyable_any.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/crypto_algebra.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/debug.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/ed25519.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/fixed_point64.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/from_bcs.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/math128.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/math64.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/math_fixed.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/math_fixed64.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/multi_ed25519.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/pool_u64.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/pool_u64_unbound.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/ristretto255.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/ristretto255_bulletproofs.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/ristretto255_elgamal.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/ristretto255_pedersen.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/secp256k1.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/simple_map.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/smart_table.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/smart_vector.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/string_utils.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/table.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/table_with_length.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/type_info.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/acl.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/bcs.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/bit_vector.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/error.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/features.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/fixed_point32.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/hash.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/mem.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/option.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/signer.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/string.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/vector.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/deploy_hook.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/entity_key.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/events.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/init.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/world.mv +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/counter_schema.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/counter_system.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/account.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aggregator.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aggregator_factory.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aggregator_v2.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aptos_account.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aptos_coin.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aptos_governance.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/block.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/chain_id.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/chain_status.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/code.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/coin.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/config_buffer.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/consensus_config.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/create_signer.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/delegation_pool.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/dispatchable_fungible_asset.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/dkg.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/event.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/execution_config.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/function_info.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/fungible_asset.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/gas_schedule.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/genesis.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/governance_proposal.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/guid.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/jwk_consensus_config.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/jwks.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/keyless_account.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/managed_coin.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/multisig_account.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/object.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/object_code_deployment.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/optional_aggregator.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/primary_fungible_store.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/randomness.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/randomness_api_v0_config.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/randomness_config.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/randomness_config_seqnum.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/reconfiguration.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/reconfiguration_state.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/reconfiguration_with_dkg.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/resource_account.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/stake.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/staking_config.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/staking_contract.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/staking_proxy.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/state_storage.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/storage_gas.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/system_addresses.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/timestamp.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/transaction_context.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/transaction_fee.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/transaction_validation.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/util.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/validator_consensus_info.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/version.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/vesting.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/voting.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/any.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/aptos_hash.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/big_vector.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/bls12381.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/bls12381_algebra.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/bn254_algebra.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/capability.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/comparator.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/copyable_any.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/crypto_algebra.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/debug.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/ed25519.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/fixed_point64.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/from_bcs.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/math128.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/math64.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/math_fixed.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/math_fixed64.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/multi_ed25519.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/pool_u64.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/pool_u64_unbound.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/ristretto255.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/ristretto255_bulletproofs.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/ristretto255_elgamal.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/ristretto255_pedersen.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/secp256k1.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/simple_map.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/smart_table.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/smart_vector.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/string_utils.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/table.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/table_with_length.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/type_info.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/acl.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/bcs.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/bit_vector.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/error.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/features.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/fixed_point32.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/hash.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/mem.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/option.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/signer.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/string.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/vector.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/deploy_hook.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/entity_key.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/events.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/init.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/source_maps/world.mvsm +0 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/counter_schema.move +59 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/counter_system.move +11 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/account.move +1604 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aggregator.move +48 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aggregator_factory.move +83 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aggregator_v2.move +473 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aptos_account.move +480 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aptos_coin.move +204 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aptos_governance.move +1390 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/block.move +349 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/chain_id.move +41 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/chain_status.move +48 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/code.move +367 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/coin.move +2014 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/config_buffer.move +101 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/consensus_config.move +77 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/create_signer.move +21 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/delegation_pool.move +5568 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/dispatchable_fungible_asset.move +228 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/dkg.move +121 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/event.move +92 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/execution_config.move +66 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/function_info.move +100 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/fungible_asset.move +1673 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/gas_schedule.move +176 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/genesis.move +549 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/governance_proposal.move +23 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/guid.move +68 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/jwk_consensus_config.move +148 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/jwks.move +889 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/keyless_account.move +312 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/managed_coin.move +267 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/multisig_account.move +2594 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/object.move +1095 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/object_code_deployment.move +147 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/optional_aggregator.move +286 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/primary_fungible_store.move +405 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/randomness.move +574 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/randomness_api_v0_config.move +57 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/randomness_config.move +153 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/randomness_config_seqnum.move +49 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/reconfiguration.move +222 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/reconfiguration_state.move +132 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/reconfiguration_with_dkg.move +69 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/resource_account.move +267 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/stake.move +3185 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/staking_config.move +686 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/staking_contract.move +1627 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/staking_proxy.move +228 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/state_storage.move +90 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/storage_gas.move +622 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/system_addresses.move +82 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/timestamp.move +88 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/transaction_context.move +262 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/transaction_fee.move +170 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/transaction_validation.move +486 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/util.move +16 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/validator_consensus_info.move +42 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/version.move +115 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/vesting.move +2192 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/voting.move +1282 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/any.move +57 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/aptos_hash.move +253 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/big_vector.move +469 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/bls12381.move +985 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/bls12381_algebra.move +802 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/bn254_algebra.move +855 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/capability.move +193 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/comparator.move +173 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/copyable_any.move +45 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/crypto_algebra.move +351 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/debug.move +278 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/ed25519.move +262 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/fixed_point64.move +447 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/from_bcs.move +91 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/math128.move +381 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/math64.move +336 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/math_fixed.move +139 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/math_fixed64.move +142 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/multi_ed25519.move +482 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/pool_u64.move +571 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/pool_u64_unbound.move +270 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/ristretto255.move +1310 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/ristretto255_bulletproofs.move +253 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/ristretto255_elgamal.move +234 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/ristretto255_pedersen.move +158 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/secp256k1.move +114 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/simple_map.move +319 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/smart_table.move +769 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/smart_vector.move +766 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/string_utils.move +148 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/table.move +152 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/table_with_length.move +141 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/type_info.move +351 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/acl.move +46 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/bcs.move +46 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/bit_vector.move +239 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/error.move +88 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/features.move +784 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/fixed_point32.move +295 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/hash.move +8 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/mem.move +34 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/option.move +356 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/signer.move +21 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/string.move +93 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/vector.move +691 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/deploy_hook.move +19 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/entity_key.move +31 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/events.move +34 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/init.move +17 -0
- package/template/101/movement-template/contracts/counter/build/counter/sources/world.move +65 -0
- package/template/101/movement-template/contracts/counter/sources/codegen/eps/events.move +34 -0
- package/template/101/movement-template/contracts/counter/sources/codegen/eps/world.move +65 -0
- package/template/101/movement-template/contracts/counter/sources/codegen/init.move +17 -0
- package/template/101/movement-template/contracts/counter/sources/codegen/schemas/counter.move +59 -0
- package/template/101/movement-template/contracts/counter/sources/entity_key.move +31 -0
- package/template/101/movement-template/contracts/counter/sources/script/deploy_hook.move +19 -0
- package/template/101/movement-template/contracts/counter/sources/system/counter_system.move +11 -0
- package/template/101/movement-template/dubhe.config.ts +13 -0
- package/template/101/movement-template/jest.config.ts +17 -0
- package/template/101/movement-template/next-env.d.ts +5 -0
- package/template/101/movement-template/next-i18next.config.js +6 -0
- package/template/101/movement-template/next.config.js +15 -0
- package/template/101/movement-template/package.json +74 -0
- package/template/101/movement-template/pnpm-lock.yaml +6737 -0
- package/template/101/movement-template/postcss.config.js +6 -0
- package/template/101/movement-template/public/discord.svg +9 -0
- package/template/101/movement-template/public/fail.svg +12 -0
- package/template/101/movement-template/public/favicon.ico +0 -0
- package/template/101/movement-template/public/locales/de/common.json +8 -0
- package/template/101/movement-template/public/locales/de/footer.json +3 -0
- package/template/101/movement-template/public/locales/de/second-page.json +5 -0
- package/template/101/movement-template/public/locales/en/common.json +8 -0
- package/template/101/movement-template/public/locales/en/footer.json +3 -0
- package/template/101/movement-template/public/locales/en/second-page.json +5 -0
- package/template/101/movement-template/public/locales/zn/common.json +8 -0
- package/template/101/movement-template/public/locales/zn/footer.json +3 -0
- package/template/101/movement-template/public/locales/zn/second-page.json +5 -0
- package/template/101/movement-template/public/logo.svg +1 -0
- package/template/101/movement-template/public/medium.svg +9 -0
- package/template/101/movement-template/public/successful.svg +11 -0
- package/template/101/movement-template/public/telegram.svg +9 -0
- package/template/101/movement-template/public/twitter.svg +9 -0
- package/template/101/movement-template/scripts/checkBalance.ts +37 -0
- package/template/101/movement-template/scripts/generateAccount.ts +54 -0
- package/template/101/movement-template/scripts/storeConfig.ts +54 -0
- package/template/101/movement-template/src/chain/config.ts +7 -0
- package/template/101/movement-template/src/css/font-awesome.css +2337 -0
- package/template/101/movement-template/src/css/font-awesome.min.css +4 -0
- package/template/101/movement-template/src/fonts/FontAwesome.otf +0 -0
- package/template/101/movement-template/src/fonts/fontawesome-webfont.eot +0 -0
- package/template/101/movement-template/src/fonts/fontawesome-webfont.svg +2671 -0
- package/template/101/movement-template/src/fonts/fontawesome-webfont.ttf +0 -0
- package/template/101/movement-template/src/fonts/fontawesome-webfont.woff +0 -0
- package/template/101/movement-template/src/fonts/fontawesome-webfont.woff2 +0 -0
- package/template/101/movement-template/src/jotai/index.tsx +12 -0
- package/template/101/movement-template/src/pages/_app.tsx +15 -0
- package/template/101/movement-template/src/pages/home/index.tsx +93 -0
- package/template/101/movement-template/src/pages/index.tsx +12 -0
- package/template/101/movement-template/tailwind.config.js +56 -0
- package/template/101/movement-template/tsconfig.json +25 -0
- package/template/101/rooch-template/package.json +3 -3
- package/template/101/sui-template/contracts/counter/Move.toml +4 -5
- package/template/{nextjs/sui-template/contracts/counter/sources/script → 101/sui-template/contracts/counter/sources/scripts}/deploy_hook.move +13 -2
- package/template/{nextjs/sui-template/contracts/counter/sources/script → 101/sui-template/contracts/counter/sources/scripts}/migrate.move +1 -0
- package/template/101/sui-template/contracts/dubhe-framework/Move.toml +13 -0
- package/template/{nextjs/sui-template/localnet → 101/sui-template/contracts}/dubhe-framework/sources/core/dapps/schema.move +31 -1
- package/template/{nextjs/sui-template/localnet → 101/sui-template/contracts}/dubhe-framework/sources/core/dapps/system.move +28 -2
- package/template/{contract/sui-template/localnet → 101/sui-template/contracts}/dubhe-framework/sources/core/dapps/tests.move +16 -2
- package/template/101/sui-template/package.json +11 -10
- package/template/101/sui-template/src/chain/config.ts +2 -2
- package/template/cocos/sui-template/package.json +4 -4
- package/template/contract/sui-template/contracts/counter/Move.toml +4 -5
- package/template/{101/sui-template/contracts/counter/sources/script → contract/sui-template/contracts/counter/sources/scripts}/deploy_hook.move +20 -9
- package/template/contract/sui-template/contracts/dubhe-framework/Move.toml +13 -0
- package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/core/dapps/schema.move +31 -1
- package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/core/dapps/system.move +28 -2
- package/template/{101/sui-template/localnet → contract/sui-template/contracts}/dubhe-framework/sources/core/dapps/tests.move +16 -2
- package/template/contract/sui-template/package.json +9 -7
- package/template/nextjs/sui-template/contracts/counter/Move.toml +4 -5
- package/template/{contract/sui-template/contracts/counter/sources/script → nextjs/sui-template/contracts/counter/sources/scripts}/deploy_hook.move +20 -9
- package/template/nextjs/sui-template/contracts/dubhe-framework/Move.toml +13 -0
- package/template/{101/sui-template/localnet → nextjs/sui-template/contracts}/dubhe-framework/sources/core/dapps/schema.move +31 -1
- package/template/{101/sui-template/localnet → nextjs/sui-template/contracts}/dubhe-framework/sources/core/dapps/system.move +28 -2
- package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/core/dapps/tests.move +16 -2
- package/template/nextjs/sui-template/package.json +10 -9
- package/template/nextjs/sui-template/src/chain/config.ts +3 -3
- package/template/101/aptos-template/scripts/formatAccount.ts +0 -35
- package/template/101/sui-template/localnet/dubhe-framework/Move.toml +0 -29
- package/template/101/sui-template/scripts/deployment/common.ts +0 -60
- package/template/101/sui-template/scripts/deployment/localnet/deploy.ts +0 -42
- package/template/101/sui-template/scripts/deployment/testnet/deploy.ts +0 -48
- package/template/101/sui-template/scripts/deployment/types.ts +0 -13
- package/template/101/sui-template/scripts/framework/common.ts +0 -17
- package/template/101/sui-template/scripts/framework/deploy.ts +0 -199
- package/template/101/sui-template/scripts/framework/parse-history.ts +0 -76
- package/template/101/sui-template/scripts/framework/types.ts +0 -8
- package/template/contract/sui-template/localnet/dubhe-framework/Move.toml +0 -29
- package/template/contract/sui-template/scripts/deployment/common.ts +0 -45
- package/template/contract/sui-template/scripts/deployment/localnet/deploy.ts +0 -42
- package/template/contract/sui-template/scripts/deployment/testnet/deploy.ts +0 -48
- package/template/contract/sui-template/scripts/deployment/types.ts +0 -13
- package/template/contract/sui-template/scripts/framework/common.ts +0 -17
- package/template/contract/sui-template/scripts/framework/deploy.ts +0 -199
- package/template/contract/sui-template/scripts/framework/parse-history.ts +0 -76
- package/template/contract/sui-template/scripts/framework/types.ts +0 -8
- package/template/nextjs/sui-template/localnet/dubhe-framework/Move.toml +0 -29
- package/template/nextjs/sui-template/scripts/deployment/common.ts +0 -60
- package/template/nextjs/sui-template/scripts/deployment/localnet/deploy.ts +0 -42
- package/template/nextjs/sui-template/scripts/deployment/testnet/deploy.ts +0 -48
- package/template/nextjs/sui-template/scripts/deployment/types.ts +0 -13
- package/template/nextjs/sui-template/scripts/framework/common.ts +0 -17
- package/template/nextjs/sui-template/scripts/framework/deploy.ts +0 -199
- package/template/nextjs/sui-template/scripts/framework/parse-history.ts +0 -76
- package/template/nextjs/sui-template/scripts/framework/types.ts +0 -8
- /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/core/dapps/metadata.move +0 -0
- /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/core/root/schema.move +0 -0
- /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/core/root/system.move +0 -0
- /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/core/root/tests.move +0 -0
- /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/frames/utils/type_info.move +0 -0
- /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/double_map.move +0 -0
- /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/map.move +0 -0
- /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/migrate.move +0 -0
- /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/tests.move +0 -0
- /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/value.move +0 -0
- /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/tests/init.move +0 -0
- /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/tests/obelisk_framework_tests.move +0 -0
- /package/template/{101/sui-template/contracts/counter/sources/script → contract/sui-template/contracts/counter/sources/scripts}/migrate.move +0 -0
- /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/core/dapps/metadata.move +0 -0
- /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/core/root/schema.move +0 -0
- /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/core/root/system.move +0 -0
- /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/core/root/tests.move +0 -0
- /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/frames/utils/type_info.move +0 -0
- /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/double_map.move +0 -0
- /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/map.move +0 -0
- /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/migrate.move +0 -0
- /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/tests.move +0 -0
- /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/value.move +0 -0
- /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/tests/init.move +0 -0
- /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/tests/obelisk_framework_tests.move +0 -0
- /package/template/{contract/sui-template/contracts/counter/sources/script → nextjs/sui-template/contracts/counter/sources/scripts}/migrate.move +0 -0
- /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/core/dapps/metadata.move +0 -0
- /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/core/root/schema.move +0 -0
- /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/core/root/system.move +0 -0
- /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/core/root/tests.move +0 -0
- /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/frames/utils/type_info.move +0 -0
- /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/double_map.move +0 -0
- /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/map.move +0 -0
- /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/migrate.move +0 -0
- /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/tests.move +0 -0
- /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/value.move +0 -0
- /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/tests/init.move +0 -0
- /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/tests/obelisk_framework_tests.move +0 -0
|
@@ -0,0 +1,2014 @@
|
|
|
1
|
+
/// This module provides the foundation for typesafe Coins.
|
|
2
|
+
module aptos_framework::coin {
|
|
3
|
+
use std::error;
|
|
4
|
+
use std::features;
|
|
5
|
+
use std::option::{Self, Option};
|
|
6
|
+
use std::signer;
|
|
7
|
+
use std::string::{Self, String};
|
|
8
|
+
use aptos_std::table::{Self, Table};
|
|
9
|
+
|
|
10
|
+
use aptos_framework::account;
|
|
11
|
+
use aptos_framework::aggregator_factory;
|
|
12
|
+
use aptos_framework::aggregator::Aggregator;
|
|
13
|
+
use aptos_framework::event::{Self, EventHandle};
|
|
14
|
+
use aptos_framework::guid;
|
|
15
|
+
use aptos_framework::optional_aggregator::{Self, OptionalAggregator};
|
|
16
|
+
use aptos_framework::system_addresses;
|
|
17
|
+
|
|
18
|
+
use aptos_framework::fungible_asset::{Self, FungibleAsset, Metadata, MintRef, TransferRef, BurnRef};
|
|
19
|
+
use aptos_framework::object::{Self, Object, object_address};
|
|
20
|
+
use aptos_framework::primary_fungible_store;
|
|
21
|
+
use aptos_std::type_info::{Self, TypeInfo, type_name};
|
|
22
|
+
use aptos_framework::create_signer;
|
|
23
|
+
|
|
24
|
+
friend aptos_framework::aptos_coin;
|
|
25
|
+
friend aptos_framework::genesis;
|
|
26
|
+
friend aptos_framework::transaction_fee;
|
|
27
|
+
|
|
28
|
+
//
|
|
29
|
+
// Errors.
|
|
30
|
+
//
|
|
31
|
+
|
|
32
|
+
/// Address of account which is used to initialize a coin `CoinType` doesn't match the deployer of module
|
|
33
|
+
const ECOIN_INFO_ADDRESS_MISMATCH: u64 = 1;
|
|
34
|
+
|
|
35
|
+
/// `CoinType` is already initialized as a coin
|
|
36
|
+
const ECOIN_INFO_ALREADY_PUBLISHED: u64 = 2;
|
|
37
|
+
|
|
38
|
+
/// `CoinType` hasn't been initialized as a coin
|
|
39
|
+
const ECOIN_INFO_NOT_PUBLISHED: u64 = 3;
|
|
40
|
+
|
|
41
|
+
/// Deprecated. Account already has `CoinStore` registered for `CoinType`
|
|
42
|
+
const ECOIN_STORE_ALREADY_PUBLISHED: u64 = 4;
|
|
43
|
+
|
|
44
|
+
/// Account hasn't registered `CoinStore` for `CoinType`
|
|
45
|
+
const ECOIN_STORE_NOT_PUBLISHED: u64 = 5;
|
|
46
|
+
|
|
47
|
+
/// Not enough coins to complete transaction
|
|
48
|
+
const EINSUFFICIENT_BALANCE: u64 = 6;
|
|
49
|
+
|
|
50
|
+
/// Cannot destroy non-zero coins
|
|
51
|
+
const EDESTRUCTION_OF_NONZERO_TOKEN: u64 = 7;
|
|
52
|
+
|
|
53
|
+
/// CoinStore is frozen. Coins cannot be deposited or withdrawn
|
|
54
|
+
const EFROZEN: u64 = 10;
|
|
55
|
+
|
|
56
|
+
/// Cannot upgrade the total supply of coins to different implementation.
|
|
57
|
+
const ECOIN_SUPPLY_UPGRADE_NOT_SUPPORTED: u64 = 11;
|
|
58
|
+
|
|
59
|
+
/// Name of the coin is too long
|
|
60
|
+
const ECOIN_NAME_TOO_LONG: u64 = 12;
|
|
61
|
+
|
|
62
|
+
/// Symbol of the coin is too long
|
|
63
|
+
const ECOIN_SYMBOL_TOO_LONG: u64 = 13;
|
|
64
|
+
|
|
65
|
+
/// The value of aggregatable coin used for transaction fees redistribution does not fit in u64.
|
|
66
|
+
const EAGGREGATABLE_COIN_VALUE_TOO_LARGE: u64 = 14;
|
|
67
|
+
|
|
68
|
+
/// Error regarding paired coin type of the fungible asset metadata.
|
|
69
|
+
const EPAIRED_COIN: u64 = 15;
|
|
70
|
+
|
|
71
|
+
/// Error regarding paired fungible asset metadata of a coin type.
|
|
72
|
+
const EPAIRED_FUNGIBLE_ASSET: u64 = 16;
|
|
73
|
+
|
|
74
|
+
/// The coin type from the map does not match the calling function type argument.
|
|
75
|
+
const ECOIN_TYPE_MISMATCH: u64 = 17;
|
|
76
|
+
|
|
77
|
+
/// The feature of migration from coin to fungible asset is not enabled.
|
|
78
|
+
const ECOIN_TO_FUNGIBLE_ASSET_FEATURE_NOT_ENABLED: u64 = 18;
|
|
79
|
+
|
|
80
|
+
/// PairedFungibleAssetRefs resource does not exist.
|
|
81
|
+
const EPAIRED_FUNGIBLE_ASSET_REFS_NOT_FOUND: u64 = 19;
|
|
82
|
+
|
|
83
|
+
/// The MintRefReceipt does not match the MintRef to be returned.
|
|
84
|
+
const EMINT_REF_RECEIPT_MISMATCH: u64 = 20;
|
|
85
|
+
|
|
86
|
+
/// The MintRef does not exist.
|
|
87
|
+
const EMINT_REF_NOT_FOUND: u64 = 21;
|
|
88
|
+
|
|
89
|
+
/// The TransferRefReceipt does not match the TransferRef to be returned.
|
|
90
|
+
const ETRANSFER_REF_RECEIPT_MISMATCH: u64 = 22;
|
|
91
|
+
|
|
92
|
+
/// The TransferRef does not exist.
|
|
93
|
+
const ETRANSFER_REF_NOT_FOUND: u64 = 23;
|
|
94
|
+
|
|
95
|
+
/// The BurnRefReceipt does not match the BurnRef to be returned.
|
|
96
|
+
const EBURN_REF_RECEIPT_MISMATCH: u64 = 24;
|
|
97
|
+
|
|
98
|
+
/// The BurnRef does not exist.
|
|
99
|
+
const EBURN_REF_NOT_FOUND: u64 = 25;
|
|
100
|
+
|
|
101
|
+
/// The migration process from coin to fungible asset is not enabled yet.
|
|
102
|
+
const EMIGRATION_FRAMEWORK_NOT_ENABLED: u64 = 26;
|
|
103
|
+
|
|
104
|
+
/// The coin converison map is not created yet.
|
|
105
|
+
const ECOIN_CONVERSION_MAP_NOT_FOUND: u64 = 27;
|
|
106
|
+
|
|
107
|
+
/// APT pairing is not eanbled yet.
|
|
108
|
+
const EAPT_PAIRING_IS_NOT_ENABLED: u64 = 28;
|
|
109
|
+
|
|
110
|
+
//
|
|
111
|
+
// Constants
|
|
112
|
+
//
|
|
113
|
+
|
|
114
|
+
const MAX_COIN_NAME_LENGTH: u64 = 32;
|
|
115
|
+
const MAX_COIN_SYMBOL_LENGTH: u64 = 10;
|
|
116
|
+
|
|
117
|
+
/// Core data structures
|
|
118
|
+
|
|
119
|
+
/// Main structure representing a coin/token in an account's custody.
|
|
120
|
+
struct Coin<phantom CoinType> has store {
|
|
121
|
+
/// Amount of coin this address has.
|
|
122
|
+
value: u64,
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
#[deprecated]
|
|
126
|
+
/// DEPRECATED
|
|
127
|
+
struct AggregatableCoin<phantom CoinType> has store {
|
|
128
|
+
/// Amount of aggregatable coin this address has.
|
|
129
|
+
value: Aggregator,
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/// Maximum possible aggregatable coin value.
|
|
133
|
+
const MAX_U64: u128 = 18446744073709551615;
|
|
134
|
+
|
|
135
|
+
/// A holder of a specific coin types and associated event handles.
|
|
136
|
+
/// These are kept in a single resource to ensure locality of data.
|
|
137
|
+
struct CoinStore<phantom CoinType> has key {
|
|
138
|
+
coin: Coin<CoinType>,
|
|
139
|
+
frozen: bool,
|
|
140
|
+
deposit_events: EventHandle<DepositEvent>,
|
|
141
|
+
withdraw_events: EventHandle<WithdrawEvent>,
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
#[deprecated]
|
|
145
|
+
/// Configuration that controls the behavior of total coin supply. If the field
|
|
146
|
+
/// is set, coin creators are allowed to upgrade to parallelizable implementations.
|
|
147
|
+
struct SupplyConfig has key {
|
|
148
|
+
allow_upgrades: bool,
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/// Information about a specific coin type. Stored on the creator of the coin's account.
|
|
152
|
+
struct CoinInfo<phantom CoinType> has key {
|
|
153
|
+
name: String,
|
|
154
|
+
/// Symbol of the coin, usually a shorter version of the name.
|
|
155
|
+
/// For example, Singapore Dollar is SGD.
|
|
156
|
+
symbol: String,
|
|
157
|
+
/// Number of decimals used to get its user representation.
|
|
158
|
+
/// For example, if `decimals` equals `2`, a balance of `505` coins should
|
|
159
|
+
/// be displayed to a user as `5.05` (`505 / 10 ** 2`).
|
|
160
|
+
decimals: u8,
|
|
161
|
+
/// Amount of this coin type in existence.
|
|
162
|
+
supply: Option<OptionalAggregator>,
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
#[event]
|
|
167
|
+
/// Module event emitted when some amount of a coin is deposited into an account.
|
|
168
|
+
struct CoinDeposit has drop, store {
|
|
169
|
+
coin_type: String,
|
|
170
|
+
account: address,
|
|
171
|
+
amount: u64,
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
#[event]
|
|
175
|
+
/// Module event emitted when some amount of a coin is withdrawn from an account.
|
|
176
|
+
struct CoinWithdraw has drop, store {
|
|
177
|
+
coin_type: String,
|
|
178
|
+
account: address,
|
|
179
|
+
amount: u64,
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
// DEPRECATED, NEVER USED
|
|
183
|
+
#[deprecated]
|
|
184
|
+
#[event]
|
|
185
|
+
struct Deposit<phantom CoinType> has drop, store {
|
|
186
|
+
account: address,
|
|
187
|
+
amount: u64,
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
// DEPRECATED, NEVER USED
|
|
191
|
+
#[deprecated]
|
|
192
|
+
#[event]
|
|
193
|
+
struct Withdraw<phantom CoinType> has drop, store {
|
|
194
|
+
account: address,
|
|
195
|
+
amount: u64,
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
/// Event emitted when some amount of a coin is deposited into an account.
|
|
199
|
+
struct DepositEvent has drop, store {
|
|
200
|
+
amount: u64,
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/// Event emitted when some amount of a coin is withdrawn from an account.
|
|
204
|
+
struct WithdrawEvent has drop, store {
|
|
205
|
+
amount: u64,
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
#[event]
|
|
210
|
+
/// Module event emitted when the event handles related to coin store is deleted.
|
|
211
|
+
struct CoinEventHandleDeletion has drop, store {
|
|
212
|
+
event_handle_creation_address: address,
|
|
213
|
+
deleted_deposit_event_handle_creation_number: u64,
|
|
214
|
+
deleted_withdraw_event_handle_creation_number: u64,
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
#[event]
|
|
218
|
+
/// Module event emitted when a new pair of coin and fungible asset is created.
|
|
219
|
+
struct PairCreation has drop, store {
|
|
220
|
+
coin_type: TypeInfo,
|
|
221
|
+
fungible_asset_metadata_address: address,
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
#[resource_group_member(group = aptos_framework::object::ObjectGroup)]
|
|
225
|
+
/// The flag the existence of which indicates the primary fungible store is created by the migration from CoinStore.
|
|
226
|
+
struct MigrationFlag has key {}
|
|
227
|
+
|
|
228
|
+
/// Capability required to mint coins.
|
|
229
|
+
struct MintCapability<phantom CoinType> has copy, store {}
|
|
230
|
+
|
|
231
|
+
/// Capability required to freeze a coin store.
|
|
232
|
+
struct FreezeCapability<phantom CoinType> has copy, store {}
|
|
233
|
+
|
|
234
|
+
/// Capability required to burn coins.
|
|
235
|
+
struct BurnCapability<phantom CoinType> has copy, store {}
|
|
236
|
+
|
|
237
|
+
/// The mapping between coin and fungible asset.
|
|
238
|
+
struct CoinConversionMap has key {
|
|
239
|
+
coin_to_fungible_asset_map: Table<TypeInfo, Object<Metadata>>,
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
#[resource_group_member(group = aptos_framework::object::ObjectGroup)]
|
|
243
|
+
/// The paired coin type info stored in fungible asset metadata object.
|
|
244
|
+
struct PairedCoinType has key {
|
|
245
|
+
type: TypeInfo,
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
#[resource_group_member(group = aptos_framework::object::ObjectGroup)]
|
|
249
|
+
/// The refs of the paired fungible asset.
|
|
250
|
+
struct PairedFungibleAssetRefs has key {
|
|
251
|
+
mint_ref_opt: Option<MintRef>,
|
|
252
|
+
transfer_ref_opt: Option<TransferRef>,
|
|
253
|
+
burn_ref_opt: Option<BurnRef>,
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/// The hot potato receipt for flash borrowing MintRef.
|
|
257
|
+
struct MintRefReceipt {
|
|
258
|
+
metadata: Object<Metadata>,
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
/// The hot potato receipt for flash borrowing TransferRef.
|
|
262
|
+
struct TransferRefReceipt {
|
|
263
|
+
metadata: Object<Metadata>,
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/// The hot potato receipt for flash borrowing BurnRef.
|
|
267
|
+
struct BurnRefReceipt {
|
|
268
|
+
metadata: Object<Metadata>,
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
#[view]
|
|
272
|
+
/// Get the paired fungible asset metadata object of a coin type. If not exist, return option::none().
|
|
273
|
+
public fun paired_metadata<CoinType>(): Option<Object<Metadata>> acquires CoinConversionMap {
|
|
274
|
+
if (exists<CoinConversionMap>(@aptos_framework) && features::coin_to_fungible_asset_migration_feature_enabled(
|
|
275
|
+
)) {
|
|
276
|
+
let map = &borrow_global<CoinConversionMap>(@aptos_framework).coin_to_fungible_asset_map;
|
|
277
|
+
let type = type_info::type_of<CoinType>();
|
|
278
|
+
if (table::contains(map, type)) {
|
|
279
|
+
return option::some(*table::borrow(map, type))
|
|
280
|
+
}
|
|
281
|
+
};
|
|
282
|
+
option::none()
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
public entry fun create_coin_conversion_map(aptos_framework: &signer) {
|
|
286
|
+
system_addresses::assert_aptos_framework(aptos_framework);
|
|
287
|
+
if (!exists<CoinConversionMap>(@aptos_framework)) {
|
|
288
|
+
move_to(aptos_framework, CoinConversionMap {
|
|
289
|
+
coin_to_fungible_asset_map: table::new(),
|
|
290
|
+
})
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
/// Create APT pairing by passing `AptosCoin`.
|
|
295
|
+
public entry fun create_pairing<CoinType>(
|
|
296
|
+
aptos_framework: &signer
|
|
297
|
+
) acquires CoinConversionMap, CoinInfo {
|
|
298
|
+
system_addresses::assert_aptos_framework(aptos_framework);
|
|
299
|
+
create_and_return_paired_metadata_if_not_exist<CoinType>(true);
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
inline fun is_apt<CoinType>(): bool {
|
|
303
|
+
type_info::type_name<CoinType>() == string::utf8(b"0x1::aptos_coin::AptosCoin")
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
inline fun create_and_return_paired_metadata_if_not_exist<CoinType>(allow_apt_creation: bool): Object<Metadata> {
|
|
307
|
+
assert!(
|
|
308
|
+
features::coin_to_fungible_asset_migration_feature_enabled(),
|
|
309
|
+
error::invalid_state(EMIGRATION_FRAMEWORK_NOT_ENABLED)
|
|
310
|
+
);
|
|
311
|
+
assert!(exists<CoinConversionMap>(@aptos_framework), error::not_found(ECOIN_CONVERSION_MAP_NOT_FOUND));
|
|
312
|
+
let map = borrow_global_mut<CoinConversionMap>(@aptos_framework);
|
|
313
|
+
let type = type_info::type_of<CoinType>();
|
|
314
|
+
if (!table::contains(&map.coin_to_fungible_asset_map, type)) {
|
|
315
|
+
let is_apt = is_apt<CoinType>();
|
|
316
|
+
assert!(!is_apt || allow_apt_creation, error::invalid_state(EAPT_PAIRING_IS_NOT_ENABLED));
|
|
317
|
+
let metadata_object_cref =
|
|
318
|
+
if (is_apt) {
|
|
319
|
+
object::create_sticky_object_at_address(@aptos_framework, @aptos_fungible_asset)
|
|
320
|
+
} else {
|
|
321
|
+
object::create_named_object(
|
|
322
|
+
&create_signer::create_signer(@aptos_fungible_asset),
|
|
323
|
+
*string::bytes(&type_info::type_name<CoinType>())
|
|
324
|
+
)
|
|
325
|
+
};
|
|
326
|
+
primary_fungible_store::create_primary_store_enabled_fungible_asset(
|
|
327
|
+
&metadata_object_cref,
|
|
328
|
+
option::none(),
|
|
329
|
+
name<CoinType>(),
|
|
330
|
+
symbol<CoinType>(),
|
|
331
|
+
decimals<CoinType>(),
|
|
332
|
+
string::utf8(b""),
|
|
333
|
+
string::utf8(b""),
|
|
334
|
+
);
|
|
335
|
+
|
|
336
|
+
let metadata_object_signer = &object::generate_signer(&metadata_object_cref);
|
|
337
|
+
let type = type_info::type_of<CoinType>();
|
|
338
|
+
move_to(metadata_object_signer, PairedCoinType { type });
|
|
339
|
+
let metadata_obj = object::object_from_constructor_ref(&metadata_object_cref);
|
|
340
|
+
|
|
341
|
+
table::add(&mut map.coin_to_fungible_asset_map, type, metadata_obj);
|
|
342
|
+
event::emit(PairCreation {
|
|
343
|
+
coin_type: type,
|
|
344
|
+
fungible_asset_metadata_address: object_address(&metadata_obj)
|
|
345
|
+
});
|
|
346
|
+
|
|
347
|
+
// Generates all three refs
|
|
348
|
+
let mint_ref = fungible_asset::generate_mint_ref(&metadata_object_cref);
|
|
349
|
+
let transfer_ref = fungible_asset::generate_transfer_ref(&metadata_object_cref);
|
|
350
|
+
let burn_ref = fungible_asset::generate_burn_ref(&metadata_object_cref);
|
|
351
|
+
move_to(metadata_object_signer,
|
|
352
|
+
PairedFungibleAssetRefs {
|
|
353
|
+
mint_ref_opt: option::some(mint_ref),
|
|
354
|
+
transfer_ref_opt: option::some(transfer_ref),
|
|
355
|
+
burn_ref_opt: option::some(burn_ref),
|
|
356
|
+
}
|
|
357
|
+
);
|
|
358
|
+
};
|
|
359
|
+
*table::borrow(&map.coin_to_fungible_asset_map, type)
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
/// Get the paired fungible asset metadata object of a coin type, create if not exist.
|
|
363
|
+
public(friend) fun ensure_paired_metadata<CoinType>(): Object<Metadata> acquires CoinConversionMap, CoinInfo {
|
|
364
|
+
create_and_return_paired_metadata_if_not_exist<CoinType>(false)
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
#[view]
|
|
368
|
+
/// Get the paired coin type of a fungible asset metadata object.
|
|
369
|
+
public fun paired_coin(metadata: Object<Metadata>): Option<TypeInfo> acquires PairedCoinType {
|
|
370
|
+
let metadata_addr = object::object_address(&metadata);
|
|
371
|
+
if (exists<PairedCoinType>(metadata_addr)) {
|
|
372
|
+
option::some(borrow_global<PairedCoinType>(metadata_addr).type)
|
|
373
|
+
} else {
|
|
374
|
+
option::none()
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
/// Conversion from coin to fungible asset
|
|
379
|
+
public fun coin_to_fungible_asset<CoinType>(
|
|
380
|
+
coin: Coin<CoinType>
|
|
381
|
+
): FungibleAsset acquires CoinConversionMap, CoinInfo {
|
|
382
|
+
let metadata = ensure_paired_metadata<CoinType>();
|
|
383
|
+
let amount = burn_internal(coin);
|
|
384
|
+
fungible_asset::mint_internal(metadata, amount)
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
/// Conversion from fungible asset to coin. Not public to push the migration to FA.
|
|
388
|
+
fun fungible_asset_to_coin<CoinType>(
|
|
389
|
+
fungible_asset: FungibleAsset
|
|
390
|
+
): Coin<CoinType> acquires CoinInfo, PairedCoinType {
|
|
391
|
+
let metadata_addr = object::object_address(&fungible_asset::metadata_from_asset(&fungible_asset));
|
|
392
|
+
assert!(
|
|
393
|
+
object::object_exists<PairedCoinType>(metadata_addr),
|
|
394
|
+
error::not_found(EPAIRED_COIN)
|
|
395
|
+
);
|
|
396
|
+
let coin_type_info = borrow_global<PairedCoinType>(metadata_addr).type;
|
|
397
|
+
assert!(coin_type_info == type_info::type_of<CoinType>(), error::invalid_argument(ECOIN_TYPE_MISMATCH));
|
|
398
|
+
let amount = fungible_asset::burn_internal(fungible_asset);
|
|
399
|
+
mint_internal<CoinType>(amount)
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
inline fun assert_paired_metadata_exists<CoinType>(): Object<Metadata> {
|
|
403
|
+
let metadata_opt = paired_metadata<CoinType>();
|
|
404
|
+
assert!(option::is_some(&metadata_opt), error::not_found(EPAIRED_FUNGIBLE_ASSET));
|
|
405
|
+
option::destroy_some(metadata_opt)
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
#[view]
|
|
409
|
+
/// Check whether `MintRef` has not been taken.
|
|
410
|
+
public fun paired_mint_ref_exists<CoinType>(): bool acquires CoinConversionMap, PairedFungibleAssetRefs {
|
|
411
|
+
let metadata = assert_paired_metadata_exists<CoinType>();
|
|
412
|
+
let metadata_addr = object_address(&metadata);
|
|
413
|
+
assert!(exists<PairedFungibleAssetRefs>(metadata_addr), error::internal(EPAIRED_FUNGIBLE_ASSET_REFS_NOT_FOUND));
|
|
414
|
+
option::is_some(&borrow_global<PairedFungibleAssetRefs>(metadata_addr).mint_ref_opt)
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
/// Get the `MintRef` of paired fungible asset of a coin type from `MintCapability`.
|
|
418
|
+
public fun get_paired_mint_ref<CoinType>(
|
|
419
|
+
_: &MintCapability<CoinType>
|
|
420
|
+
): (MintRef, MintRefReceipt) acquires CoinConversionMap, PairedFungibleAssetRefs {
|
|
421
|
+
let metadata = assert_paired_metadata_exists<CoinType>();
|
|
422
|
+
let metadata_addr = object_address(&metadata);
|
|
423
|
+
assert!(exists<PairedFungibleAssetRefs>(metadata_addr), error::internal(EPAIRED_FUNGIBLE_ASSET_REFS_NOT_FOUND));
|
|
424
|
+
let mint_ref_opt = &mut borrow_global_mut<PairedFungibleAssetRefs>(metadata_addr).mint_ref_opt;
|
|
425
|
+
assert!(option::is_some(mint_ref_opt), error::not_found(EMINT_REF_NOT_FOUND));
|
|
426
|
+
(option::extract(mint_ref_opt), MintRefReceipt { metadata })
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
/// Return the `MintRef` with the hot potato receipt.
|
|
430
|
+
public fun return_paired_mint_ref(mint_ref: MintRef, receipt: MintRefReceipt) acquires PairedFungibleAssetRefs {
|
|
431
|
+
let MintRefReceipt { metadata } = receipt;
|
|
432
|
+
assert!(
|
|
433
|
+
fungible_asset::mint_ref_metadata(&mint_ref) == metadata,
|
|
434
|
+
error::invalid_argument(EMINT_REF_RECEIPT_MISMATCH)
|
|
435
|
+
);
|
|
436
|
+
let metadata_addr = object_address(&metadata);
|
|
437
|
+
let mint_ref_opt = &mut borrow_global_mut<PairedFungibleAssetRefs>(metadata_addr).mint_ref_opt;
|
|
438
|
+
option::fill(mint_ref_opt, mint_ref);
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
#[view]
|
|
442
|
+
/// Check whether `TransferRef` still exists.
|
|
443
|
+
public fun paired_transfer_ref_exists<CoinType>(): bool acquires CoinConversionMap, PairedFungibleAssetRefs {
|
|
444
|
+
let metadata = assert_paired_metadata_exists<CoinType>();
|
|
445
|
+
let metadata_addr = object_address(&metadata);
|
|
446
|
+
assert!(exists<PairedFungibleAssetRefs>(metadata_addr), error::internal(EPAIRED_FUNGIBLE_ASSET_REFS_NOT_FOUND));
|
|
447
|
+
option::is_some(&borrow_global<PairedFungibleAssetRefs>(metadata_addr).transfer_ref_opt)
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
/// Get the TransferRef of paired fungible asset of a coin type from `FreezeCapability`.
|
|
451
|
+
public fun get_paired_transfer_ref<CoinType>(
|
|
452
|
+
_: &FreezeCapability<CoinType>
|
|
453
|
+
): (TransferRef, TransferRefReceipt) acquires CoinConversionMap, PairedFungibleAssetRefs {
|
|
454
|
+
let metadata = assert_paired_metadata_exists<CoinType>();
|
|
455
|
+
let metadata_addr = object_address(&metadata);
|
|
456
|
+
assert!(exists<PairedFungibleAssetRefs>(metadata_addr), error::internal(EPAIRED_FUNGIBLE_ASSET_REFS_NOT_FOUND));
|
|
457
|
+
let transfer_ref_opt = &mut borrow_global_mut<PairedFungibleAssetRefs>(metadata_addr).transfer_ref_opt;
|
|
458
|
+
assert!(option::is_some(transfer_ref_opt), error::not_found(ETRANSFER_REF_NOT_FOUND));
|
|
459
|
+
(option::extract(transfer_ref_opt), TransferRefReceipt { metadata })
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
/// Return the `TransferRef` with the hot potato receipt.
|
|
463
|
+
public fun return_paired_transfer_ref(
|
|
464
|
+
transfer_ref: TransferRef,
|
|
465
|
+
receipt: TransferRefReceipt
|
|
466
|
+
) acquires PairedFungibleAssetRefs {
|
|
467
|
+
let TransferRefReceipt { metadata } = receipt;
|
|
468
|
+
assert!(
|
|
469
|
+
fungible_asset::transfer_ref_metadata(&transfer_ref) == metadata,
|
|
470
|
+
error::invalid_argument(ETRANSFER_REF_RECEIPT_MISMATCH)
|
|
471
|
+
);
|
|
472
|
+
let metadata_addr = object_address(&metadata);
|
|
473
|
+
let transfer_ref_opt = &mut borrow_global_mut<PairedFungibleAssetRefs>(metadata_addr).transfer_ref_opt;
|
|
474
|
+
option::fill(transfer_ref_opt, transfer_ref);
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
#[view]
|
|
478
|
+
/// Check whether `BurnRef` has not been taken.
|
|
479
|
+
public fun paired_burn_ref_exists<CoinType>(): bool acquires CoinConversionMap, PairedFungibleAssetRefs {
|
|
480
|
+
let metadata = assert_paired_metadata_exists<CoinType>();
|
|
481
|
+
let metadata_addr = object_address(&metadata);
|
|
482
|
+
assert!(exists<PairedFungibleAssetRefs>(metadata_addr), error::internal(EPAIRED_FUNGIBLE_ASSET_REFS_NOT_FOUND));
|
|
483
|
+
option::is_some(&borrow_global<PairedFungibleAssetRefs>(metadata_addr).burn_ref_opt)
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
/// Get the `BurnRef` of paired fungible asset of a coin type from `BurnCapability`.
|
|
487
|
+
public fun get_paired_burn_ref<CoinType>(
|
|
488
|
+
_: &BurnCapability<CoinType>
|
|
489
|
+
): (BurnRef, BurnRefReceipt) acquires CoinConversionMap, PairedFungibleAssetRefs {
|
|
490
|
+
let metadata = assert_paired_metadata_exists<CoinType>();
|
|
491
|
+
let metadata_addr = object_address(&metadata);
|
|
492
|
+
assert!(exists<PairedFungibleAssetRefs>(metadata_addr), error::internal(EPAIRED_FUNGIBLE_ASSET_REFS_NOT_FOUND));
|
|
493
|
+
let burn_ref_opt = &mut borrow_global_mut<PairedFungibleAssetRefs>(metadata_addr).burn_ref_opt;
|
|
494
|
+
assert!(option::is_some(burn_ref_opt), error::not_found(EBURN_REF_NOT_FOUND));
|
|
495
|
+
(option::extract(burn_ref_opt), BurnRefReceipt { metadata })
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
// Permanently convert to BurnRef, and take it from the pairing.
|
|
499
|
+
// (i.e. future calls to borrow/convert BurnRef will fail)
|
|
500
|
+
public fun convert_and_take_paired_burn_ref<CoinType>(
|
|
501
|
+
burn_cap: BurnCapability<CoinType>
|
|
502
|
+
): BurnRef acquires CoinConversionMap, PairedFungibleAssetRefs {
|
|
503
|
+
destroy_burn_cap(burn_cap);
|
|
504
|
+
let metadata = assert_paired_metadata_exists<CoinType>();
|
|
505
|
+
let metadata_addr = object_address(&metadata);
|
|
506
|
+
assert!(exists<PairedFungibleAssetRefs>(metadata_addr), error::internal(EPAIRED_FUNGIBLE_ASSET_REFS_NOT_FOUND));
|
|
507
|
+
let burn_ref_opt = &mut borrow_global_mut<PairedFungibleAssetRefs>(metadata_addr).burn_ref_opt;
|
|
508
|
+
assert!(option::is_some(burn_ref_opt), error::not_found(EBURN_REF_NOT_FOUND));
|
|
509
|
+
option::extract(burn_ref_opt)
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
/// Return the `BurnRef` with the hot potato receipt.
|
|
513
|
+
public fun return_paired_burn_ref(
|
|
514
|
+
burn_ref: BurnRef,
|
|
515
|
+
receipt: BurnRefReceipt
|
|
516
|
+
) acquires PairedFungibleAssetRefs {
|
|
517
|
+
let BurnRefReceipt { metadata } = receipt;
|
|
518
|
+
assert!(
|
|
519
|
+
fungible_asset::burn_ref_metadata(&burn_ref) == metadata,
|
|
520
|
+
error::invalid_argument(EBURN_REF_RECEIPT_MISMATCH)
|
|
521
|
+
);
|
|
522
|
+
let metadata_addr = object_address(&metadata);
|
|
523
|
+
let burn_ref_opt = &mut borrow_global_mut<PairedFungibleAssetRefs>(metadata_addr).burn_ref_opt;
|
|
524
|
+
option::fill(burn_ref_opt, burn_ref);
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
inline fun borrow_paired_burn_ref<CoinType>(
|
|
528
|
+
_: &BurnCapability<CoinType>
|
|
529
|
+
): &BurnRef acquires CoinConversionMap, PairedFungibleAssetRefs {
|
|
530
|
+
let metadata = assert_paired_metadata_exists<CoinType>();
|
|
531
|
+
let metadata_addr = object_address(&metadata);
|
|
532
|
+
assert!(exists<PairedFungibleAssetRefs>(metadata_addr), error::internal(EPAIRED_FUNGIBLE_ASSET_REFS_NOT_FOUND));
|
|
533
|
+
let burn_ref_opt = &borrow_global<PairedFungibleAssetRefs>(metadata_addr).burn_ref_opt;
|
|
534
|
+
assert!(option::is_some(burn_ref_opt), error::not_found(EBURN_REF_NOT_FOUND));
|
|
535
|
+
option::borrow(burn_ref_opt)
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
//
|
|
539
|
+
// Total supply config
|
|
540
|
+
//
|
|
541
|
+
|
|
542
|
+
/// This should be called by on-chain governance to update the config and allow
|
|
543
|
+
/// or disallow upgradability of total supply.
|
|
544
|
+
public fun allow_supply_upgrades(_aptos_framework: &signer, _allowed: bool) {
|
|
545
|
+
abort error::invalid_state(ECOIN_SUPPLY_UPGRADE_NOT_SUPPORTED)
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
inline fun calculate_amount_to_withdraw<CoinType>(
|
|
549
|
+
account_addr: address,
|
|
550
|
+
amount: u64
|
|
551
|
+
): (u64, u64) {
|
|
552
|
+
let coin_balance = coin_balance<CoinType>(account_addr);
|
|
553
|
+
if (coin_balance >= amount) {
|
|
554
|
+
(amount, 0)
|
|
555
|
+
} else {
|
|
556
|
+
let metadata = paired_metadata<CoinType>();
|
|
557
|
+
if (option::is_some(&metadata) && primary_fungible_store::primary_store_exists(
|
|
558
|
+
account_addr,
|
|
559
|
+
option::destroy_some(metadata)
|
|
560
|
+
))
|
|
561
|
+
(coin_balance, amount - coin_balance)
|
|
562
|
+
else
|
|
563
|
+
abort error::invalid_argument(EINSUFFICIENT_BALANCE)
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
fun maybe_convert_to_fungible_store<CoinType>(account: address) acquires CoinStore, CoinConversionMap, CoinInfo {
|
|
568
|
+
if (!features::coin_to_fungible_asset_migration_feature_enabled()) {
|
|
569
|
+
abort error::unavailable(ECOIN_TO_FUNGIBLE_ASSET_FEATURE_NOT_ENABLED)
|
|
570
|
+
};
|
|
571
|
+
assert!(is_coin_initialized<CoinType>(), error::invalid_argument(ECOIN_INFO_NOT_PUBLISHED));
|
|
572
|
+
|
|
573
|
+
let metadata = ensure_paired_metadata<CoinType>();
|
|
574
|
+
let store = primary_fungible_store::ensure_primary_store_exists(account, metadata);
|
|
575
|
+
let store_address = object::object_address(&store);
|
|
576
|
+
if (exists<CoinStore<CoinType>>(account)) {
|
|
577
|
+
let CoinStore<CoinType> { coin, frozen, deposit_events, withdraw_events } = move_from<CoinStore<CoinType>>(
|
|
578
|
+
account
|
|
579
|
+
);
|
|
580
|
+
event::emit(
|
|
581
|
+
CoinEventHandleDeletion {
|
|
582
|
+
event_handle_creation_address: guid::creator_address(
|
|
583
|
+
event::guid(&deposit_events)
|
|
584
|
+
),
|
|
585
|
+
deleted_deposit_event_handle_creation_number: guid::creation_num(event::guid(&deposit_events)),
|
|
586
|
+
deleted_withdraw_event_handle_creation_number: guid::creation_num(event::guid(&withdraw_events))
|
|
587
|
+
}
|
|
588
|
+
);
|
|
589
|
+
event::destroy_handle(deposit_events);
|
|
590
|
+
event::destroy_handle(withdraw_events);
|
|
591
|
+
if (coin.value == 0) {
|
|
592
|
+
destroy_zero(coin);
|
|
593
|
+
} else {
|
|
594
|
+
fungible_asset::deposit(store, coin_to_fungible_asset(coin));
|
|
595
|
+
};
|
|
596
|
+
// Note:
|
|
597
|
+
// It is possible the primary fungible store may already exist before this function call.
|
|
598
|
+
// In this case, if the account owns a frozen CoinStore and an unfrozen primary fungible store, this
|
|
599
|
+
// function would convert and deposit the rest coin into the primary store and freeze it to make the
|
|
600
|
+
// `frozen` semantic as consistent as possible.
|
|
601
|
+
if (frozen != fungible_asset::is_frozen(store)) {
|
|
602
|
+
fungible_asset::set_frozen_flag_internal(store, frozen);
|
|
603
|
+
}
|
|
604
|
+
};
|
|
605
|
+
if (!exists<MigrationFlag>(store_address)) {
|
|
606
|
+
move_to(&create_signer::create_signer(store_address), MigrationFlag {});
|
|
607
|
+
}
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
/// Voluntarily migrate to fungible store for `CoinType` if not yet.
|
|
611
|
+
public entry fun migrate_to_fungible_store<CoinType>(
|
|
612
|
+
account: &signer
|
|
613
|
+
) acquires CoinStore, CoinConversionMap, CoinInfo {
|
|
614
|
+
maybe_convert_to_fungible_store<CoinType>(signer::address_of(account));
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
//
|
|
618
|
+
// Getter functions
|
|
619
|
+
//
|
|
620
|
+
|
|
621
|
+
/// A helper function that returns the address of CoinType.
|
|
622
|
+
fun coin_address<CoinType>(): address {
|
|
623
|
+
let type_info = type_info::type_of<CoinType>();
|
|
624
|
+
type_info::account_address(&type_info)
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
#[view]
|
|
628
|
+
/// Returns the balance of `owner` for provided `CoinType` and its paired FA if exists.
|
|
629
|
+
public fun balance<CoinType>(owner: address): u64 acquires CoinConversionMap, CoinStore {
|
|
630
|
+
let paired_metadata = paired_metadata<CoinType>();
|
|
631
|
+
coin_balance<CoinType>(owner) + if (option::is_some(&paired_metadata)) {
|
|
632
|
+
primary_fungible_store::balance(
|
|
633
|
+
owner,
|
|
634
|
+
option::extract(&mut paired_metadata)
|
|
635
|
+
)
|
|
636
|
+
} else { 0 }
|
|
637
|
+
}
|
|
638
|
+
|
|
639
|
+
#[view]
|
|
640
|
+
/// Returns whether the balance of `owner` for provided `CoinType` and its paired FA is >= `amount`.
|
|
641
|
+
public fun is_balance_at_least<CoinType>(owner: address, amount: u64): bool acquires CoinConversionMap, CoinStore {
|
|
642
|
+
let coin_balance = coin_balance<CoinType>(owner);
|
|
643
|
+
if (coin_balance >= amount) {
|
|
644
|
+
return true
|
|
645
|
+
};
|
|
646
|
+
|
|
647
|
+
let paired_metadata = paired_metadata<CoinType>();
|
|
648
|
+
let left_amount = amount - coin_balance;
|
|
649
|
+
if (option::is_some(&paired_metadata)) {
|
|
650
|
+
primary_fungible_store::is_balance_at_least(
|
|
651
|
+
owner,
|
|
652
|
+
option::extract(&mut paired_metadata),
|
|
653
|
+
left_amount
|
|
654
|
+
)
|
|
655
|
+
} else { false }
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
inline fun coin_balance<CoinType>(owner: address): u64 {
|
|
659
|
+
if (exists<CoinStore<CoinType>>(owner)) {
|
|
660
|
+
borrow_global<CoinStore<CoinType>>(owner).coin.value
|
|
661
|
+
} else {
|
|
662
|
+
0
|
|
663
|
+
}
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
#[view]
|
|
667
|
+
/// Returns `true` if the type `CoinType` is an initialized coin.
|
|
668
|
+
public fun is_coin_initialized<CoinType>(): bool {
|
|
669
|
+
exists<CoinInfo<CoinType>>(coin_address<CoinType>())
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
#[view]
|
|
673
|
+
/// Returns `true` is account_addr has frozen the CoinStore or if it's not registered at all
|
|
674
|
+
public fun is_coin_store_frozen<CoinType>(
|
|
675
|
+
account_addr: address
|
|
676
|
+
): bool acquires CoinStore, CoinConversionMap {
|
|
677
|
+
if (!is_account_registered<CoinType>(account_addr)) {
|
|
678
|
+
return true
|
|
679
|
+
};
|
|
680
|
+
|
|
681
|
+
let coin_store = borrow_global<CoinStore<CoinType>>(account_addr);
|
|
682
|
+
coin_store.frozen
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
#[view]
|
|
686
|
+
/// Returns `true` if `account_addr` is registered to receive `CoinType`.
|
|
687
|
+
public fun is_account_registered<CoinType>(account_addr: address): bool acquires CoinConversionMap {
|
|
688
|
+
assert!(is_coin_initialized<CoinType>(), error::invalid_argument(ECOIN_INFO_NOT_PUBLISHED));
|
|
689
|
+
if (exists<CoinStore<CoinType>>(account_addr)) {
|
|
690
|
+
true
|
|
691
|
+
} else {
|
|
692
|
+
let paired_metadata_opt = paired_metadata<CoinType>();
|
|
693
|
+
(option::is_some(
|
|
694
|
+
&paired_metadata_opt
|
|
695
|
+
) && migrated_primary_fungible_store_exists(account_addr, option::destroy_some(paired_metadata_opt)))
|
|
696
|
+
}
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
#[view]
|
|
700
|
+
/// Returns the name of the coin.
|
|
701
|
+
public fun name<CoinType>(): string::String acquires CoinInfo {
|
|
702
|
+
borrow_global<CoinInfo<CoinType>>(coin_address<CoinType>()).name
|
|
703
|
+
}
|
|
704
|
+
|
|
705
|
+
#[view]
|
|
706
|
+
/// Returns the symbol of the coin, usually a shorter version of the name.
|
|
707
|
+
public fun symbol<CoinType>(): string::String acquires CoinInfo {
|
|
708
|
+
borrow_global<CoinInfo<CoinType>>(coin_address<CoinType>()).symbol
|
|
709
|
+
}
|
|
710
|
+
|
|
711
|
+
#[view]
|
|
712
|
+
/// Returns the number of decimals used to get its user representation.
|
|
713
|
+
/// For example, if `decimals` equals `2`, a balance of `505` coins should
|
|
714
|
+
/// be displayed to a user as `5.05` (`505 / 10 ** 2`).
|
|
715
|
+
public fun decimals<CoinType>(): u8 acquires CoinInfo {
|
|
716
|
+
borrow_global<CoinInfo<CoinType>>(coin_address<CoinType>()).decimals
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
#[view]
|
|
720
|
+
/// Returns the amount of coin in existence.
|
|
721
|
+
public fun supply<CoinType>(): Option<u128> acquires CoinInfo, CoinConversionMap {
|
|
722
|
+
let coin_supply = coin_supply<CoinType>();
|
|
723
|
+
let metadata = paired_metadata<CoinType>();
|
|
724
|
+
if (option::is_some(&metadata)) {
|
|
725
|
+
let fungible_asset_supply = fungible_asset::supply(option::extract(&mut metadata));
|
|
726
|
+
if (option::is_some(&coin_supply)) {
|
|
727
|
+
let supply = option::borrow_mut(&mut coin_supply);
|
|
728
|
+
*supply = *supply + option::destroy_some(fungible_asset_supply);
|
|
729
|
+
};
|
|
730
|
+
};
|
|
731
|
+
coin_supply
|
|
732
|
+
}
|
|
733
|
+
|
|
734
|
+
#[view]
|
|
735
|
+
/// Returns the amount of coin in existence.
|
|
736
|
+
public fun coin_supply<CoinType>(): Option<u128> acquires CoinInfo {
|
|
737
|
+
let maybe_supply = &borrow_global<CoinInfo<CoinType>>(coin_address<CoinType>()).supply;
|
|
738
|
+
if (option::is_some(maybe_supply)) {
|
|
739
|
+
// We do track supply, in this case read from optional aggregator.
|
|
740
|
+
let supply = option::borrow(maybe_supply);
|
|
741
|
+
let value = optional_aggregator::read(supply);
|
|
742
|
+
option::some(value)
|
|
743
|
+
} else {
|
|
744
|
+
option::none()
|
|
745
|
+
}
|
|
746
|
+
}
|
|
747
|
+
//
|
|
748
|
+
// Public functions
|
|
749
|
+
//
|
|
750
|
+
|
|
751
|
+
/// Burn `coin` with capability.
|
|
752
|
+
/// The capability `_cap` should be passed as a reference to `BurnCapability<CoinType>`.
|
|
753
|
+
public fun burn<CoinType>(coin: Coin<CoinType>, _cap: &BurnCapability<CoinType>) acquires CoinInfo {
|
|
754
|
+
burn_internal(coin);
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
/// Burn `coin` from the specified `account` with capability.
|
|
758
|
+
/// The capability `burn_cap` should be passed as a reference to `BurnCapability<CoinType>`.
|
|
759
|
+
/// This function shouldn't fail as it's called as part of transaction fee burning.
|
|
760
|
+
///
|
|
761
|
+
/// Note: This bypasses CoinStore::frozen -- coins within a frozen CoinStore can be burned.
|
|
762
|
+
public fun burn_from<CoinType>(
|
|
763
|
+
account_addr: address,
|
|
764
|
+
amount: u64,
|
|
765
|
+
burn_cap: &BurnCapability<CoinType>,
|
|
766
|
+
) acquires CoinInfo, CoinStore, CoinConversionMap, PairedFungibleAssetRefs {
|
|
767
|
+
// Skip burning if amount is zero. This shouldn't error out as it's called as part of transaction fee burning.
|
|
768
|
+
if (amount == 0) {
|
|
769
|
+
return
|
|
770
|
+
};
|
|
771
|
+
|
|
772
|
+
let (coin_amount_to_burn, fa_amount_to_burn) = calculate_amount_to_withdraw<CoinType>(
|
|
773
|
+
account_addr,
|
|
774
|
+
amount
|
|
775
|
+
);
|
|
776
|
+
if (coin_amount_to_burn > 0) {
|
|
777
|
+
let coin_store = borrow_global_mut<CoinStore<CoinType>>(account_addr);
|
|
778
|
+
let coin_to_burn = extract(&mut coin_store.coin, coin_amount_to_burn);
|
|
779
|
+
burn(coin_to_burn, burn_cap);
|
|
780
|
+
};
|
|
781
|
+
if (fa_amount_to_burn > 0) {
|
|
782
|
+
fungible_asset::burn_from(
|
|
783
|
+
borrow_paired_burn_ref(burn_cap),
|
|
784
|
+
primary_fungible_store::primary_store(account_addr, option::destroy_some(paired_metadata<CoinType>())),
|
|
785
|
+
fa_amount_to_burn
|
|
786
|
+
);
|
|
787
|
+
};
|
|
788
|
+
}
|
|
789
|
+
|
|
790
|
+
/// Deposit the coin balance into the recipient's account and emit an event.
|
|
791
|
+
public fun deposit<CoinType>(
|
|
792
|
+
account_addr: address,
|
|
793
|
+
coin: Coin<CoinType>
|
|
794
|
+
) acquires CoinStore, CoinConversionMap, CoinInfo {
|
|
795
|
+
if (exists<CoinStore<CoinType>>(account_addr)) {
|
|
796
|
+
let coin_store = borrow_global_mut<CoinStore<CoinType>>(account_addr);
|
|
797
|
+
assert!(
|
|
798
|
+
!coin_store.frozen,
|
|
799
|
+
error::permission_denied(EFROZEN),
|
|
800
|
+
);
|
|
801
|
+
if (std::features::module_event_migration_enabled()) {
|
|
802
|
+
event::emit(
|
|
803
|
+
CoinDeposit { coin_type: type_name<CoinType>(), account: account_addr, amount: coin.value }
|
|
804
|
+
);
|
|
805
|
+
} else {
|
|
806
|
+
event::emit_event<DepositEvent>(
|
|
807
|
+
&mut coin_store.deposit_events,
|
|
808
|
+
DepositEvent { amount: coin.value },
|
|
809
|
+
);
|
|
810
|
+
};
|
|
811
|
+
merge(&mut coin_store.coin, coin);
|
|
812
|
+
} else {
|
|
813
|
+
let metadata = paired_metadata<CoinType>();
|
|
814
|
+
if (option::is_some(&metadata) && migrated_primary_fungible_store_exists(
|
|
815
|
+
account_addr,
|
|
816
|
+
option::destroy_some(metadata)
|
|
817
|
+
)) {
|
|
818
|
+
primary_fungible_store::deposit(account_addr, coin_to_fungible_asset(coin));
|
|
819
|
+
} else {
|
|
820
|
+
abort error::not_found(ECOIN_STORE_NOT_PUBLISHED)
|
|
821
|
+
};
|
|
822
|
+
}
|
|
823
|
+
}
|
|
824
|
+
|
|
825
|
+
inline fun migrated_primary_fungible_store_exists(
|
|
826
|
+
account_address: address,
|
|
827
|
+
metadata: Object<Metadata>
|
|
828
|
+
): bool {
|
|
829
|
+
let primary_store_address = primary_fungible_store::primary_store_address<Metadata>(account_address, metadata);
|
|
830
|
+
fungible_asset::store_exists(primary_store_address) && (
|
|
831
|
+
// migration flag is needed, until we start defaulting new accounts to APT PFS
|
|
832
|
+
features::new_accounts_default_to_fa_apt_store_enabled() || exists<MigrationFlag>(primary_store_address)
|
|
833
|
+
)
|
|
834
|
+
}
|
|
835
|
+
|
|
836
|
+
/// Deposit the coin balance into the recipient's account without checking if the account is frozen.
|
|
837
|
+
/// This is for internal use only and doesn't emit an DepositEvent.
|
|
838
|
+
public(friend) fun force_deposit<CoinType>(
|
|
839
|
+
account_addr: address,
|
|
840
|
+
coin: Coin<CoinType>
|
|
841
|
+
) acquires CoinStore, CoinConversionMap, CoinInfo {
|
|
842
|
+
if (exists<CoinStore<CoinType>>(account_addr)) {
|
|
843
|
+
let coin_store = borrow_global_mut<CoinStore<CoinType>>(account_addr);
|
|
844
|
+
merge(&mut coin_store.coin, coin);
|
|
845
|
+
} else {
|
|
846
|
+
let metadata = paired_metadata<CoinType>();
|
|
847
|
+
if (option::is_some(&metadata) && migrated_primary_fungible_store_exists(
|
|
848
|
+
account_addr,
|
|
849
|
+
option::destroy_some(metadata)
|
|
850
|
+
)) {
|
|
851
|
+
let fa = coin_to_fungible_asset(coin);
|
|
852
|
+
let metadata = fungible_asset::asset_metadata(&fa);
|
|
853
|
+
let store = primary_fungible_store::primary_store(account_addr, metadata);
|
|
854
|
+
fungible_asset::deposit_internal(object::object_address(&store), fa);
|
|
855
|
+
} else {
|
|
856
|
+
abort error::not_found(ECOIN_STORE_NOT_PUBLISHED)
|
|
857
|
+
}
|
|
858
|
+
}
|
|
859
|
+
}
|
|
860
|
+
|
|
861
|
+
/// Destroys a zero-value coin. Calls will fail if the `value` in the passed-in `token` is non-zero
|
|
862
|
+
/// so it is impossible to "burn" any non-zero amount of `Coin` without having
|
|
863
|
+
/// a `BurnCapability` for the specific `CoinType`.
|
|
864
|
+
public fun destroy_zero<CoinType>(zero_coin: Coin<CoinType>) {
|
|
865
|
+
spec {
|
|
866
|
+
update supply<CoinType> = supply<CoinType> - zero_coin.value;
|
|
867
|
+
};
|
|
868
|
+
let Coin { value } = zero_coin;
|
|
869
|
+
assert!(value == 0, error::invalid_argument(EDESTRUCTION_OF_NONZERO_TOKEN))
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
/// Extracts `amount` from the passed-in `coin`, where the original token is modified in place.
|
|
873
|
+
public fun extract<CoinType>(coin: &mut Coin<CoinType>, amount: u64): Coin<CoinType> {
|
|
874
|
+
assert!(coin.value >= amount, error::invalid_argument(EINSUFFICIENT_BALANCE));
|
|
875
|
+
spec {
|
|
876
|
+
update supply<CoinType> = supply<CoinType> - amount;
|
|
877
|
+
};
|
|
878
|
+
coin.value = coin.value - amount;
|
|
879
|
+
spec {
|
|
880
|
+
update supply<CoinType> = supply<CoinType> + amount;
|
|
881
|
+
};
|
|
882
|
+
Coin { value: amount }
|
|
883
|
+
}
|
|
884
|
+
|
|
885
|
+
/// Extracts the entire amount from the passed-in `coin`, where the original token is modified in place.
|
|
886
|
+
public fun extract_all<CoinType>(coin: &mut Coin<CoinType>): Coin<CoinType> {
|
|
887
|
+
let total_value = coin.value;
|
|
888
|
+
spec {
|
|
889
|
+
update supply<CoinType> = supply<CoinType> - coin.value;
|
|
890
|
+
};
|
|
891
|
+
coin.value = 0;
|
|
892
|
+
spec {
|
|
893
|
+
update supply<CoinType> = supply<CoinType> + total_value;
|
|
894
|
+
};
|
|
895
|
+
Coin { value: total_value }
|
|
896
|
+
}
|
|
897
|
+
|
|
898
|
+
#[legacy_entry_fun]
|
|
899
|
+
/// Freeze a CoinStore to prevent transfers
|
|
900
|
+
public entry fun freeze_coin_store<CoinType>(
|
|
901
|
+
account_addr: address,
|
|
902
|
+
_freeze_cap: &FreezeCapability<CoinType>,
|
|
903
|
+
) acquires CoinStore {
|
|
904
|
+
let coin_store = borrow_global_mut<CoinStore<CoinType>>(account_addr);
|
|
905
|
+
coin_store.frozen = true;
|
|
906
|
+
}
|
|
907
|
+
|
|
908
|
+
#[legacy_entry_fun]
|
|
909
|
+
/// Unfreeze a CoinStore to allow transfers
|
|
910
|
+
public entry fun unfreeze_coin_store<CoinType>(
|
|
911
|
+
account_addr: address,
|
|
912
|
+
_freeze_cap: &FreezeCapability<CoinType>,
|
|
913
|
+
) acquires CoinStore {
|
|
914
|
+
let coin_store = borrow_global_mut<CoinStore<CoinType>>(account_addr);
|
|
915
|
+
coin_store.frozen = false;
|
|
916
|
+
}
|
|
917
|
+
|
|
918
|
+
/// Upgrade total supply to use a parallelizable implementation if it is
|
|
919
|
+
/// available.
|
|
920
|
+
public entry fun upgrade_supply<CoinType>(_account: &signer) {
|
|
921
|
+
abort error::invalid_state(ECOIN_SUPPLY_UPGRADE_NOT_SUPPORTED)
|
|
922
|
+
}
|
|
923
|
+
|
|
924
|
+
/// Creates a new Coin with given `CoinType` and returns minting/freezing/burning capabilities.
|
|
925
|
+
/// The given signer also becomes the account hosting the information about the coin
|
|
926
|
+
/// (name, supply, etc.). Supply is initialized as non-parallelizable integer.
|
|
927
|
+
public fun initialize<CoinType>(
|
|
928
|
+
account: &signer,
|
|
929
|
+
name: string::String,
|
|
930
|
+
symbol: string::String,
|
|
931
|
+
decimals: u8,
|
|
932
|
+
monitor_supply: bool,
|
|
933
|
+
): (BurnCapability<CoinType>, FreezeCapability<CoinType>, MintCapability<CoinType>) {
|
|
934
|
+
initialize_internal(account, name, symbol, decimals, monitor_supply, false)
|
|
935
|
+
}
|
|
936
|
+
|
|
937
|
+
/// Same as `initialize` but supply can be initialized to parallelizable aggregator.
|
|
938
|
+
public(friend) fun initialize_with_parallelizable_supply<CoinType>(
|
|
939
|
+
account: &signer,
|
|
940
|
+
name: string::String,
|
|
941
|
+
symbol: string::String,
|
|
942
|
+
decimals: u8,
|
|
943
|
+
monitor_supply: bool,
|
|
944
|
+
): (BurnCapability<CoinType>, FreezeCapability<CoinType>, MintCapability<CoinType>) {
|
|
945
|
+
system_addresses::assert_aptos_framework(account);
|
|
946
|
+
initialize_internal(account, name, symbol, decimals, monitor_supply, true)
|
|
947
|
+
}
|
|
948
|
+
|
|
949
|
+
fun initialize_internal<CoinType>(
|
|
950
|
+
account: &signer,
|
|
951
|
+
name: string::String,
|
|
952
|
+
symbol: string::String,
|
|
953
|
+
decimals: u8,
|
|
954
|
+
monitor_supply: bool,
|
|
955
|
+
parallelizable: bool,
|
|
956
|
+
): (BurnCapability<CoinType>, FreezeCapability<CoinType>, MintCapability<CoinType>) {
|
|
957
|
+
let account_addr = signer::address_of(account);
|
|
958
|
+
|
|
959
|
+
assert!(
|
|
960
|
+
coin_address<CoinType>() == account_addr,
|
|
961
|
+
error::invalid_argument(ECOIN_INFO_ADDRESS_MISMATCH),
|
|
962
|
+
);
|
|
963
|
+
|
|
964
|
+
assert!(
|
|
965
|
+
!exists<CoinInfo<CoinType>>(account_addr),
|
|
966
|
+
error::already_exists(ECOIN_INFO_ALREADY_PUBLISHED),
|
|
967
|
+
);
|
|
968
|
+
|
|
969
|
+
assert!(string::length(&name) <= MAX_COIN_NAME_LENGTH, error::invalid_argument(ECOIN_NAME_TOO_LONG));
|
|
970
|
+
assert!(string::length(&symbol) <= MAX_COIN_SYMBOL_LENGTH, error::invalid_argument(ECOIN_SYMBOL_TOO_LONG));
|
|
971
|
+
|
|
972
|
+
let coin_info = CoinInfo<CoinType> {
|
|
973
|
+
name,
|
|
974
|
+
symbol,
|
|
975
|
+
decimals,
|
|
976
|
+
supply: if (monitor_supply) {
|
|
977
|
+
option::some(
|
|
978
|
+
optional_aggregator::new(parallelizable)
|
|
979
|
+
)
|
|
980
|
+
} else { option::none() },
|
|
981
|
+
};
|
|
982
|
+
move_to(account, coin_info);
|
|
983
|
+
|
|
984
|
+
(BurnCapability<CoinType> {}, FreezeCapability<CoinType> {}, MintCapability<CoinType> {})
|
|
985
|
+
}
|
|
986
|
+
|
|
987
|
+
/// "Merges" the two given coins. The coin passed in as `dst_coin` will have a value equal
|
|
988
|
+
/// to the sum of the two tokens (`dst_coin` and `source_coin`).
|
|
989
|
+
public fun merge<CoinType>(dst_coin: &mut Coin<CoinType>, source_coin: Coin<CoinType>) {
|
|
990
|
+
spec {
|
|
991
|
+
assume dst_coin.value + source_coin.value <= MAX_U64;
|
|
992
|
+
};
|
|
993
|
+
spec {
|
|
994
|
+
update supply<CoinType> = supply<CoinType> - source_coin.value;
|
|
995
|
+
};
|
|
996
|
+
let Coin { value } = source_coin;
|
|
997
|
+
spec {
|
|
998
|
+
update supply<CoinType> = supply<CoinType> + value;
|
|
999
|
+
};
|
|
1000
|
+
dst_coin.value = dst_coin.value + value;
|
|
1001
|
+
}
|
|
1002
|
+
|
|
1003
|
+
/// Mint new `Coin` with capability.
|
|
1004
|
+
/// The capability `_cap` should be passed as reference to `MintCapability<CoinType>`.
|
|
1005
|
+
/// Returns minted `Coin`.
|
|
1006
|
+
public fun mint<CoinType>(
|
|
1007
|
+
amount: u64,
|
|
1008
|
+
_cap: &MintCapability<CoinType>,
|
|
1009
|
+
): Coin<CoinType> acquires CoinInfo {
|
|
1010
|
+
mint_internal<CoinType>(amount)
|
|
1011
|
+
}
|
|
1012
|
+
|
|
1013
|
+
public fun register<CoinType>(account: &signer) acquires CoinConversionMap {
|
|
1014
|
+
let account_addr = signer::address_of(account);
|
|
1015
|
+
// Short-circuit and do nothing if account is already registered for CoinType.
|
|
1016
|
+
if (is_account_registered<CoinType>(account_addr)) {
|
|
1017
|
+
return
|
|
1018
|
+
};
|
|
1019
|
+
|
|
1020
|
+
account::register_coin<CoinType>(account_addr);
|
|
1021
|
+
let coin_store = CoinStore<CoinType> {
|
|
1022
|
+
coin: Coin { value: 0 },
|
|
1023
|
+
frozen: false,
|
|
1024
|
+
deposit_events: account::new_event_handle<DepositEvent>(account),
|
|
1025
|
+
withdraw_events: account::new_event_handle<WithdrawEvent>(account),
|
|
1026
|
+
};
|
|
1027
|
+
move_to(account, coin_store);
|
|
1028
|
+
}
|
|
1029
|
+
|
|
1030
|
+
/// Transfers `amount` of coins `CoinType` from `from` to `to`.
|
|
1031
|
+
public entry fun transfer<CoinType>(
|
|
1032
|
+
from: &signer,
|
|
1033
|
+
to: address,
|
|
1034
|
+
amount: u64,
|
|
1035
|
+
) acquires CoinStore, CoinConversionMap, CoinInfo, PairedCoinType {
|
|
1036
|
+
let coin = withdraw<CoinType>(from, amount);
|
|
1037
|
+
deposit(to, coin);
|
|
1038
|
+
}
|
|
1039
|
+
|
|
1040
|
+
/// Returns the `value` passed in `coin`.
|
|
1041
|
+
public fun value<CoinType>(coin: &Coin<CoinType>): u64 {
|
|
1042
|
+
coin.value
|
|
1043
|
+
}
|
|
1044
|
+
|
|
1045
|
+
/// Withdraw specified `amount` of coin `CoinType` from the signing account.
|
|
1046
|
+
public fun withdraw<CoinType>(
|
|
1047
|
+
account: &signer,
|
|
1048
|
+
amount: u64,
|
|
1049
|
+
): Coin<CoinType> acquires CoinStore, CoinConversionMap, CoinInfo, PairedCoinType {
|
|
1050
|
+
let account_addr = signer::address_of(account);
|
|
1051
|
+
|
|
1052
|
+
let (coin_amount_to_withdraw, fa_amount_to_withdraw) = calculate_amount_to_withdraw<CoinType>(
|
|
1053
|
+
account_addr,
|
|
1054
|
+
amount
|
|
1055
|
+
);
|
|
1056
|
+
let withdrawn_coin = if (coin_amount_to_withdraw > 0) {
|
|
1057
|
+
let coin_store = borrow_global_mut<CoinStore<CoinType>>(account_addr);
|
|
1058
|
+
assert!(
|
|
1059
|
+
!coin_store.frozen,
|
|
1060
|
+
error::permission_denied(EFROZEN),
|
|
1061
|
+
);
|
|
1062
|
+
if (std::features::module_event_migration_enabled()) {
|
|
1063
|
+
event::emit(
|
|
1064
|
+
CoinWithdraw {
|
|
1065
|
+
coin_type: type_name<CoinType>(), account: account_addr, amount: coin_amount_to_withdraw
|
|
1066
|
+
}
|
|
1067
|
+
);
|
|
1068
|
+
} else {
|
|
1069
|
+
event::emit_event<WithdrawEvent>(
|
|
1070
|
+
&mut coin_store.withdraw_events,
|
|
1071
|
+
WithdrawEvent { amount: coin_amount_to_withdraw },
|
|
1072
|
+
);
|
|
1073
|
+
};
|
|
1074
|
+
extract(&mut coin_store.coin, coin_amount_to_withdraw)
|
|
1075
|
+
} else {
|
|
1076
|
+
zero()
|
|
1077
|
+
};
|
|
1078
|
+
if (fa_amount_to_withdraw > 0) {
|
|
1079
|
+
let fa = primary_fungible_store::withdraw(
|
|
1080
|
+
account,
|
|
1081
|
+
option::destroy_some(paired_metadata<CoinType>()),
|
|
1082
|
+
fa_amount_to_withdraw
|
|
1083
|
+
);
|
|
1084
|
+
merge(&mut withdrawn_coin, fungible_asset_to_coin(fa));
|
|
1085
|
+
};
|
|
1086
|
+
withdrawn_coin
|
|
1087
|
+
}
|
|
1088
|
+
|
|
1089
|
+
/// Create a new `Coin<CoinType>` with a value of `0`.
|
|
1090
|
+
public fun zero<CoinType>(): Coin<CoinType> {
|
|
1091
|
+
spec {
|
|
1092
|
+
update supply<CoinType> = supply<CoinType> + 0;
|
|
1093
|
+
};
|
|
1094
|
+
Coin<CoinType> {
|
|
1095
|
+
value: 0
|
|
1096
|
+
}
|
|
1097
|
+
}
|
|
1098
|
+
|
|
1099
|
+
/// Destroy a freeze capability. Freeze capability is dangerous and therefore should be destroyed if not used.
|
|
1100
|
+
public fun destroy_freeze_cap<CoinType>(freeze_cap: FreezeCapability<CoinType>) {
|
|
1101
|
+
let FreezeCapability<CoinType> {} = freeze_cap;
|
|
1102
|
+
}
|
|
1103
|
+
|
|
1104
|
+
/// Destroy a mint capability.
|
|
1105
|
+
public fun destroy_mint_cap<CoinType>(mint_cap: MintCapability<CoinType>) {
|
|
1106
|
+
let MintCapability<CoinType> {} = mint_cap;
|
|
1107
|
+
}
|
|
1108
|
+
|
|
1109
|
+
/// Destroy a burn capability.
|
|
1110
|
+
public fun destroy_burn_cap<CoinType>(burn_cap: BurnCapability<CoinType>) {
|
|
1111
|
+
let BurnCapability<CoinType> {} = burn_cap;
|
|
1112
|
+
}
|
|
1113
|
+
|
|
1114
|
+
fun mint_internal<CoinType>(amount: u64): Coin<CoinType> acquires CoinInfo {
|
|
1115
|
+
if (amount == 0) {
|
|
1116
|
+
return Coin<CoinType> {
|
|
1117
|
+
value: 0
|
|
1118
|
+
}
|
|
1119
|
+
};
|
|
1120
|
+
|
|
1121
|
+
let maybe_supply = &mut borrow_global_mut<CoinInfo<CoinType>>(coin_address<CoinType>()).supply;
|
|
1122
|
+
if (option::is_some(maybe_supply)) {
|
|
1123
|
+
let supply = option::borrow_mut(maybe_supply);
|
|
1124
|
+
spec {
|
|
1125
|
+
use aptos_framework::optional_aggregator;
|
|
1126
|
+
use aptos_framework::aggregator;
|
|
1127
|
+
assume optional_aggregator::is_parallelizable(supply) ==> (aggregator::spec_aggregator_get_val(
|
|
1128
|
+
option::borrow(supply.aggregator)
|
|
1129
|
+
)
|
|
1130
|
+
+ amount <= aggregator::spec_get_limit(option::borrow(supply.aggregator)));
|
|
1131
|
+
assume !optional_aggregator::is_parallelizable(supply) ==>
|
|
1132
|
+
(option::borrow(supply.integer).value + amount <= option::borrow(supply.integer).limit);
|
|
1133
|
+
};
|
|
1134
|
+
optional_aggregator::add(supply, (amount as u128));
|
|
1135
|
+
};
|
|
1136
|
+
spec {
|
|
1137
|
+
update supply<CoinType> = supply<CoinType> + amount;
|
|
1138
|
+
};
|
|
1139
|
+
Coin<CoinType> { value: amount }
|
|
1140
|
+
}
|
|
1141
|
+
|
|
1142
|
+
fun burn_internal<CoinType>(coin: Coin<CoinType>): u64 acquires CoinInfo {
|
|
1143
|
+
spec {
|
|
1144
|
+
update supply<CoinType> = supply<CoinType> - coin.value;
|
|
1145
|
+
};
|
|
1146
|
+
let Coin { value: amount } = coin;
|
|
1147
|
+
if (amount != 0) {
|
|
1148
|
+
let maybe_supply = &mut borrow_global_mut<CoinInfo<CoinType>>(coin_address<CoinType>()).supply;
|
|
1149
|
+
if (option::is_some(maybe_supply)) {
|
|
1150
|
+
let supply = option::borrow_mut(maybe_supply);
|
|
1151
|
+
optional_aggregator::sub(supply, (amount as u128));
|
|
1152
|
+
};
|
|
1153
|
+
};
|
|
1154
|
+
amount
|
|
1155
|
+
}
|
|
1156
|
+
|
|
1157
|
+
#[test_only]
|
|
1158
|
+
use aptos_framework::aggregator;
|
|
1159
|
+
|
|
1160
|
+
#[test_only]
|
|
1161
|
+
struct FakeMoney {}
|
|
1162
|
+
|
|
1163
|
+
#[test_only]
|
|
1164
|
+
struct FakeMoneyCapabilities has key {
|
|
1165
|
+
burn_cap: BurnCapability<FakeMoney>,
|
|
1166
|
+
freeze_cap: FreezeCapability<FakeMoney>,
|
|
1167
|
+
mint_cap: MintCapability<FakeMoney>,
|
|
1168
|
+
}
|
|
1169
|
+
|
|
1170
|
+
#[test_only]
|
|
1171
|
+
struct FakeMoneyRefs has key {
|
|
1172
|
+
mint_ref: MintRef,
|
|
1173
|
+
transfer_ref: TransferRef,
|
|
1174
|
+
burn_ref: BurnRef,
|
|
1175
|
+
}
|
|
1176
|
+
|
|
1177
|
+
#[test_only]
|
|
1178
|
+
fun create_coin_store<CoinType>(account: &signer) {
|
|
1179
|
+
assert!(is_coin_initialized<CoinType>(), error::invalid_argument(ECOIN_INFO_NOT_PUBLISHED));
|
|
1180
|
+
if (!exists<CoinStore<CoinType>>(signer::address_of(account))) {
|
|
1181
|
+
let coin_store = CoinStore<CoinType> {
|
|
1182
|
+
coin: Coin { value: 0 },
|
|
1183
|
+
frozen: false,
|
|
1184
|
+
deposit_events: account::new_event_handle<DepositEvent>(account),
|
|
1185
|
+
withdraw_events: account::new_event_handle<WithdrawEvent>(account),
|
|
1186
|
+
};
|
|
1187
|
+
move_to(account, coin_store);
|
|
1188
|
+
}
|
|
1189
|
+
}
|
|
1190
|
+
|
|
1191
|
+
#[test_only]
|
|
1192
|
+
fun coin_store_exists<CoinType>(account: address): bool {
|
|
1193
|
+
exists<CoinStore<CoinType>>(account)
|
|
1194
|
+
}
|
|
1195
|
+
|
|
1196
|
+
#[test_only]
|
|
1197
|
+
fun initialize_fake_money(
|
|
1198
|
+
account: &signer,
|
|
1199
|
+
decimals: u8,
|
|
1200
|
+
monitor_supply: bool,
|
|
1201
|
+
): (BurnCapability<FakeMoney>, FreezeCapability<FakeMoney>, MintCapability<FakeMoney>) {
|
|
1202
|
+
aggregator_factory::initialize_aggregator_factory_for_test(account);
|
|
1203
|
+
initialize<FakeMoney>(
|
|
1204
|
+
account,
|
|
1205
|
+
string::utf8(b"Fake money"),
|
|
1206
|
+
string::utf8(b"FMD"),
|
|
1207
|
+
decimals,
|
|
1208
|
+
monitor_supply
|
|
1209
|
+
)
|
|
1210
|
+
}
|
|
1211
|
+
|
|
1212
|
+
#[test_only]
|
|
1213
|
+
public fun initialize_and_register_fake_money(
|
|
1214
|
+
account: &signer,
|
|
1215
|
+
decimals: u8,
|
|
1216
|
+
monitor_supply: bool,
|
|
1217
|
+
): (BurnCapability<FakeMoney>, FreezeCapability<FakeMoney>, MintCapability<FakeMoney>) {
|
|
1218
|
+
let (burn_cap, freeze_cap, mint_cap) = initialize_fake_money(
|
|
1219
|
+
account,
|
|
1220
|
+
decimals,
|
|
1221
|
+
monitor_supply
|
|
1222
|
+
);
|
|
1223
|
+
create_coin_store<FakeMoney>(account);
|
|
1224
|
+
create_coin_conversion_map(account);
|
|
1225
|
+
(burn_cap, freeze_cap, mint_cap)
|
|
1226
|
+
}
|
|
1227
|
+
|
|
1228
|
+
#[test_only]
|
|
1229
|
+
public entry fun create_fake_money(
|
|
1230
|
+
source: &signer,
|
|
1231
|
+
destination: &signer,
|
|
1232
|
+
amount: u64
|
|
1233
|
+
) acquires CoinInfo, CoinStore, CoinConversionMap {
|
|
1234
|
+
let (burn_cap, freeze_cap, mint_cap) = initialize_and_register_fake_money(source, 18, true);
|
|
1235
|
+
|
|
1236
|
+
create_coin_store<FakeMoney>(destination);
|
|
1237
|
+
let coins_minted = mint<FakeMoney>(amount, &mint_cap);
|
|
1238
|
+
deposit(signer::address_of(source), coins_minted);
|
|
1239
|
+
move_to(source, FakeMoneyCapabilities {
|
|
1240
|
+
burn_cap,
|
|
1241
|
+
freeze_cap,
|
|
1242
|
+
mint_cap,
|
|
1243
|
+
});
|
|
1244
|
+
}
|
|
1245
|
+
|
|
1246
|
+
#[test(source = @0x1, destination = @0x2)]
|
|
1247
|
+
public entry fun end_to_end(
|
|
1248
|
+
source: signer,
|
|
1249
|
+
destination: signer,
|
|
1250
|
+
) acquires CoinInfo, CoinStore, CoinConversionMap, PairedCoinType {
|
|
1251
|
+
let source_addr = signer::address_of(&source);
|
|
1252
|
+
account::create_account_for_test(source_addr);
|
|
1253
|
+
let destination_addr = signer::address_of(&destination);
|
|
1254
|
+
account::create_account_for_test(destination_addr);
|
|
1255
|
+
|
|
1256
|
+
let name = string::utf8(b"Fake money");
|
|
1257
|
+
let symbol = string::utf8(b"FMD");
|
|
1258
|
+
|
|
1259
|
+
let (burn_cap, freeze_cap, mint_cap) = initialize_and_register_fake_money(
|
|
1260
|
+
&source,
|
|
1261
|
+
18,
|
|
1262
|
+
true
|
|
1263
|
+
);
|
|
1264
|
+
register<FakeMoney>(&source);
|
|
1265
|
+
register<FakeMoney>(&destination);
|
|
1266
|
+
assert!(*option::borrow(&supply<FakeMoney>()) == 0, 0);
|
|
1267
|
+
|
|
1268
|
+
assert!(name<FakeMoney>() == name, 1);
|
|
1269
|
+
assert!(symbol<FakeMoney>() == symbol, 2);
|
|
1270
|
+
assert!(decimals<FakeMoney>() == 18, 3);
|
|
1271
|
+
|
|
1272
|
+
let coins_minted = mint<FakeMoney>(100, &mint_cap);
|
|
1273
|
+
deposit(source_addr, coins_minted);
|
|
1274
|
+
maybe_convert_to_fungible_store<FakeMoney>(source_addr);
|
|
1275
|
+
assert!(!coin_store_exists<FakeMoney>(source_addr), 0);
|
|
1276
|
+
assert!(coin_store_exists<FakeMoney>(destination_addr), 0);
|
|
1277
|
+
|
|
1278
|
+
transfer<FakeMoney>(&source, destination_addr, 50);
|
|
1279
|
+
maybe_convert_to_fungible_store<FakeMoney>(destination_addr);
|
|
1280
|
+
assert!(!coin_store_exists<FakeMoney>(destination_addr), 0);
|
|
1281
|
+
|
|
1282
|
+
assert!(balance<FakeMoney>(source_addr) == 50, 4);
|
|
1283
|
+
assert!(balance<FakeMoney>(destination_addr) == 50, 5);
|
|
1284
|
+
assert!(*option::borrow(&supply<FakeMoney>()) == 100, 6);
|
|
1285
|
+
|
|
1286
|
+
let coin = withdraw<FakeMoney>(&source, 10);
|
|
1287
|
+
assert!(value(&coin) == 10, 7);
|
|
1288
|
+
burn(coin, &burn_cap);
|
|
1289
|
+
assert!(*option::borrow(&supply<FakeMoney>()) == 90, 8);
|
|
1290
|
+
|
|
1291
|
+
move_to(&source, FakeMoneyCapabilities {
|
|
1292
|
+
burn_cap,
|
|
1293
|
+
freeze_cap,
|
|
1294
|
+
mint_cap,
|
|
1295
|
+
});
|
|
1296
|
+
}
|
|
1297
|
+
|
|
1298
|
+
#[test(source = @0x1, destination = @0x2)]
|
|
1299
|
+
public entry fun end_to_end_no_supply(
|
|
1300
|
+
source: signer,
|
|
1301
|
+
destination: signer,
|
|
1302
|
+
) acquires CoinInfo, CoinStore, CoinConversionMap, PairedCoinType {
|
|
1303
|
+
let source_addr = signer::address_of(&source);
|
|
1304
|
+
account::create_account_for_test(source_addr);
|
|
1305
|
+
let destination_addr = signer::address_of(&destination);
|
|
1306
|
+
account::create_account_for_test(destination_addr);
|
|
1307
|
+
|
|
1308
|
+
let (burn_cap, freeze_cap, mint_cap) = initialize_and_register_fake_money(&source, 1, false);
|
|
1309
|
+
|
|
1310
|
+
register<FakeMoney>(&destination);
|
|
1311
|
+
assert!(option::is_none(&supply<FakeMoney>()), 0);
|
|
1312
|
+
|
|
1313
|
+
let coins_minted = mint<FakeMoney>(100, &mint_cap);
|
|
1314
|
+
deposit<FakeMoney>(source_addr, coins_minted);
|
|
1315
|
+
transfer<FakeMoney>(&source, destination_addr, 50);
|
|
1316
|
+
|
|
1317
|
+
assert!(balance<FakeMoney>(source_addr) == 50, 1);
|
|
1318
|
+
assert!(balance<FakeMoney>(destination_addr) == 50, 2);
|
|
1319
|
+
assert!(option::is_none(&supply<FakeMoney>()), 3);
|
|
1320
|
+
|
|
1321
|
+
let coin = withdraw<FakeMoney>(&source, 10);
|
|
1322
|
+
burn(coin, &burn_cap);
|
|
1323
|
+
assert!(option::is_none(&supply<FakeMoney>()), 4);
|
|
1324
|
+
|
|
1325
|
+
move_to(&source, FakeMoneyCapabilities {
|
|
1326
|
+
burn_cap,
|
|
1327
|
+
freeze_cap,
|
|
1328
|
+
mint_cap,
|
|
1329
|
+
});
|
|
1330
|
+
}
|
|
1331
|
+
|
|
1332
|
+
#[test(source = @0x2, framework = @aptos_framework)]
|
|
1333
|
+
#[expected_failure(abort_code = 0x10001, location = Self)]
|
|
1334
|
+
public fun fail_initialize(source: signer, framework: signer) {
|
|
1335
|
+
aggregator_factory::initialize_aggregator_factory_for_test(&framework);
|
|
1336
|
+
let (burn_cap, freeze_cap, mint_cap) = initialize<FakeMoney>(
|
|
1337
|
+
&source,
|
|
1338
|
+
string::utf8(b"Fake money"),
|
|
1339
|
+
string::utf8(b"FMD"),
|
|
1340
|
+
1,
|
|
1341
|
+
true,
|
|
1342
|
+
);
|
|
1343
|
+
|
|
1344
|
+
move_to(&source, FakeMoneyCapabilities {
|
|
1345
|
+
burn_cap,
|
|
1346
|
+
freeze_cap,
|
|
1347
|
+
mint_cap,
|
|
1348
|
+
});
|
|
1349
|
+
}
|
|
1350
|
+
|
|
1351
|
+
#[test(source = @0x1, destination = @0x2)]
|
|
1352
|
+
public entry fun transfer_to_migrated_destination(
|
|
1353
|
+
source: signer,
|
|
1354
|
+
destination: signer,
|
|
1355
|
+
) acquires CoinInfo, CoinStore, CoinConversionMap, PairedCoinType {
|
|
1356
|
+
let source_addr = signer::address_of(&source);
|
|
1357
|
+
account::create_account_for_test(source_addr);
|
|
1358
|
+
let destination_addr = signer::address_of(&destination);
|
|
1359
|
+
account::create_account_for_test(destination_addr);
|
|
1360
|
+
|
|
1361
|
+
let (burn_cap, freeze_cap, mint_cap) = initialize_and_register_fake_money(&source, 1, true);
|
|
1362
|
+
assert!(*option::borrow(&supply<FakeMoney>()) == 0, 0);
|
|
1363
|
+
|
|
1364
|
+
let coins_minted = mint<FakeMoney>(100, &mint_cap);
|
|
1365
|
+
deposit(source_addr, coins_minted);
|
|
1366
|
+
maybe_convert_to_fungible_store<FakeMoney>(source_addr);
|
|
1367
|
+
assert!(!coin_store_exists<FakeMoney>(source_addr), 0);
|
|
1368
|
+
maybe_convert_to_fungible_store<FakeMoney>(destination_addr);
|
|
1369
|
+
transfer<FakeMoney>(&source, destination_addr, 50);
|
|
1370
|
+
assert!(balance<FakeMoney>(destination_addr) == 50, 2);
|
|
1371
|
+
assert!(!coin_store_exists<FakeMoney>(destination_addr), 0);
|
|
1372
|
+
|
|
1373
|
+
move_to(&source, FakeMoneyCapabilities {
|
|
1374
|
+
burn_cap,
|
|
1375
|
+
freeze_cap,
|
|
1376
|
+
mint_cap,
|
|
1377
|
+
});
|
|
1378
|
+
}
|
|
1379
|
+
|
|
1380
|
+
#[test(source = @0x1)]
|
|
1381
|
+
public entry fun test_burn_from_with_capability(
|
|
1382
|
+
source: signer,
|
|
1383
|
+
) acquires CoinInfo, CoinStore, CoinConversionMap, PairedFungibleAssetRefs {
|
|
1384
|
+
let source_addr = signer::address_of(&source);
|
|
1385
|
+
account::create_account_for_test(source_addr);
|
|
1386
|
+
let (burn_cap, freeze_cap, mint_cap) = initialize_and_register_fake_money(&source, 1, true);
|
|
1387
|
+
|
|
1388
|
+
let coins_minted = mint<FakeMoney>(100, &mint_cap);
|
|
1389
|
+
deposit(source_addr, coins_minted);
|
|
1390
|
+
let fa_minted = coin_to_fungible_asset(mint<FakeMoney>(200, &mint_cap));
|
|
1391
|
+
primary_fungible_store::deposit(source_addr, fa_minted);
|
|
1392
|
+
|
|
1393
|
+
// Burn coin only with both stores
|
|
1394
|
+
burn_from<FakeMoney>(source_addr, 50, &burn_cap);
|
|
1395
|
+
assert!(balance<FakeMoney>(source_addr) == 250, 0);
|
|
1396
|
+
assert!(coin_balance<FakeMoney>(source_addr) == 50, 0);
|
|
1397
|
+
|
|
1398
|
+
// Burn coin and fa with both stores
|
|
1399
|
+
burn_from<FakeMoney>(source_addr, 100, &burn_cap);
|
|
1400
|
+
assert!(balance<FakeMoney>(source_addr) == 150, 0);
|
|
1401
|
+
assert!(primary_fungible_store::balance(source_addr, ensure_paired_metadata<FakeMoney>()) == 150, 0);
|
|
1402
|
+
|
|
1403
|
+
// Burn fa only with both stores
|
|
1404
|
+
burn_from<FakeMoney>(source_addr, 100, &burn_cap);
|
|
1405
|
+
assert!(balance<FakeMoney>(source_addr) == 50, 0);
|
|
1406
|
+
assert!(primary_fungible_store::balance(source_addr, ensure_paired_metadata<FakeMoney>()) == 50, 0);
|
|
1407
|
+
|
|
1408
|
+
// Burn fa only with only fungible store
|
|
1409
|
+
let coins_minted = mint<FakeMoney>(50, &mint_cap);
|
|
1410
|
+
deposit(source_addr, coins_minted);
|
|
1411
|
+
maybe_convert_to_fungible_store<FakeMoney>(source_addr);
|
|
1412
|
+
assert!(!coin_store_exists<FakeMoney>(source_addr), 0);
|
|
1413
|
+
assert!(balance<FakeMoney>(source_addr) == 100, 0);
|
|
1414
|
+
assert!(*option::borrow(&supply<FakeMoney>()) == 100, 1);
|
|
1415
|
+
|
|
1416
|
+
burn_from<FakeMoney>(source_addr, 10, &burn_cap);
|
|
1417
|
+
assert!(balance<FakeMoney>(source_addr) == 90, 2);
|
|
1418
|
+
assert!(*option::borrow(&supply<FakeMoney>()) == 90, 3);
|
|
1419
|
+
|
|
1420
|
+
move_to(&source, FakeMoneyCapabilities {
|
|
1421
|
+
burn_cap,
|
|
1422
|
+
freeze_cap,
|
|
1423
|
+
mint_cap,
|
|
1424
|
+
});
|
|
1425
|
+
}
|
|
1426
|
+
|
|
1427
|
+
#[test(source = @0x1)]
|
|
1428
|
+
#[expected_failure(abort_code = 0x10007, location = Self)]
|
|
1429
|
+
public fun test_destroy_non_zero(
|
|
1430
|
+
source: signer,
|
|
1431
|
+
) acquires CoinInfo {
|
|
1432
|
+
account::create_account_for_test(signer::address_of(&source));
|
|
1433
|
+
let (burn_cap, freeze_cap, mint_cap) = initialize_and_register_fake_money(&source, 1, true);
|
|
1434
|
+
let coins_minted = mint<FakeMoney>(100, &mint_cap);
|
|
1435
|
+
destroy_zero(coins_minted);
|
|
1436
|
+
|
|
1437
|
+
move_to(&source, FakeMoneyCapabilities {
|
|
1438
|
+
burn_cap,
|
|
1439
|
+
freeze_cap,
|
|
1440
|
+
mint_cap,
|
|
1441
|
+
});
|
|
1442
|
+
}
|
|
1443
|
+
|
|
1444
|
+
#[test(source = @0x1)]
|
|
1445
|
+
public entry fun test_extract(
|
|
1446
|
+
source: signer,
|
|
1447
|
+
) acquires CoinInfo, CoinStore, CoinConversionMap {
|
|
1448
|
+
let source_addr = signer::address_of(&source);
|
|
1449
|
+
account::create_account_for_test(source_addr);
|
|
1450
|
+
let (burn_cap, freeze_cap, mint_cap) = initialize_and_register_fake_money(&source, 1, true);
|
|
1451
|
+
|
|
1452
|
+
let coins_minted = mint<FakeMoney>(100, &mint_cap);
|
|
1453
|
+
|
|
1454
|
+
let extracted = extract(&mut coins_minted, 25);
|
|
1455
|
+
assert!(value(&coins_minted) == 75, 0);
|
|
1456
|
+
assert!(value(&extracted) == 25, 1);
|
|
1457
|
+
|
|
1458
|
+
deposit(source_addr, coins_minted);
|
|
1459
|
+
deposit(source_addr, extracted);
|
|
1460
|
+
|
|
1461
|
+
assert!(balance<FakeMoney>(source_addr) == 100, 2);
|
|
1462
|
+
|
|
1463
|
+
move_to(&source, FakeMoneyCapabilities {
|
|
1464
|
+
burn_cap,
|
|
1465
|
+
freeze_cap,
|
|
1466
|
+
mint_cap,
|
|
1467
|
+
});
|
|
1468
|
+
}
|
|
1469
|
+
|
|
1470
|
+
#[test(source = @0x1)]
|
|
1471
|
+
public fun test_is_coin_initialized(source: signer) {
|
|
1472
|
+
assert!(!is_coin_initialized<FakeMoney>(), 0);
|
|
1473
|
+
|
|
1474
|
+
let (burn_cap, freeze_cap, mint_cap) = initialize_fake_money(&source, 1, true);
|
|
1475
|
+
assert!(is_coin_initialized<FakeMoney>(), 1);
|
|
1476
|
+
|
|
1477
|
+
move_to(&source, FakeMoneyCapabilities {
|
|
1478
|
+
burn_cap,
|
|
1479
|
+
freeze_cap,
|
|
1480
|
+
mint_cap,
|
|
1481
|
+
});
|
|
1482
|
+
}
|
|
1483
|
+
|
|
1484
|
+
#[test(account = @0x1)]
|
|
1485
|
+
public fun test_is_coin_store_frozen(account: signer) acquires CoinStore, CoinConversionMap, CoinInfo {
|
|
1486
|
+
let account_addr = signer::address_of(&account);
|
|
1487
|
+
account::create_account_for_test(account_addr);
|
|
1488
|
+
let (burn_cap, freeze_cap, mint_cap) = initialize_and_register_fake_money(&account, 18, true);
|
|
1489
|
+
assert!(coin_store_exists<FakeMoney>(account_addr), 1);
|
|
1490
|
+
assert!(!is_coin_store_frozen<FakeMoney>(account_addr), 1);
|
|
1491
|
+
maybe_convert_to_fungible_store<FakeMoney>(account_addr);
|
|
1492
|
+
assert!(!coin_store_exists<FakeMoney>(account_addr), 1);
|
|
1493
|
+
|
|
1494
|
+
move_to(&account, FakeMoneyCapabilities {
|
|
1495
|
+
burn_cap,
|
|
1496
|
+
freeze_cap,
|
|
1497
|
+
mint_cap,
|
|
1498
|
+
});
|
|
1499
|
+
}
|
|
1500
|
+
|
|
1501
|
+
#[test]
|
|
1502
|
+
fun test_zero() {
|
|
1503
|
+
let zero = zero<FakeMoney>();
|
|
1504
|
+
assert!(value(&zero) == 0, 1);
|
|
1505
|
+
destroy_zero(zero);
|
|
1506
|
+
}
|
|
1507
|
+
|
|
1508
|
+
#[test(account = @0x1)]
|
|
1509
|
+
public entry fun burn_frozen(
|
|
1510
|
+
account: signer
|
|
1511
|
+
) acquires CoinInfo, CoinStore, CoinConversionMap, PairedFungibleAssetRefs {
|
|
1512
|
+
let account_addr = signer::address_of(&account);
|
|
1513
|
+
account::create_account_for_test(account_addr);
|
|
1514
|
+
let (burn_cap, freeze_cap, mint_cap) = initialize_and_register_fake_money(&account, 18, true);
|
|
1515
|
+
|
|
1516
|
+
let coins_minted = mint<FakeMoney>(100, &mint_cap);
|
|
1517
|
+
deposit(account_addr, coins_minted);
|
|
1518
|
+
|
|
1519
|
+
freeze_coin_store(account_addr, &freeze_cap);
|
|
1520
|
+
burn_from(account_addr, 90, &burn_cap);
|
|
1521
|
+
maybe_convert_to_fungible_store<FakeMoney>(account_addr);
|
|
1522
|
+
assert!(primary_fungible_store::is_frozen(account_addr, ensure_paired_metadata<FakeMoney>()), 1);
|
|
1523
|
+
assert!(primary_fungible_store::balance(account_addr, ensure_paired_metadata<FakeMoney>()) == 10, 1);
|
|
1524
|
+
|
|
1525
|
+
move_to(&account, FakeMoneyCapabilities {
|
|
1526
|
+
burn_cap,
|
|
1527
|
+
freeze_cap,
|
|
1528
|
+
mint_cap,
|
|
1529
|
+
});
|
|
1530
|
+
}
|
|
1531
|
+
|
|
1532
|
+
#[test(account = @0x1)]
|
|
1533
|
+
#[expected_failure(abort_code = 0x50003, location = aptos_framework::fungible_asset)]
|
|
1534
|
+
public entry fun withdraw_frozen(account: signer) acquires CoinInfo, CoinStore, CoinConversionMap, PairedCoinType {
|
|
1535
|
+
let account_addr = signer::address_of(&account);
|
|
1536
|
+
account::create_account_for_test(account_addr);
|
|
1537
|
+
let (burn_cap, freeze_cap, mint_cap) = initialize_and_register_fake_money(&account, 18, true);
|
|
1538
|
+
let coins_minted = mint<FakeMoney>(100, &mint_cap);
|
|
1539
|
+
deposit(account_addr, coins_minted);
|
|
1540
|
+
|
|
1541
|
+
freeze_coin_store(account_addr, &freeze_cap);
|
|
1542
|
+
maybe_convert_to_fungible_store<FakeMoney>(account_addr);
|
|
1543
|
+
let coin = withdraw<FakeMoney>(&account, 90);
|
|
1544
|
+
burn(coin, &burn_cap);
|
|
1545
|
+
|
|
1546
|
+
move_to(&account, FakeMoneyCapabilities {
|
|
1547
|
+
burn_cap,
|
|
1548
|
+
freeze_cap,
|
|
1549
|
+
mint_cap,
|
|
1550
|
+
});
|
|
1551
|
+
}
|
|
1552
|
+
|
|
1553
|
+
#[test(account = @0x1)]
|
|
1554
|
+
#[expected_failure(abort_code = 0x5000A, location = Self)]
|
|
1555
|
+
public entry fun deposit_frozen(account: signer) acquires CoinInfo, CoinStore, CoinConversionMap {
|
|
1556
|
+
let account_addr = signer::address_of(&account);
|
|
1557
|
+
account::create_account_for_test(account_addr);
|
|
1558
|
+
let (burn_cap, freeze_cap, mint_cap) = initialize_and_register_fake_money(&account, 18, true);
|
|
1559
|
+
|
|
1560
|
+
let coins_minted = mint<FakeMoney>(100, &mint_cap);
|
|
1561
|
+
freeze_coin_store(account_addr, &freeze_cap);
|
|
1562
|
+
deposit(account_addr, coins_minted);
|
|
1563
|
+
|
|
1564
|
+
move_to(&account, FakeMoneyCapabilities {
|
|
1565
|
+
burn_cap,
|
|
1566
|
+
freeze_cap,
|
|
1567
|
+
mint_cap,
|
|
1568
|
+
});
|
|
1569
|
+
}
|
|
1570
|
+
|
|
1571
|
+
#[test(account = @0x1)]
|
|
1572
|
+
public entry fun deposit_withdraw_unfrozen(
|
|
1573
|
+
account: signer
|
|
1574
|
+
) acquires CoinInfo, CoinStore, CoinConversionMap, PairedCoinType {
|
|
1575
|
+
let account_addr = signer::address_of(&account);
|
|
1576
|
+
account::create_account_for_test(account_addr);
|
|
1577
|
+
let (burn_cap, freeze_cap, mint_cap) = initialize_and_register_fake_money(&account, 18, true);
|
|
1578
|
+
|
|
1579
|
+
let coins_minted = mint<FakeMoney>(100, &mint_cap);
|
|
1580
|
+
freeze_coin_store(account_addr, &freeze_cap);
|
|
1581
|
+
unfreeze_coin_store(account_addr, &freeze_cap);
|
|
1582
|
+
deposit(account_addr, coins_minted);
|
|
1583
|
+
|
|
1584
|
+
freeze_coin_store(account_addr, &freeze_cap);
|
|
1585
|
+
unfreeze_coin_store(account_addr, &freeze_cap);
|
|
1586
|
+
let coin = withdraw<FakeMoney>(&account, 10);
|
|
1587
|
+
burn(coin, &burn_cap);
|
|
1588
|
+
|
|
1589
|
+
move_to(&account, FakeMoneyCapabilities {
|
|
1590
|
+
burn_cap,
|
|
1591
|
+
freeze_cap,
|
|
1592
|
+
mint_cap,
|
|
1593
|
+
});
|
|
1594
|
+
}
|
|
1595
|
+
|
|
1596
|
+
#[test_only]
|
|
1597
|
+
fun initialize_with_aggregator(account: &signer) {
|
|
1598
|
+
let (burn_cap, freeze_cap, mint_cap) = initialize_with_parallelizable_supply<FakeMoney>(
|
|
1599
|
+
account,
|
|
1600
|
+
string::utf8(b"Fake money"),
|
|
1601
|
+
string::utf8(b"FMD"),
|
|
1602
|
+
1,
|
|
1603
|
+
true
|
|
1604
|
+
);
|
|
1605
|
+
move_to(account, FakeMoneyCapabilities {
|
|
1606
|
+
burn_cap,
|
|
1607
|
+
freeze_cap,
|
|
1608
|
+
mint_cap,
|
|
1609
|
+
});
|
|
1610
|
+
}
|
|
1611
|
+
|
|
1612
|
+
#[test_only]
|
|
1613
|
+
fun initialize_with_integer(account: &signer) {
|
|
1614
|
+
let (burn_cap, freeze_cap, mint_cap) = initialize<FakeMoney>(
|
|
1615
|
+
account,
|
|
1616
|
+
string::utf8(b"Fake money"),
|
|
1617
|
+
string::utf8(b"FMD"),
|
|
1618
|
+
1,
|
|
1619
|
+
true
|
|
1620
|
+
);
|
|
1621
|
+
move_to(account, FakeMoneyCapabilities {
|
|
1622
|
+
burn_cap,
|
|
1623
|
+
freeze_cap,
|
|
1624
|
+
mint_cap,
|
|
1625
|
+
});
|
|
1626
|
+
}
|
|
1627
|
+
|
|
1628
|
+
|
|
1629
|
+
#[test(framework = @aptos_framework, other = @0x123)]
|
|
1630
|
+
#[expected_failure(abort_code = 0x50003, location = aptos_framework::system_addresses)]
|
|
1631
|
+
fun test_supply_initialize_fails(framework: signer, other: signer) {
|
|
1632
|
+
aggregator_factory::initialize_aggregator_factory_for_test(&framework);
|
|
1633
|
+
initialize_with_aggregator(&other);
|
|
1634
|
+
}
|
|
1635
|
+
|
|
1636
|
+
#[test(other = @0x123)]
|
|
1637
|
+
#[expected_failure(abort_code = 0x10003, location = Self)]
|
|
1638
|
+
fun test_create_coin_store_with_non_coin_type(other: signer) acquires CoinConversionMap {
|
|
1639
|
+
register<String>(&other);
|
|
1640
|
+
}
|
|
1641
|
+
|
|
1642
|
+
#[test(other = @0x123)]
|
|
1643
|
+
#[expected_failure(abort_code = 0x10003, location = Self)]
|
|
1644
|
+
fun test_migration_coin_store_with_non_coin_type(other: signer) acquires CoinConversionMap, CoinStore, CoinInfo {
|
|
1645
|
+
migrate_to_fungible_store<String>(&other);
|
|
1646
|
+
}
|
|
1647
|
+
|
|
1648
|
+
#[test(framework = @aptos_framework)]
|
|
1649
|
+
fun test_supply_initialize(framework: signer) acquires CoinInfo {
|
|
1650
|
+
aggregator_factory::initialize_aggregator_factory_for_test(&framework);
|
|
1651
|
+
initialize_with_aggregator(&framework);
|
|
1652
|
+
|
|
1653
|
+
let maybe_supply = &mut borrow_global_mut<CoinInfo<FakeMoney>>(coin_address<FakeMoney>()).supply;
|
|
1654
|
+
let supply = option::borrow_mut(maybe_supply);
|
|
1655
|
+
|
|
1656
|
+
// Supply should be parallelizable.
|
|
1657
|
+
assert!(optional_aggregator::is_parallelizable(supply), 0);
|
|
1658
|
+
|
|
1659
|
+
optional_aggregator::add(supply, 100);
|
|
1660
|
+
optional_aggregator::sub(supply, 50);
|
|
1661
|
+
optional_aggregator::add(supply, 950);
|
|
1662
|
+
assert!(optional_aggregator::read(supply) == 1000, 0);
|
|
1663
|
+
}
|
|
1664
|
+
|
|
1665
|
+
#[test_only]
|
|
1666
|
+
/// Maximum possible coin supply.
|
|
1667
|
+
const MAX_U128: u128 = 340282366920938463463374607431768211455;
|
|
1668
|
+
|
|
1669
|
+
#[test(framework = @aptos_framework)]
|
|
1670
|
+
#[expected_failure(abort_code = 0x20001, location = aptos_framework::aggregator)]
|
|
1671
|
+
fun test_supply_overflow(framework: signer) acquires CoinInfo {
|
|
1672
|
+
aggregator_factory::initialize_aggregator_factory_for_test(&framework);
|
|
1673
|
+
initialize_with_aggregator(&framework);
|
|
1674
|
+
|
|
1675
|
+
let maybe_supply = &mut borrow_global_mut<CoinInfo<FakeMoney>>(coin_address<FakeMoney>()).supply;
|
|
1676
|
+
let supply = option::borrow_mut(maybe_supply);
|
|
1677
|
+
|
|
1678
|
+
optional_aggregator::add(supply, MAX_U128);
|
|
1679
|
+
optional_aggregator::add(supply, 1);
|
|
1680
|
+
optional_aggregator::sub(supply, 1);
|
|
1681
|
+
}
|
|
1682
|
+
|
|
1683
|
+
#[test_only]
|
|
1684
|
+
fun destroy_aggregatable_coin_for_test<CoinType>(aggregatable_coin: AggregatableCoin<CoinType>) {
|
|
1685
|
+
let AggregatableCoin { value } = aggregatable_coin;
|
|
1686
|
+
aggregator::destroy(value);
|
|
1687
|
+
}
|
|
1688
|
+
|
|
1689
|
+
#[test_only]
|
|
1690
|
+
fun deposit_to_coin_store<CoinType>(account_addr: address, coin: Coin<CoinType>) acquires CoinStore {
|
|
1691
|
+
assert!(
|
|
1692
|
+
coin_store_exists<CoinType>(account_addr),
|
|
1693
|
+
error::not_found(ECOIN_STORE_NOT_PUBLISHED),
|
|
1694
|
+
);
|
|
1695
|
+
|
|
1696
|
+
let coin_store = borrow_global_mut<CoinStore<CoinType>>(account_addr);
|
|
1697
|
+
assert!(
|
|
1698
|
+
!coin_store.frozen,
|
|
1699
|
+
error::permission_denied(EFROZEN),
|
|
1700
|
+
);
|
|
1701
|
+
|
|
1702
|
+
event::emit_event<DepositEvent>(
|
|
1703
|
+
&mut coin_store.deposit_events,
|
|
1704
|
+
DepositEvent { amount: coin.value },
|
|
1705
|
+
);
|
|
1706
|
+
|
|
1707
|
+
merge(&mut coin_store.coin, coin);
|
|
1708
|
+
}
|
|
1709
|
+
|
|
1710
|
+
#[test(account = @aptos_framework)]
|
|
1711
|
+
fun test_conversion_basic(
|
|
1712
|
+
account: &signer
|
|
1713
|
+
) acquires CoinConversionMap, CoinInfo, CoinStore, PairedCoinType, PairedFungibleAssetRefs {
|
|
1714
|
+
let account_addr = signer::address_of(account);
|
|
1715
|
+
account::create_account_for_test(account_addr);
|
|
1716
|
+
let (burn_cap, freeze_cap, mint_cap) = initialize_and_register_fake_money(account, 1, true);
|
|
1717
|
+
|
|
1718
|
+
assert!(fungible_asset::name(ensure_paired_metadata<FakeMoney>()) == name<FakeMoney>(), 0);
|
|
1719
|
+
assert!(fungible_asset::symbol(ensure_paired_metadata<FakeMoney>()) == symbol<FakeMoney>(), 0);
|
|
1720
|
+
assert!(fungible_asset::decimals(ensure_paired_metadata<FakeMoney>()) == decimals<FakeMoney>(), 0);
|
|
1721
|
+
|
|
1722
|
+
let minted_coin = mint(100, &mint_cap);
|
|
1723
|
+
let converted_fa = coin_to_fungible_asset(minted_coin);
|
|
1724
|
+
|
|
1725
|
+
// check and get refs
|
|
1726
|
+
assert!(paired_mint_ref_exists<FakeMoney>(), 0);
|
|
1727
|
+
assert!(paired_transfer_ref_exists<FakeMoney>(), 0);
|
|
1728
|
+
assert!(paired_burn_ref_exists<FakeMoney>(), 0);
|
|
1729
|
+
let (mint_ref, mint_ref_receipt) = get_paired_mint_ref(&mint_cap);
|
|
1730
|
+
let (transfer_ref, transfer_ref_receipt) = get_paired_transfer_ref(&freeze_cap);
|
|
1731
|
+
let (burn_ref, burn_ref_receipt) = get_paired_burn_ref(&burn_cap);
|
|
1732
|
+
assert!(!paired_mint_ref_exists<FakeMoney>(), 0);
|
|
1733
|
+
assert!(!paired_transfer_ref_exists<FakeMoney>(), 0);
|
|
1734
|
+
assert!(!paired_burn_ref_exists<FakeMoney>(), 0);
|
|
1735
|
+
|
|
1736
|
+
let minted_fa = fungible_asset::mint(&mint_ref, 100);
|
|
1737
|
+
assert!(&converted_fa == &minted_fa, 0);
|
|
1738
|
+
|
|
1739
|
+
let coin = fungible_asset_to_coin<FakeMoney>(converted_fa);
|
|
1740
|
+
assert!(value(&coin) == 100, 0);
|
|
1741
|
+
|
|
1742
|
+
deposit_to_coin_store(account_addr, coin);
|
|
1743
|
+
assert!(coin_store_exists<FakeMoney>(account_addr), 0);
|
|
1744
|
+
primary_fungible_store::deposit(account_addr, minted_fa);
|
|
1745
|
+
assert!(balance<FakeMoney>(account_addr) == 200, 0);
|
|
1746
|
+
|
|
1747
|
+
let withdrawn_coin = withdraw<FakeMoney>(account, 1);
|
|
1748
|
+
maybe_convert_to_fungible_store<FakeMoney>(account_addr);
|
|
1749
|
+
assert!(!coin_store_exists<FakeMoney>(account_addr), 0);
|
|
1750
|
+
assert!(balance<FakeMoney>(account_addr) == 199, 0);
|
|
1751
|
+
assert!(primary_fungible_store::balance(account_addr, ensure_paired_metadata<FakeMoney>()) == 199, 0);
|
|
1752
|
+
|
|
1753
|
+
let fa = coin_to_fungible_asset(withdrawn_coin);
|
|
1754
|
+
fungible_asset::burn(&burn_ref, fa);
|
|
1755
|
+
|
|
1756
|
+
// Return and check the refs
|
|
1757
|
+
return_paired_mint_ref(mint_ref, mint_ref_receipt);
|
|
1758
|
+
return_paired_transfer_ref(transfer_ref, transfer_ref_receipt);
|
|
1759
|
+
return_paired_burn_ref(burn_ref, burn_ref_receipt);
|
|
1760
|
+
assert!(paired_mint_ref_exists<FakeMoney>(), 0);
|
|
1761
|
+
assert!(paired_transfer_ref_exists<FakeMoney>(), 0);
|
|
1762
|
+
assert!(paired_burn_ref_exists<FakeMoney>(), 0);
|
|
1763
|
+
|
|
1764
|
+
move_to(account, FakeMoneyCapabilities {
|
|
1765
|
+
burn_cap,
|
|
1766
|
+
freeze_cap,
|
|
1767
|
+
mint_cap,
|
|
1768
|
+
});
|
|
1769
|
+
}
|
|
1770
|
+
|
|
1771
|
+
#[test(account = @aptos_framework, aaron = @0xcafe)]
|
|
1772
|
+
fun test_balance_with_both_stores(
|
|
1773
|
+
account: &signer,
|
|
1774
|
+
aaron: &signer
|
|
1775
|
+
) acquires CoinConversionMap, CoinInfo, CoinStore {
|
|
1776
|
+
let account_addr = signer::address_of(account);
|
|
1777
|
+
let aaron_addr = signer::address_of(aaron);
|
|
1778
|
+
account::create_account_for_test(account_addr);
|
|
1779
|
+
account::create_account_for_test(aaron_addr);
|
|
1780
|
+
let (burn_cap, freeze_cap, mint_cap) = initialize_and_register_fake_money(account, 1, true);
|
|
1781
|
+
create_coin_store<FakeMoney>(aaron);
|
|
1782
|
+
let coin = mint(100, &mint_cap);
|
|
1783
|
+
let fa = coin_to_fungible_asset(mint(100, &mint_cap));
|
|
1784
|
+
primary_fungible_store::deposit(aaron_addr, fa);
|
|
1785
|
+
deposit_to_coin_store(aaron_addr, coin);
|
|
1786
|
+
assert!(coin_balance<FakeMoney>(aaron_addr) == 100, 0);
|
|
1787
|
+
assert!(balance<FakeMoney>(aaron_addr) == 200, 0);
|
|
1788
|
+
maybe_convert_to_fungible_store<FakeMoney>(aaron_addr);
|
|
1789
|
+
assert!(balance<FakeMoney>(aaron_addr) == 200, 0);
|
|
1790
|
+
assert!(coin_balance<FakeMoney>(aaron_addr) == 0, 0);
|
|
1791
|
+
|
|
1792
|
+
move_to(account, FakeMoneyCapabilities {
|
|
1793
|
+
burn_cap,
|
|
1794
|
+
freeze_cap,
|
|
1795
|
+
mint_cap,
|
|
1796
|
+
});
|
|
1797
|
+
}
|
|
1798
|
+
|
|
1799
|
+
#[test(account = @aptos_framework)]
|
|
1800
|
+
fun test_deposit(
|
|
1801
|
+
account: &signer,
|
|
1802
|
+
) acquires CoinConversionMap, CoinInfo, CoinStore {
|
|
1803
|
+
let account_addr = signer::address_of(account);
|
|
1804
|
+
account::create_account_for_test(account_addr);
|
|
1805
|
+
let (burn_cap, freeze_cap, mint_cap) = initialize_and_register_fake_money(account, 1, true);
|
|
1806
|
+
let coin = mint<FakeMoney>(100, &mint_cap);
|
|
1807
|
+
deposit(account_addr, coin);
|
|
1808
|
+
assert!(coin_store_exists<FakeMoney>(account_addr), 0);
|
|
1809
|
+
assert!(primary_fungible_store::balance(account_addr, ensure_paired_metadata<FakeMoney>()) == 0, 0);
|
|
1810
|
+
assert!(balance<FakeMoney>(account_addr) == 100, 0);
|
|
1811
|
+
|
|
1812
|
+
maybe_convert_to_fungible_store<FakeMoney>(account_addr);
|
|
1813
|
+
let coin = mint<FakeMoney>(100, &mint_cap);
|
|
1814
|
+
deposit(account_addr, coin);
|
|
1815
|
+
assert!(!coin_store_exists<FakeMoney>(account_addr), 0);
|
|
1816
|
+
assert!(balance<FakeMoney>(account_addr) == 200, 0);
|
|
1817
|
+
assert!(primary_fungible_store::balance(account_addr, ensure_paired_metadata<FakeMoney>()) == 200, 0);
|
|
1818
|
+
|
|
1819
|
+
move_to(account, FakeMoneyCapabilities {
|
|
1820
|
+
burn_cap,
|
|
1821
|
+
freeze_cap,
|
|
1822
|
+
mint_cap,
|
|
1823
|
+
});
|
|
1824
|
+
}
|
|
1825
|
+
|
|
1826
|
+
#[test(account = @aptos_framework)]
|
|
1827
|
+
fun test_withdraw(
|
|
1828
|
+
account: &signer,
|
|
1829
|
+
) acquires CoinConversionMap, CoinInfo, CoinStore, PairedCoinType {
|
|
1830
|
+
let account_addr = signer::address_of(account);
|
|
1831
|
+
account::create_account_for_test(account_addr);
|
|
1832
|
+
let (burn_cap, freeze_cap, mint_cap) = initialize_and_register_fake_money(account, 1, true);
|
|
1833
|
+
let coin = mint<FakeMoney>(200, &mint_cap);
|
|
1834
|
+
deposit_to_coin_store(account_addr, coin);
|
|
1835
|
+
assert!(coin_balance<FakeMoney>(account_addr) == 200, 0);
|
|
1836
|
+
assert!(balance<FakeMoney>(account_addr) == 200, 0);
|
|
1837
|
+
|
|
1838
|
+
// Withdraw from coin store only.
|
|
1839
|
+
let coin = withdraw<FakeMoney>(account, 100);
|
|
1840
|
+
assert!(coin_balance<FakeMoney>(account_addr) == 100, 0);
|
|
1841
|
+
assert!(balance<FakeMoney>(account_addr) == 100, 0);
|
|
1842
|
+
|
|
1843
|
+
let fa = coin_to_fungible_asset(coin);
|
|
1844
|
+
primary_fungible_store::deposit(account_addr, fa);
|
|
1845
|
+
assert!(coin_store_exists<FakeMoney>(account_addr), 0);
|
|
1846
|
+
assert!(primary_fungible_store::balance(account_addr, ensure_paired_metadata<FakeMoney>()) == 100, 0);
|
|
1847
|
+
assert!(balance<FakeMoney>(account_addr) == 200, 0);
|
|
1848
|
+
|
|
1849
|
+
// Withdraw from both coin store and fungible store.
|
|
1850
|
+
let coin = withdraw<FakeMoney>(account, 150);
|
|
1851
|
+
assert!(coin_balance<FakeMoney>(account_addr) == 0, 0);
|
|
1852
|
+
assert!(primary_fungible_store::balance(account_addr, ensure_paired_metadata<FakeMoney>()) == 50, 0);
|
|
1853
|
+
|
|
1854
|
+
deposit_to_coin_store(account_addr, coin);
|
|
1855
|
+
maybe_convert_to_fungible_store<FakeMoney>(account_addr);
|
|
1856
|
+
assert!(!coin_store_exists<FakeMoney>(account_addr), 0);
|
|
1857
|
+
assert!(balance<FakeMoney>(account_addr) == 200, 0);
|
|
1858
|
+
assert!(primary_fungible_store::balance(account_addr, ensure_paired_metadata<FakeMoney>()) == 200, 0);
|
|
1859
|
+
|
|
1860
|
+
// Withdraw from fungible store only.
|
|
1861
|
+
let coin = withdraw<FakeMoney>(account, 150);
|
|
1862
|
+
assert!(balance<FakeMoney>(account_addr) == 50, 0);
|
|
1863
|
+
burn(coin, &burn_cap);
|
|
1864
|
+
|
|
1865
|
+
move_to(account, FakeMoneyCapabilities {
|
|
1866
|
+
burn_cap,
|
|
1867
|
+
freeze_cap,
|
|
1868
|
+
mint_cap,
|
|
1869
|
+
});
|
|
1870
|
+
}
|
|
1871
|
+
|
|
1872
|
+
#[test(account = @aptos_framework)]
|
|
1873
|
+
fun test_supply(
|
|
1874
|
+
account: &signer,
|
|
1875
|
+
) acquires CoinConversionMap, CoinInfo, PairedCoinType, PairedFungibleAssetRefs {
|
|
1876
|
+
account::create_account_for_test(signer::address_of(account));
|
|
1877
|
+
let (burn_cap, freeze_cap, mint_cap) = initialize_and_register_fake_money(account, 1, true);
|
|
1878
|
+
let coin = mint<FakeMoney>(100, &mint_cap);
|
|
1879
|
+
ensure_paired_metadata<FakeMoney>();
|
|
1880
|
+
let (mint_ref, mint_ref_receipt) = get_paired_mint_ref(&mint_cap);
|
|
1881
|
+
let (burn_ref, burn_ref_receipt) = get_paired_burn_ref(&burn_cap);
|
|
1882
|
+
let fungible_asset = fungible_asset::mint(&mint_ref, 50);
|
|
1883
|
+
assert!(option::is_none(&fungible_asset::maximum(ensure_paired_metadata<FakeMoney>())), 0);
|
|
1884
|
+
assert!(supply<FakeMoney>() == option::some(150), 0);
|
|
1885
|
+
assert!(coin_supply<FakeMoney>() == option::some(100), 0);
|
|
1886
|
+
assert!(fungible_asset::supply(ensure_paired_metadata<FakeMoney>()) == option::some(50), 0);
|
|
1887
|
+
let fa_from_coin = coin_to_fungible_asset(coin);
|
|
1888
|
+
assert!(supply<FakeMoney>() == option::some(150), 0);
|
|
1889
|
+
assert!(coin_supply<FakeMoney>() == option::some(0), 0);
|
|
1890
|
+
assert!(fungible_asset::supply(ensure_paired_metadata<FakeMoney>()) == option::some(150), 0);
|
|
1891
|
+
|
|
1892
|
+
let coin_from_fa = fungible_asset_to_coin<FakeMoney>(fungible_asset);
|
|
1893
|
+
assert!(supply<FakeMoney>() == option::some(150), 0);
|
|
1894
|
+
assert!(coin_supply<FakeMoney>() == option::some(50), 0);
|
|
1895
|
+
assert!(fungible_asset::supply(ensure_paired_metadata<FakeMoney>()) == option::some(100), 0);
|
|
1896
|
+
burn(coin_from_fa, &burn_cap);
|
|
1897
|
+
fungible_asset::burn(&burn_ref, fa_from_coin);
|
|
1898
|
+
assert!(supply<FakeMoney>() == option::some(0), 0);
|
|
1899
|
+
return_paired_mint_ref(mint_ref, mint_ref_receipt);
|
|
1900
|
+
return_paired_burn_ref(burn_ref, burn_ref_receipt);
|
|
1901
|
+
move_to(account, FakeMoneyCapabilities {
|
|
1902
|
+
burn_cap,
|
|
1903
|
+
freeze_cap,
|
|
1904
|
+
mint_cap,
|
|
1905
|
+
});
|
|
1906
|
+
}
|
|
1907
|
+
|
|
1908
|
+
#[test(account = @aptos_framework, aaron = @0xaa10, bob = @0xb0b)]
|
|
1909
|
+
#[expected_failure(abort_code = 0x60005, location = Self)]
|
|
1910
|
+
fun test_force_deposit(
|
|
1911
|
+
account: &signer,
|
|
1912
|
+
aaron: &signer,
|
|
1913
|
+
bob: &signer
|
|
1914
|
+
) acquires CoinConversionMap, CoinInfo, CoinStore {
|
|
1915
|
+
let account_addr = signer::address_of(account);
|
|
1916
|
+
let aaron_addr = signer::address_of(aaron);
|
|
1917
|
+
let bob_addr = signer::address_of(bob);
|
|
1918
|
+
account::create_account_for_test(account_addr);
|
|
1919
|
+
account::create_account_for_test(aaron_addr);
|
|
1920
|
+
account::create_account_for_test(bob_addr);
|
|
1921
|
+
let (burn_cap, freeze_cap, mint_cap) = initialize_and_register_fake_money(account, 1, true);
|
|
1922
|
+
maybe_convert_to_fungible_store<FakeMoney>(aaron_addr);
|
|
1923
|
+
deposit(aaron_addr, mint<FakeMoney>(1, &mint_cap));
|
|
1924
|
+
|
|
1925
|
+
force_deposit(account_addr, mint<FakeMoney>(100, &mint_cap));
|
|
1926
|
+
force_deposit(aaron_addr, mint<FakeMoney>(50, &mint_cap));
|
|
1927
|
+
assert!(
|
|
1928
|
+
primary_fungible_store::balance(aaron_addr, option::extract(&mut paired_metadata<FakeMoney>())) == 51,
|
|
1929
|
+
0
|
|
1930
|
+
);
|
|
1931
|
+
assert!(coin_balance<FakeMoney>(account_addr) == 100, 0);
|
|
1932
|
+
force_deposit(bob_addr, mint<FakeMoney>(1, &mint_cap));
|
|
1933
|
+
move_to(account, FakeMoneyCapabilities {
|
|
1934
|
+
burn_cap,
|
|
1935
|
+
freeze_cap,
|
|
1936
|
+
mint_cap,
|
|
1937
|
+
});
|
|
1938
|
+
}
|
|
1939
|
+
|
|
1940
|
+
#[test(account = @aptos_framework, aaron = @0xaa10, bob = @0xb0b)]
|
|
1941
|
+
fun test_is_account_registered(
|
|
1942
|
+
account: &signer,
|
|
1943
|
+
aaron: &signer,
|
|
1944
|
+
bob: &signer,
|
|
1945
|
+
) acquires CoinConversionMap, CoinInfo, CoinStore {
|
|
1946
|
+
let account_addr = signer::address_of(account);
|
|
1947
|
+
let aaron_addr = signer::address_of(aaron);
|
|
1948
|
+
let bob_addr = signer::address_of(bob);
|
|
1949
|
+
account::create_account_for_test(account_addr);
|
|
1950
|
+
account::create_account_for_test(aaron_addr);
|
|
1951
|
+
account::create_account_for_test(bob_addr);
|
|
1952
|
+
let (burn_cap, freeze_cap, mint_cap) = initialize_and_register_fake_money(account, 1, true);
|
|
1953
|
+
|
|
1954
|
+
assert!(coin_store_exists<FakeMoney>(account_addr), 0);
|
|
1955
|
+
assert!(is_account_registered<FakeMoney>(account_addr), 0);
|
|
1956
|
+
|
|
1957
|
+
assert!(!coin_store_exists<FakeMoney>(aaron_addr), 0);
|
|
1958
|
+
assert!(!is_account_registered<FakeMoney>(aaron_addr), 0);
|
|
1959
|
+
|
|
1960
|
+
maybe_convert_to_fungible_store<FakeMoney>(aaron_addr);
|
|
1961
|
+
let coin = mint<FakeMoney>(100, &mint_cap);
|
|
1962
|
+
deposit(aaron_addr, coin);
|
|
1963
|
+
|
|
1964
|
+
assert!(!coin_store_exists<FakeMoney>(aaron_addr), 0);
|
|
1965
|
+
assert!(is_account_registered<FakeMoney>(aaron_addr), 0);
|
|
1966
|
+
|
|
1967
|
+
maybe_convert_to_fungible_store<FakeMoney>(account_addr);
|
|
1968
|
+
assert!(!coin_store_exists<FakeMoney>(account_addr), 0);
|
|
1969
|
+
assert!(is_account_registered<FakeMoney>(account_addr), 0);
|
|
1970
|
+
|
|
1971
|
+
// Deposit FA to bob to created primary fungible store without `MigrationFlag`.
|
|
1972
|
+
primary_fungible_store::deposit(bob_addr, coin_to_fungible_asset(mint<FakeMoney>(100, &mint_cap)));
|
|
1973
|
+
assert!(!coin_store_exists<FakeMoney>(bob_addr), 0);
|
|
1974
|
+
register<FakeMoney>(bob);
|
|
1975
|
+
assert!(coin_store_exists<FakeMoney>(bob_addr), 0);
|
|
1976
|
+
maybe_convert_to_fungible_store<FakeMoney>(bob_addr);
|
|
1977
|
+
assert!(!coin_store_exists<FakeMoney>(bob_addr), 0);
|
|
1978
|
+
register<FakeMoney>(bob);
|
|
1979
|
+
assert!(!coin_store_exists<FakeMoney>(bob_addr), 0);
|
|
1980
|
+
|
|
1981
|
+
move_to(account, FakeMoneyCapabilities {
|
|
1982
|
+
burn_cap,
|
|
1983
|
+
freeze_cap,
|
|
1984
|
+
mint_cap,
|
|
1985
|
+
});
|
|
1986
|
+
}
|
|
1987
|
+
|
|
1988
|
+
#[test(account = @aptos_framework, aaron = @0xaa10)]
|
|
1989
|
+
fun test_migration_with_existing_primary_fungible_store(
|
|
1990
|
+
account: &signer,
|
|
1991
|
+
) acquires CoinConversionMap, CoinInfo, CoinStore, PairedCoinType {
|
|
1992
|
+
account::create_account_for_test(signer::address_of(account));
|
|
1993
|
+
let account_addr = signer::address_of(account);
|
|
1994
|
+
let (burn_cap, freeze_cap, mint_cap) = initialize_and_register_fake_money(account, 1, true);
|
|
1995
|
+
|
|
1996
|
+
let coin = mint<FakeMoney>(100, &mint_cap);
|
|
1997
|
+
primary_fungible_store::deposit(account_addr, coin_to_fungible_asset(coin));
|
|
1998
|
+
assert!(coin_balance<FakeMoney>(account_addr) == 0, 0);
|
|
1999
|
+
assert!(balance<FakeMoney>(account_addr) == 100, 0);
|
|
2000
|
+
let coin = withdraw<FakeMoney>(account, 50);
|
|
2001
|
+
assert!(!migrated_primary_fungible_store_exists(account_addr, ensure_paired_metadata<FakeMoney>()), 0);
|
|
2002
|
+
maybe_convert_to_fungible_store<FakeMoney>(account_addr);
|
|
2003
|
+
assert!(migrated_primary_fungible_store_exists(account_addr, ensure_paired_metadata<FakeMoney>()), 0);
|
|
2004
|
+
deposit(account_addr, coin);
|
|
2005
|
+
assert!(coin_balance<FakeMoney>(account_addr) == 0, 0);
|
|
2006
|
+
assert!(balance<FakeMoney>(account_addr) == 100, 0);
|
|
2007
|
+
|
|
2008
|
+
move_to(account, FakeMoneyCapabilities {
|
|
2009
|
+
burn_cap,
|
|
2010
|
+
freeze_cap,
|
|
2011
|
+
mint_cap,
|
|
2012
|
+
});
|
|
2013
|
+
}
|
|
2014
|
+
}
|