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.
Files changed (1087) hide show
  1. package/dist/index.mjs +55 -55
  2. package/package.json +1 -1
  3. package/template/101/aptos-template/contracts/counter/.history/aptos_local/latest.json +6 -0
  4. package/template/101/aptos-template/contracts/counter/build/counter/BuildInfo.yaml +60 -0
  5. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/counter_schema.mv +0 -0
  6. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/counter_system.mv +0 -0
  7. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/account.mv +0 -0
  8. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aggregator.mv +0 -0
  9. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aggregator_factory.mv +0 -0
  10. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aggregator_v2.mv +0 -0
  11. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aptos_account.mv +0 -0
  12. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aptos_coin.mv +0 -0
  13. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aptos_governance.mv +0 -0
  14. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/block.mv +0 -0
  15. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/chain_id.mv +0 -0
  16. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/chain_status.mv +0 -0
  17. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/code.mv +0 -0
  18. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/coin.mv +0 -0
  19. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/config_buffer.mv +0 -0
  20. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/consensus_config.mv +0 -0
  21. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/create_signer.mv +0 -0
  22. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/delegation_pool.mv +0 -0
  23. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/dispatchable_fungible_asset.mv +0 -0
  24. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/dkg.mv +0 -0
  25. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/event.mv +0 -0
  26. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/execution_config.mv +0 -0
  27. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/function_info.mv +0 -0
  28. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/fungible_asset.mv +0 -0
  29. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/gas_schedule.mv +0 -0
  30. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/genesis.mv +0 -0
  31. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/governance_proposal.mv +0 -0
  32. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/guid.mv +0 -0
  33. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/jwk_consensus_config.mv +0 -0
  34. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/jwks.mv +0 -0
  35. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/keyless_account.mv +0 -0
  36. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/managed_coin.mv +0 -0
  37. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/multisig_account.mv +0 -0
  38. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/object.mv +0 -0
  39. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/object_code_deployment.mv +0 -0
  40. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/optional_aggregator.mv +0 -0
  41. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/primary_fungible_store.mv +0 -0
  42. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/randomness.mv +0 -0
  43. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/randomness_api_v0_config.mv +0 -0
  44. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/randomness_config.mv +0 -0
  45. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/randomness_config_seqnum.mv +0 -0
  46. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/reconfiguration.mv +0 -0
  47. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/reconfiguration_state.mv +0 -0
  48. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/reconfiguration_with_dkg.mv +0 -0
  49. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/resource_account.mv +0 -0
  50. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/stake.mv +0 -0
  51. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/staking_config.mv +0 -0
  52. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/staking_contract.mv +0 -0
  53. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/staking_proxy.mv +0 -0
  54. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/state_storage.mv +0 -0
  55. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/storage_gas.mv +0 -0
  56. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/system_addresses.mv +0 -0
  57. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/timestamp.mv +0 -0
  58. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/transaction_context.mv +0 -0
  59. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/transaction_fee.mv +0 -0
  60. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/transaction_validation.mv +0 -0
  61. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/util.mv +0 -0
  62. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/validator_consensus_info.mv +0 -0
  63. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/version.mv +0 -0
  64. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/vesting.mv +0 -0
  65. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/voting.mv +0 -0
  66. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/any.mv +0 -0
  67. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/aptos_hash.mv +0 -0
  68. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/big_vector.mv +0 -0
  69. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/bls12381.mv +0 -0
  70. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/bls12381_algebra.mv +0 -0
  71. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/bn254_algebra.mv +0 -0
  72. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/capability.mv +0 -0
  73. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/comparator.mv +0 -0
  74. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/copyable_any.mv +0 -0
  75. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/crypto_algebra.mv +0 -0
  76. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/debug.mv +0 -0
  77. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/ed25519.mv +0 -0
  78. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/fixed_point64.mv +0 -0
  79. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/from_bcs.mv +0 -0
  80. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/math128.mv +0 -0
  81. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/math64.mv +0 -0
  82. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/math_fixed.mv +0 -0
  83. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/math_fixed64.mv +0 -0
  84. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/multi_ed25519.mv +0 -0
  85. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/pool_u64.mv +0 -0
  86. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/pool_u64_unbound.mv +0 -0
  87. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/ristretto255.mv +0 -0
  88. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/ristretto255_bulletproofs.mv +0 -0
  89. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/ristretto255_elgamal.mv +0 -0
  90. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/ristretto255_pedersen.mv +0 -0
  91. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/secp256k1.mv +0 -0
  92. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/simple_map.mv +0 -0
  93. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/smart_table.mv +0 -0
  94. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/smart_vector.mv +0 -0
  95. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/string_utils.mv +0 -0
  96. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/table.mv +0 -0
  97. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/table_with_length.mv +0 -0
  98. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/type_info.mv +0 -0
  99. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/acl.mv +0 -0
  100. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/bcs.mv +0 -0
  101. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/bit_vector.mv +0 -0
  102. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/error.mv +0 -0
  103. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/features.mv +0 -0
  104. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/fixed_point32.mv +0 -0
  105. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/hash.mv +0 -0
  106. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/mem.mv +0 -0
  107. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/option.mv +0 -0
  108. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/signer.mv +0 -0
  109. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/string.mv +0 -0
  110. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/vector.mv +0 -0
  111. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/deploy_hook.mv +0 -0
  112. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/entity_key.mv +0 -0
  113. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/events.mv +0 -0
  114. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/init.mv +0 -0
  115. package/template/101/aptos-template/contracts/counter/build/counter/bytecode_modules/world.mv +0 -0
  116. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/counter_schema.mvsm +0 -0
  117. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/counter_system.mvsm +0 -0
  118. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/account.mvsm +0 -0
  119. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aggregator.mvsm +0 -0
  120. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aggregator_factory.mvsm +0 -0
  121. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aggregator_v2.mvsm +0 -0
  122. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aptos_account.mvsm +0 -0
  123. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aptos_coin.mvsm +0 -0
  124. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aptos_governance.mvsm +0 -0
  125. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/block.mvsm +0 -0
  126. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/chain_id.mvsm +0 -0
  127. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/chain_status.mvsm +0 -0
  128. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/code.mvsm +0 -0
  129. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/coin.mvsm +0 -0
  130. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/config_buffer.mvsm +0 -0
  131. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/consensus_config.mvsm +0 -0
  132. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/create_signer.mvsm +0 -0
  133. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/delegation_pool.mvsm +0 -0
  134. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/dispatchable_fungible_asset.mvsm +0 -0
  135. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/dkg.mvsm +0 -0
  136. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/event.mvsm +0 -0
  137. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/execution_config.mvsm +0 -0
  138. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/function_info.mvsm +0 -0
  139. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/fungible_asset.mvsm +0 -0
  140. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/gas_schedule.mvsm +0 -0
  141. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/genesis.mvsm +0 -0
  142. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/governance_proposal.mvsm +0 -0
  143. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/guid.mvsm +0 -0
  144. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/jwk_consensus_config.mvsm +0 -0
  145. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/jwks.mvsm +0 -0
  146. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/keyless_account.mvsm +0 -0
  147. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/managed_coin.mvsm +0 -0
  148. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/multisig_account.mvsm +0 -0
  149. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/object.mvsm +0 -0
  150. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/object_code_deployment.mvsm +0 -0
  151. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/optional_aggregator.mvsm +0 -0
  152. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/primary_fungible_store.mvsm +0 -0
  153. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/randomness.mvsm +0 -0
  154. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/randomness_api_v0_config.mvsm +0 -0
  155. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/randomness_config.mvsm +0 -0
  156. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/randomness_config_seqnum.mvsm +0 -0
  157. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/reconfiguration.mvsm +0 -0
  158. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/reconfiguration_state.mvsm +0 -0
  159. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/reconfiguration_with_dkg.mvsm +0 -0
  160. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/resource_account.mvsm +0 -0
  161. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/stake.mvsm +0 -0
  162. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/staking_config.mvsm +0 -0
  163. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/staking_contract.mvsm +0 -0
  164. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/staking_proxy.mvsm +0 -0
  165. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/state_storage.mvsm +0 -0
  166. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/storage_gas.mvsm +0 -0
  167. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/system_addresses.mvsm +0 -0
  168. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/timestamp.mvsm +0 -0
  169. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/transaction_context.mvsm +0 -0
  170. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/transaction_fee.mvsm +0 -0
  171. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/transaction_validation.mvsm +0 -0
  172. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/util.mvsm +0 -0
  173. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/validator_consensus_info.mvsm +0 -0
  174. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/version.mvsm +0 -0
  175. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/vesting.mvsm +0 -0
  176. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/voting.mvsm +0 -0
  177. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/any.mvsm +0 -0
  178. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/aptos_hash.mvsm +0 -0
  179. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/big_vector.mvsm +0 -0
  180. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/bls12381.mvsm +0 -0
  181. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/bls12381_algebra.mvsm +0 -0
  182. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/bn254_algebra.mvsm +0 -0
  183. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/capability.mvsm +0 -0
  184. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/comparator.mvsm +0 -0
  185. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/copyable_any.mvsm +0 -0
  186. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/crypto_algebra.mvsm +0 -0
  187. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/debug.mvsm +0 -0
  188. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/ed25519.mvsm +0 -0
  189. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/fixed_point64.mvsm +0 -0
  190. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/from_bcs.mvsm +0 -0
  191. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/math128.mvsm +0 -0
  192. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/math64.mvsm +0 -0
  193. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/math_fixed.mvsm +0 -0
  194. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/math_fixed64.mvsm +0 -0
  195. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/multi_ed25519.mvsm +0 -0
  196. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/pool_u64.mvsm +0 -0
  197. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/pool_u64_unbound.mvsm +0 -0
  198. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/ristretto255.mvsm +0 -0
  199. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/ristretto255_bulletproofs.mvsm +0 -0
  200. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/ristretto255_elgamal.mvsm +0 -0
  201. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/ristretto255_pedersen.mvsm +0 -0
  202. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/secp256k1.mvsm +0 -0
  203. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/simple_map.mvsm +0 -0
  204. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/smart_table.mvsm +0 -0
  205. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/smart_vector.mvsm +0 -0
  206. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/string_utils.mvsm +0 -0
  207. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/table.mvsm +0 -0
  208. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/table_with_length.mvsm +0 -0
  209. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/type_info.mvsm +0 -0
  210. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/acl.mvsm +0 -0
  211. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/bcs.mvsm +0 -0
  212. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/bit_vector.mvsm +0 -0
  213. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/error.mvsm +0 -0
  214. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/features.mvsm +0 -0
  215. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/fixed_point32.mvsm +0 -0
  216. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/hash.mvsm +0 -0
  217. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/mem.mvsm +0 -0
  218. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/option.mvsm +0 -0
  219. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/signer.mvsm +0 -0
  220. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/string.mvsm +0 -0
  221. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/vector.mvsm +0 -0
  222. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/deploy_hook.mvsm +0 -0
  223. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/entity_key.mvsm +0 -0
  224. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/events.mvsm +0 -0
  225. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/init.mvsm +0 -0
  226. package/template/101/aptos-template/contracts/counter/build/counter/source_maps/world.mvsm +0 -0
  227. package/template/101/aptos-template/contracts/counter/build/counter/sources/counter_schema.move +59 -0
  228. package/template/101/aptos-template/contracts/counter/build/counter/sources/counter_system.move +11 -0
  229. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/account.move +1604 -0
  230. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aggregator.move +48 -0
  231. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aggregator_factory.move +83 -0
  232. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aggregator_v2.move +473 -0
  233. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aptos_account.move +480 -0
  234. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aptos_coin.move +204 -0
  235. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aptos_governance.move +1390 -0
  236. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/block.move +349 -0
  237. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/chain_id.move +41 -0
  238. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/chain_status.move +48 -0
  239. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/code.move +367 -0
  240. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/coin.move +2014 -0
  241. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/config_buffer.move +101 -0
  242. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/consensus_config.move +77 -0
  243. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/create_signer.move +21 -0
  244. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/delegation_pool.move +5568 -0
  245. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/dispatchable_fungible_asset.move +228 -0
  246. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/dkg.move +121 -0
  247. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/event.move +92 -0
  248. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/execution_config.move +66 -0
  249. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/function_info.move +100 -0
  250. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/fungible_asset.move +1673 -0
  251. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/gas_schedule.move +176 -0
  252. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/genesis.move +549 -0
  253. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/governance_proposal.move +23 -0
  254. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/guid.move +68 -0
  255. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/jwk_consensus_config.move +148 -0
  256. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/jwks.move +889 -0
  257. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/keyless_account.move +312 -0
  258. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/managed_coin.move +267 -0
  259. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/multisig_account.move +2594 -0
  260. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/object.move +1095 -0
  261. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/object_code_deployment.move +147 -0
  262. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/optional_aggregator.move +286 -0
  263. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/primary_fungible_store.move +405 -0
  264. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/randomness.move +574 -0
  265. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/randomness_api_v0_config.move +57 -0
  266. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/randomness_config.move +153 -0
  267. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/randomness_config_seqnum.move +49 -0
  268. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/reconfiguration.move +222 -0
  269. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/reconfiguration_state.move +132 -0
  270. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/reconfiguration_with_dkg.move +69 -0
  271. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/resource_account.move +267 -0
  272. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/stake.move +3185 -0
  273. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/staking_config.move +686 -0
  274. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/staking_contract.move +1627 -0
  275. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/staking_proxy.move +228 -0
  276. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/state_storage.move +90 -0
  277. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/storage_gas.move +622 -0
  278. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/system_addresses.move +82 -0
  279. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/timestamp.move +88 -0
  280. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/transaction_context.move +262 -0
  281. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/transaction_fee.move +170 -0
  282. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/transaction_validation.move +486 -0
  283. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/util.move +16 -0
  284. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/validator_consensus_info.move +42 -0
  285. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/version.move +115 -0
  286. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/vesting.move +2192 -0
  287. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/voting.move +1282 -0
  288. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/any.move +57 -0
  289. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/aptos_hash.move +253 -0
  290. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/big_vector.move +469 -0
  291. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/bls12381.move +985 -0
  292. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/bls12381_algebra.move +802 -0
  293. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/bn254_algebra.move +855 -0
  294. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/capability.move +193 -0
  295. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/comparator.move +173 -0
  296. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/copyable_any.move +45 -0
  297. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/crypto_algebra.move +351 -0
  298. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/debug.move +278 -0
  299. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/ed25519.move +262 -0
  300. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/fixed_point64.move +447 -0
  301. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/from_bcs.move +91 -0
  302. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/math128.move +381 -0
  303. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/math64.move +336 -0
  304. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/math_fixed.move +139 -0
  305. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/math_fixed64.move +142 -0
  306. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/multi_ed25519.move +482 -0
  307. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/pool_u64.move +571 -0
  308. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/pool_u64_unbound.move +270 -0
  309. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/ristretto255.move +1310 -0
  310. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/ristretto255_bulletproofs.move +253 -0
  311. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/ristretto255_elgamal.move +234 -0
  312. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/ristretto255_pedersen.move +158 -0
  313. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/secp256k1.move +114 -0
  314. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/simple_map.move +319 -0
  315. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/smart_table.move +769 -0
  316. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/smart_vector.move +766 -0
  317. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/string_utils.move +148 -0
  318. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/table.move +152 -0
  319. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/table_with_length.move +141 -0
  320. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/type_info.move +351 -0
  321. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/acl.move +46 -0
  322. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/bcs.move +46 -0
  323. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/bit_vector.move +239 -0
  324. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/error.move +88 -0
  325. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/features.move +784 -0
  326. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/fixed_point32.move +295 -0
  327. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/hash.move +8 -0
  328. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/mem.move +34 -0
  329. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/option.move +356 -0
  330. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/signer.move +21 -0
  331. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/string.move +93 -0
  332. package/template/101/aptos-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/vector.move +691 -0
  333. package/template/101/aptos-template/contracts/counter/build/counter/sources/deploy_hook.move +19 -0
  334. package/template/101/aptos-template/contracts/counter/build/counter/sources/entity_key.move +31 -0
  335. package/template/101/aptos-template/contracts/counter/build/counter/sources/events.move +34 -0
  336. package/template/101/aptos-template/contracts/counter/build/counter/sources/init.move +17 -0
  337. package/template/101/aptos-template/contracts/counter/build/counter/sources/world.move +65 -0
  338. package/template/101/aptos-template/package.json +25 -34
  339. package/template/101/aptos-template/pnpm-lock.yaml +6737 -0
  340. package/template/101/aptos-template/scripts/checkBalance.ts +37 -0
  341. package/template/101/aptos-template/scripts/generateAccount.ts +37 -8
  342. package/template/101/aptos-template/src/chain/config.ts +3 -3
  343. package/template/101/aptos-template/src/pages/_app.tsx +7 -1
  344. package/template/101/aptos-template/src/pages/home/index.tsx +50 -35
  345. package/template/101/initia-template/.dockerignore +7 -0
  346. package/template/101/initia-template/.eslintrc.json +3 -0
  347. package/template/101/initia-template/.prettierrc +8 -0
  348. package/template/101/initia-template/Dockerfile +52 -0
  349. package/template/101/initia-template/LICENSE +674 -0
  350. package/template/101/initia-template/README.md +14 -0
  351. package/template/101/initia-template/contracts/counter/Move.toml +10 -0
  352. package/template/101/initia-template/contracts/counter/build/counter/BuildInfo.yaml +46 -0
  353. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/counter.mv +0 -0
  354. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/account.mv +0 -0
  355. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/address.mv +0 -0
  356. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/any.mv +0 -0
  357. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/aptos_hash.mv +0 -0
  358. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/base64.mv +0 -0
  359. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/bech32.mv +0 -0
  360. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/bigdecimal.mv +0 -0
  361. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/biguint.mv +0 -0
  362. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/block.mv +0 -0
  363. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/code.mv +0 -0
  364. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/coin.mv +0 -0
  365. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/collection.mv +0 -0
  366. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/comparator.mv +0 -0
  367. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/copyable_any.mv +0 -0
  368. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/cosmos.mv +0 -0
  369. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/debug.mv +0 -0
  370. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/dex.mv +0 -0
  371. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/dispatchable_fungible_asset.mv +0 -0
  372. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/ed25519.mv +0 -0
  373. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/event.mv +0 -0
  374. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/fixed_point64.mv +0 -0
  375. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/from_bcs.mv +0 -0
  376. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/function_info.mv +0 -0
  377. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/fungible_asset.mv +0 -0
  378. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/hex.mv +0 -0
  379. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/initia_nft.mv +0 -0
  380. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/json.mv +0 -0
  381. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/keccak.mv +0 -0
  382. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/managed_coin.mv +0 -0
  383. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/math128.mv +0 -0
  384. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/math64.mv +0 -0
  385. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/minitswap.mv +0 -0
  386. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/multisig.mv +0 -0
  387. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/multisig_v2.mv +0 -0
  388. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/nft.mv +0 -0
  389. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/object.mv +0 -0
  390. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/object_code_deployment.mv +0 -0
  391. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/oracle.mv +0 -0
  392. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/primary_fungible_store.mv +0 -0
  393. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/property_map.mv +0 -0
  394. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/query.mv +0 -0
  395. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/royalty.mv +0 -0
  396. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/secp256k1.mv +0 -0
  397. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/simple_map.mv +0 -0
  398. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/simple_nft.mv +0 -0
  399. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/soul_bound_token.mv +0 -0
  400. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/stableswap.mv +0 -0
  401. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/staking.mv +0 -0
  402. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/string_utils.mv +0 -0
  403. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/table.mv +0 -0
  404. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/table_key.mv +0 -0
  405. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/timestamp.mv +0 -0
  406. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/transaction_context.mv +0 -0
  407. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/type_info.mv +0 -0
  408. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveNursery/acl.mv +0 -0
  409. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveNursery/capability.mv +0 -0
  410. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveNursery/compare.mv +0 -0
  411. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveNursery/guid.mv +0 -0
  412. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/ascii.mv +0 -0
  413. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/bcs.mv +0 -0
  414. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/bit_vector.mv +0 -0
  415. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/error.mv +0 -0
  416. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/fixed_point32.mv +0 -0
  417. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/hash.mv +0 -0
  418. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/option.mv +0 -0
  419. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/signer.mv +0 -0
  420. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/string.mv +0 -0
  421. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/vector.mv +0 -0
  422. package/template/101/initia-template/contracts/counter/build/counter/source_maps/counter.mvsm +0 -0
  423. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/account.mvsm +0 -0
  424. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/address.mvsm +0 -0
  425. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/any.mvsm +0 -0
  426. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/aptos_hash.mvsm +0 -0
  427. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/base64.mvsm +0 -0
  428. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/bech32.mvsm +0 -0
  429. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/bigdecimal.mvsm +0 -0
  430. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/biguint.mvsm +0 -0
  431. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/block.mvsm +0 -0
  432. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/code.mvsm +0 -0
  433. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/coin.mvsm +0 -0
  434. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/collection.mvsm +0 -0
  435. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/comparator.mvsm +0 -0
  436. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/copyable_any.mvsm +0 -0
  437. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/cosmos.mvsm +0 -0
  438. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/debug.mvsm +0 -0
  439. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/dex.mvsm +0 -0
  440. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/dispatchable_fungible_asset.mvsm +0 -0
  441. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/ed25519.mvsm +0 -0
  442. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/event.mvsm +0 -0
  443. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/fixed_point64.mvsm +0 -0
  444. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/from_bcs.mvsm +0 -0
  445. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/function_info.mvsm +0 -0
  446. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/fungible_asset.mvsm +0 -0
  447. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/hex.mvsm +0 -0
  448. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/initia_nft.mvsm +0 -0
  449. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/json.mvsm +0 -0
  450. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/keccak.mvsm +0 -0
  451. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/managed_coin.mvsm +0 -0
  452. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/math128.mvsm +0 -0
  453. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/math64.mvsm +0 -0
  454. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/minitswap.mvsm +0 -0
  455. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/multisig.mvsm +0 -0
  456. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/multisig_v2.mvsm +0 -0
  457. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/nft.mvsm +0 -0
  458. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/object.mvsm +0 -0
  459. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/object_code_deployment.mvsm +0 -0
  460. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/oracle.mvsm +0 -0
  461. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/primary_fungible_store.mvsm +0 -0
  462. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/property_map.mvsm +0 -0
  463. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/query.mvsm +0 -0
  464. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/royalty.mvsm +0 -0
  465. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/secp256k1.mvsm +0 -0
  466. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/simple_map.mvsm +0 -0
  467. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/simple_nft.mvsm +0 -0
  468. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/soul_bound_token.mvsm +0 -0
  469. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/stableswap.mvsm +0 -0
  470. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/staking.mvsm +0 -0
  471. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/string_utils.mvsm +0 -0
  472. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/table.mvsm +0 -0
  473. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/table_key.mvsm +0 -0
  474. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/timestamp.mvsm +0 -0
  475. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/transaction_context.mvsm +0 -0
  476. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/type_info.mvsm +0 -0
  477. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveNursery/acl.mvsm +0 -0
  478. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveNursery/capability.mvsm +0 -0
  479. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveNursery/compare.mvsm +0 -0
  480. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveNursery/guid.mvsm +0 -0
  481. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/ascii.mvsm +0 -0
  482. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/bcs.mvsm +0 -0
  483. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/bit_vector.mvsm +0 -0
  484. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/error.mvsm +0 -0
  485. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/fixed_point32.mvsm +0 -0
  486. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/hash.mvsm +0 -0
  487. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/option.mvsm +0 -0
  488. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/signer.mvsm +0 -0
  489. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/string.mvsm +0 -0
  490. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/vector.mvsm +0 -0
  491. package/template/101/initia-template/contracts/counter/build/counter/sources/counter.move +25 -0
  492. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/account.move +386 -0
  493. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/address.move +97 -0
  494. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/any.move +63 -0
  495. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/aptos_hash.move +20 -0
  496. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/base64.move +14 -0
  497. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/bech32.move +37 -0
  498. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/bigdecimal.move +628 -0
  499. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/biguint.move +364 -0
  500. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/block.move +55 -0
  501. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/code.move +357 -0
  502. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/coin.move +430 -0
  503. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/collection.move +674 -0
  504. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/comparator.move +176 -0
  505. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/copyable_any.move +53 -0
  506. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/cosmos.move +572 -0
  507. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/debug.move +352 -0
  508. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/dex.move +2795 -0
  509. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/dispatchable_fungible_asset.move +206 -0
  510. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/ed25519.move +184 -0
  511. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/event.move +42 -0
  512. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/fixed_point64.move +691 -0
  513. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/from_bcs.move +114 -0
  514. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/function_info.move +106 -0
  515. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/fungible_asset.move +1391 -0
  516. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/hex.move +196 -0
  517. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/initia_nft.move +695 -0
  518. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/json.move +266 -0
  519. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/keccak.move +33 -0
  520. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/managed_coin.move +283 -0
  521. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/math128.move +343 -0
  522. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/math64.move +286 -0
  523. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/minitswap.move +3461 -0
  524. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/multisig.move +1011 -0
  525. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/multisig_v2.move +2465 -0
  526. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/nft.move +704 -0
  527. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/object.move +797 -0
  528. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/object_code_deployment.move +157 -0
  529. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/oracle.move +71 -0
  530. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/primary_fungible_store.move +529 -0
  531. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/property_map.move +907 -0
  532. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/query.move +112 -0
  533. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/royalty.move +153 -0
  534. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/secp256k1.move +265 -0
  535. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/simple_map.move +329 -0
  536. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/simple_nft.move +561 -0
  537. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/soul_bound_token.move +862 -0
  538. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/stableswap.move +1659 -0
  539. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/staking.move +2555 -0
  540. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/string_utils.move +234 -0
  541. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/table.move +362 -0
  542. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/table_key.move +47 -0
  543. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/timestamp.move +49 -0
  544. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/transaction_context.move +87 -0
  545. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/type_info.move +80 -0
  546. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveNursery/acl.move +52 -0
  547. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveNursery/capability.move +231 -0
  548. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveNursery/compare.move +76 -0
  549. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveNursery/guid.move +116 -0
  550. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/ascii.move +153 -0
  551. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/bcs.move +17 -0
  552. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/bit_vector.move +179 -0
  553. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/error.move +116 -0
  554. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/fixed_point32.move +315 -0
  555. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/hash.move +31 -0
  556. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/option.move +390 -0
  557. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/signer.move +21 -0
  558. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/string.move +99 -0
  559. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/vector.move +703 -0
  560. package/template/101/initia-template/contracts/counter/sources/counter.move +25 -0
  561. package/template/101/initia-template/dubhe.config.ts +14 -0
  562. package/template/101/initia-template/jest.config.ts +17 -0
  563. package/template/101/initia-template/next-env.d.ts +5 -0
  564. package/template/101/initia-template/next-i18next.config.js +6 -0
  565. package/template/101/initia-template/next.config.js +15 -0
  566. package/template/101/initia-template/package.json +74 -0
  567. package/template/101/initia-template/pnpm-lock.yaml +7204 -0
  568. package/template/101/initia-template/postcss.config.js +6 -0
  569. package/template/101/initia-template/public/discord.svg +9 -0
  570. package/template/101/initia-template/public/fail.svg +12 -0
  571. package/template/101/initia-template/public/favicon.ico +0 -0
  572. package/template/101/initia-template/public/locales/de/common.json +8 -0
  573. package/template/101/initia-template/public/locales/de/footer.json +3 -0
  574. package/template/101/initia-template/public/locales/de/second-page.json +5 -0
  575. package/template/101/initia-template/public/locales/en/common.json +8 -0
  576. package/template/101/initia-template/public/locales/en/footer.json +3 -0
  577. package/template/101/initia-template/public/locales/en/second-page.json +5 -0
  578. package/template/101/initia-template/public/locales/zn/common.json +8 -0
  579. package/template/101/initia-template/public/locales/zn/footer.json +3 -0
  580. package/template/101/initia-template/public/locales/zn/second-page.json +5 -0
  581. package/template/101/initia-template/public/logo.svg +1 -0
  582. package/template/101/initia-template/public/medium.svg +9 -0
  583. package/template/101/initia-template/public/successful.svg +11 -0
  584. package/template/101/initia-template/public/telegram.svg +9 -0
  585. package/template/101/initia-template/public/twitter.svg +9 -0
  586. package/template/101/initia-template/scripts/checkBalance.ts +37 -0
  587. package/template/101/initia-template/scripts/generateAccount.ts +57 -0
  588. package/template/101/initia-template/scripts/storeConfig.ts +52 -0
  589. package/template/101/initia-template/scripts/waitNode.ts +9 -0
  590. package/template/101/initia-template/src/chain/config.ts +5 -0
  591. package/template/101/initia-template/src/css/font-awesome.css +2337 -0
  592. package/template/101/initia-template/src/css/font-awesome.min.css +4 -0
  593. package/template/101/initia-template/src/fonts/FontAwesome.otf +0 -0
  594. package/template/101/initia-template/src/fonts/fontawesome-webfont.eot +0 -0
  595. package/template/101/initia-template/src/fonts/fontawesome-webfont.svg +2671 -0
  596. package/template/101/initia-template/src/fonts/fontawesome-webfont.ttf +0 -0
  597. package/template/101/initia-template/src/fonts/fontawesome-webfont.woff +0 -0
  598. package/template/101/initia-template/src/fonts/fontawesome-webfont.woff2 +0 -0
  599. package/template/101/initia-template/src/jotai/index.tsx +12 -0
  600. package/template/101/initia-template/src/pages/_app.tsx +15 -0
  601. package/template/101/initia-template/src/pages/home/index.tsx +90 -0
  602. package/template/101/initia-template/src/pages/index.tsx +14 -0
  603. package/template/101/initia-template/tailwind.config.js +56 -0
  604. package/template/101/initia-template/tsconfig.json +25 -0
  605. package/template/101/movement-template/.dockerignore +7 -0
  606. package/template/101/movement-template/.eslintrc.json +3 -0
  607. package/template/101/movement-template/.prettierrc +8 -0
  608. package/template/101/movement-template/Dockerfile +56 -0
  609. package/template/101/movement-template/LICENSE +674 -0
  610. package/template/101/movement-template/README.md +14 -0
  611. package/template/101/movement-template/contracts/counter/Move.toml +16 -0
  612. package/template/101/movement-template/contracts/counter/build/counter/BuildInfo.yaml +60 -0
  613. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/counter_schema.mv +0 -0
  614. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/counter_system.mv +0 -0
  615. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/account.mv +0 -0
  616. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aggregator.mv +0 -0
  617. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aggregator_factory.mv +0 -0
  618. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aggregator_v2.mv +0 -0
  619. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aptos_account.mv +0 -0
  620. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aptos_coin.mv +0 -0
  621. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aptos_governance.mv +0 -0
  622. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/block.mv +0 -0
  623. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/chain_id.mv +0 -0
  624. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/chain_status.mv +0 -0
  625. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/code.mv +0 -0
  626. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/coin.mv +0 -0
  627. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/config_buffer.mv +0 -0
  628. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/consensus_config.mv +0 -0
  629. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/create_signer.mv +0 -0
  630. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/delegation_pool.mv +0 -0
  631. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/dispatchable_fungible_asset.mv +0 -0
  632. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/dkg.mv +0 -0
  633. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/event.mv +0 -0
  634. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/execution_config.mv +0 -0
  635. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/function_info.mv +0 -0
  636. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/fungible_asset.mv +0 -0
  637. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/gas_schedule.mv +0 -0
  638. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/genesis.mv +0 -0
  639. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/governance_proposal.mv +0 -0
  640. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/guid.mv +0 -0
  641. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/jwk_consensus_config.mv +0 -0
  642. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/jwks.mv +0 -0
  643. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/keyless_account.mv +0 -0
  644. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/managed_coin.mv +0 -0
  645. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/multisig_account.mv +0 -0
  646. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/object.mv +0 -0
  647. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/object_code_deployment.mv +0 -0
  648. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/optional_aggregator.mv +0 -0
  649. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/primary_fungible_store.mv +0 -0
  650. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/randomness.mv +0 -0
  651. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/randomness_api_v0_config.mv +0 -0
  652. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/randomness_config.mv +0 -0
  653. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/randomness_config_seqnum.mv +0 -0
  654. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/reconfiguration.mv +0 -0
  655. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/reconfiguration_state.mv +0 -0
  656. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/reconfiguration_with_dkg.mv +0 -0
  657. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/resource_account.mv +0 -0
  658. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/stake.mv +0 -0
  659. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/staking_config.mv +0 -0
  660. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/staking_contract.mv +0 -0
  661. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/staking_proxy.mv +0 -0
  662. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/state_storage.mv +0 -0
  663. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/storage_gas.mv +0 -0
  664. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/system_addresses.mv +0 -0
  665. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/timestamp.mv +0 -0
  666. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/transaction_context.mv +0 -0
  667. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/transaction_fee.mv +0 -0
  668. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/transaction_validation.mv +0 -0
  669. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/util.mv +0 -0
  670. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/validator_consensus_info.mv +0 -0
  671. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/version.mv +0 -0
  672. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/vesting.mv +0 -0
  673. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/voting.mv +0 -0
  674. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/any.mv +0 -0
  675. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/aptos_hash.mv +0 -0
  676. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/big_vector.mv +0 -0
  677. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/bls12381.mv +0 -0
  678. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/bls12381_algebra.mv +0 -0
  679. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/bn254_algebra.mv +0 -0
  680. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/capability.mv +0 -0
  681. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/comparator.mv +0 -0
  682. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/copyable_any.mv +0 -0
  683. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/crypto_algebra.mv +0 -0
  684. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/debug.mv +0 -0
  685. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/ed25519.mv +0 -0
  686. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/fixed_point64.mv +0 -0
  687. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/from_bcs.mv +0 -0
  688. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/math128.mv +0 -0
  689. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/math64.mv +0 -0
  690. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/math_fixed.mv +0 -0
  691. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/math_fixed64.mv +0 -0
  692. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/multi_ed25519.mv +0 -0
  693. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/pool_u64.mv +0 -0
  694. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/pool_u64_unbound.mv +0 -0
  695. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/ristretto255.mv +0 -0
  696. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/ristretto255_bulletproofs.mv +0 -0
  697. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/ristretto255_elgamal.mv +0 -0
  698. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/ristretto255_pedersen.mv +0 -0
  699. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/secp256k1.mv +0 -0
  700. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/simple_map.mv +0 -0
  701. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/smart_table.mv +0 -0
  702. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/smart_vector.mv +0 -0
  703. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/string_utils.mv +0 -0
  704. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/table.mv +0 -0
  705. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/table_with_length.mv +0 -0
  706. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/type_info.mv +0 -0
  707. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/acl.mv +0 -0
  708. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/bcs.mv +0 -0
  709. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/bit_vector.mv +0 -0
  710. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/error.mv +0 -0
  711. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/features.mv +0 -0
  712. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/fixed_point32.mv +0 -0
  713. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/hash.mv +0 -0
  714. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/mem.mv +0 -0
  715. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/option.mv +0 -0
  716. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/signer.mv +0 -0
  717. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/string.mv +0 -0
  718. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/vector.mv +0 -0
  719. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/deploy_hook.mv +0 -0
  720. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/entity_key.mv +0 -0
  721. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/events.mv +0 -0
  722. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/init.mv +0 -0
  723. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/world.mv +0 -0
  724. package/template/101/movement-template/contracts/counter/build/counter/source_maps/counter_schema.mvsm +0 -0
  725. package/template/101/movement-template/contracts/counter/build/counter/source_maps/counter_system.mvsm +0 -0
  726. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/account.mvsm +0 -0
  727. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aggregator.mvsm +0 -0
  728. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aggregator_factory.mvsm +0 -0
  729. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aggregator_v2.mvsm +0 -0
  730. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aptos_account.mvsm +0 -0
  731. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aptos_coin.mvsm +0 -0
  732. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aptos_governance.mvsm +0 -0
  733. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/block.mvsm +0 -0
  734. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/chain_id.mvsm +0 -0
  735. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/chain_status.mvsm +0 -0
  736. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/code.mvsm +0 -0
  737. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/coin.mvsm +0 -0
  738. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/config_buffer.mvsm +0 -0
  739. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/consensus_config.mvsm +0 -0
  740. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/create_signer.mvsm +0 -0
  741. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/delegation_pool.mvsm +0 -0
  742. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/dispatchable_fungible_asset.mvsm +0 -0
  743. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/dkg.mvsm +0 -0
  744. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/event.mvsm +0 -0
  745. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/execution_config.mvsm +0 -0
  746. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/function_info.mvsm +0 -0
  747. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/fungible_asset.mvsm +0 -0
  748. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/gas_schedule.mvsm +0 -0
  749. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/genesis.mvsm +0 -0
  750. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/governance_proposal.mvsm +0 -0
  751. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/guid.mvsm +0 -0
  752. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/jwk_consensus_config.mvsm +0 -0
  753. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/jwks.mvsm +0 -0
  754. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/keyless_account.mvsm +0 -0
  755. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/managed_coin.mvsm +0 -0
  756. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/multisig_account.mvsm +0 -0
  757. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/object.mvsm +0 -0
  758. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/object_code_deployment.mvsm +0 -0
  759. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/optional_aggregator.mvsm +0 -0
  760. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/primary_fungible_store.mvsm +0 -0
  761. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/randomness.mvsm +0 -0
  762. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/randomness_api_v0_config.mvsm +0 -0
  763. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/randomness_config.mvsm +0 -0
  764. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/randomness_config_seqnum.mvsm +0 -0
  765. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/reconfiguration.mvsm +0 -0
  766. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/reconfiguration_state.mvsm +0 -0
  767. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/reconfiguration_with_dkg.mvsm +0 -0
  768. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/resource_account.mvsm +0 -0
  769. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/stake.mvsm +0 -0
  770. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/staking_config.mvsm +0 -0
  771. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/staking_contract.mvsm +0 -0
  772. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/staking_proxy.mvsm +0 -0
  773. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/state_storage.mvsm +0 -0
  774. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/storage_gas.mvsm +0 -0
  775. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/system_addresses.mvsm +0 -0
  776. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/timestamp.mvsm +0 -0
  777. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/transaction_context.mvsm +0 -0
  778. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/transaction_fee.mvsm +0 -0
  779. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/transaction_validation.mvsm +0 -0
  780. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/util.mvsm +0 -0
  781. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/validator_consensus_info.mvsm +0 -0
  782. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/version.mvsm +0 -0
  783. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/vesting.mvsm +0 -0
  784. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/voting.mvsm +0 -0
  785. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/any.mvsm +0 -0
  786. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/aptos_hash.mvsm +0 -0
  787. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/big_vector.mvsm +0 -0
  788. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/bls12381.mvsm +0 -0
  789. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/bls12381_algebra.mvsm +0 -0
  790. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/bn254_algebra.mvsm +0 -0
  791. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/capability.mvsm +0 -0
  792. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/comparator.mvsm +0 -0
  793. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/copyable_any.mvsm +0 -0
  794. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/crypto_algebra.mvsm +0 -0
  795. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/debug.mvsm +0 -0
  796. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/ed25519.mvsm +0 -0
  797. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/fixed_point64.mvsm +0 -0
  798. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/from_bcs.mvsm +0 -0
  799. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/math128.mvsm +0 -0
  800. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/math64.mvsm +0 -0
  801. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/math_fixed.mvsm +0 -0
  802. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/math_fixed64.mvsm +0 -0
  803. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/multi_ed25519.mvsm +0 -0
  804. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/pool_u64.mvsm +0 -0
  805. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/pool_u64_unbound.mvsm +0 -0
  806. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/ristretto255.mvsm +0 -0
  807. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/ristretto255_bulletproofs.mvsm +0 -0
  808. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/ristretto255_elgamal.mvsm +0 -0
  809. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/ristretto255_pedersen.mvsm +0 -0
  810. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/secp256k1.mvsm +0 -0
  811. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/simple_map.mvsm +0 -0
  812. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/smart_table.mvsm +0 -0
  813. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/smart_vector.mvsm +0 -0
  814. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/string_utils.mvsm +0 -0
  815. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/table.mvsm +0 -0
  816. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/table_with_length.mvsm +0 -0
  817. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/type_info.mvsm +0 -0
  818. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/acl.mvsm +0 -0
  819. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/bcs.mvsm +0 -0
  820. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/bit_vector.mvsm +0 -0
  821. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/error.mvsm +0 -0
  822. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/features.mvsm +0 -0
  823. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/fixed_point32.mvsm +0 -0
  824. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/hash.mvsm +0 -0
  825. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/mem.mvsm +0 -0
  826. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/option.mvsm +0 -0
  827. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/signer.mvsm +0 -0
  828. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/string.mvsm +0 -0
  829. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/vector.mvsm +0 -0
  830. package/template/101/movement-template/contracts/counter/build/counter/source_maps/deploy_hook.mvsm +0 -0
  831. package/template/101/movement-template/contracts/counter/build/counter/source_maps/entity_key.mvsm +0 -0
  832. package/template/101/movement-template/contracts/counter/build/counter/source_maps/events.mvsm +0 -0
  833. package/template/101/movement-template/contracts/counter/build/counter/source_maps/init.mvsm +0 -0
  834. package/template/101/movement-template/contracts/counter/build/counter/source_maps/world.mvsm +0 -0
  835. package/template/101/movement-template/contracts/counter/build/counter/sources/counter_schema.move +59 -0
  836. package/template/101/movement-template/contracts/counter/build/counter/sources/counter_system.move +11 -0
  837. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/account.move +1604 -0
  838. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aggregator.move +48 -0
  839. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aggregator_factory.move +83 -0
  840. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aggregator_v2.move +473 -0
  841. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aptos_account.move +480 -0
  842. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aptos_coin.move +204 -0
  843. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aptos_governance.move +1390 -0
  844. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/block.move +349 -0
  845. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/chain_id.move +41 -0
  846. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/chain_status.move +48 -0
  847. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/code.move +367 -0
  848. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/coin.move +2014 -0
  849. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/config_buffer.move +101 -0
  850. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/consensus_config.move +77 -0
  851. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/create_signer.move +21 -0
  852. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/delegation_pool.move +5568 -0
  853. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/dispatchable_fungible_asset.move +228 -0
  854. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/dkg.move +121 -0
  855. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/event.move +92 -0
  856. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/execution_config.move +66 -0
  857. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/function_info.move +100 -0
  858. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/fungible_asset.move +1673 -0
  859. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/gas_schedule.move +176 -0
  860. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/genesis.move +549 -0
  861. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/governance_proposal.move +23 -0
  862. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/guid.move +68 -0
  863. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/jwk_consensus_config.move +148 -0
  864. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/jwks.move +889 -0
  865. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/keyless_account.move +312 -0
  866. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/managed_coin.move +267 -0
  867. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/multisig_account.move +2594 -0
  868. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/object.move +1095 -0
  869. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/object_code_deployment.move +147 -0
  870. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/optional_aggregator.move +286 -0
  871. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/primary_fungible_store.move +405 -0
  872. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/randomness.move +574 -0
  873. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/randomness_api_v0_config.move +57 -0
  874. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/randomness_config.move +153 -0
  875. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/randomness_config_seqnum.move +49 -0
  876. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/reconfiguration.move +222 -0
  877. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/reconfiguration_state.move +132 -0
  878. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/reconfiguration_with_dkg.move +69 -0
  879. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/resource_account.move +267 -0
  880. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/stake.move +3185 -0
  881. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/staking_config.move +686 -0
  882. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/staking_contract.move +1627 -0
  883. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/staking_proxy.move +228 -0
  884. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/state_storage.move +90 -0
  885. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/storage_gas.move +622 -0
  886. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/system_addresses.move +82 -0
  887. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/timestamp.move +88 -0
  888. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/transaction_context.move +262 -0
  889. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/transaction_fee.move +170 -0
  890. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/transaction_validation.move +486 -0
  891. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/util.move +16 -0
  892. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/validator_consensus_info.move +42 -0
  893. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/version.move +115 -0
  894. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/vesting.move +2192 -0
  895. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/voting.move +1282 -0
  896. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/any.move +57 -0
  897. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/aptos_hash.move +253 -0
  898. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/big_vector.move +469 -0
  899. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/bls12381.move +985 -0
  900. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/bls12381_algebra.move +802 -0
  901. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/bn254_algebra.move +855 -0
  902. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/capability.move +193 -0
  903. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/comparator.move +173 -0
  904. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/copyable_any.move +45 -0
  905. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/crypto_algebra.move +351 -0
  906. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/debug.move +278 -0
  907. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/ed25519.move +262 -0
  908. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/fixed_point64.move +447 -0
  909. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/from_bcs.move +91 -0
  910. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/math128.move +381 -0
  911. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/math64.move +336 -0
  912. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/math_fixed.move +139 -0
  913. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/math_fixed64.move +142 -0
  914. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/multi_ed25519.move +482 -0
  915. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/pool_u64.move +571 -0
  916. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/pool_u64_unbound.move +270 -0
  917. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/ristretto255.move +1310 -0
  918. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/ristretto255_bulletproofs.move +253 -0
  919. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/ristretto255_elgamal.move +234 -0
  920. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/ristretto255_pedersen.move +158 -0
  921. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/secp256k1.move +114 -0
  922. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/simple_map.move +319 -0
  923. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/smart_table.move +769 -0
  924. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/smart_vector.move +766 -0
  925. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/string_utils.move +148 -0
  926. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/table.move +152 -0
  927. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/table_with_length.move +141 -0
  928. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/type_info.move +351 -0
  929. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/acl.move +46 -0
  930. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/bcs.move +46 -0
  931. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/bit_vector.move +239 -0
  932. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/error.move +88 -0
  933. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/features.move +784 -0
  934. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/fixed_point32.move +295 -0
  935. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/hash.move +8 -0
  936. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/mem.move +34 -0
  937. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/option.move +356 -0
  938. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/signer.move +21 -0
  939. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/string.move +93 -0
  940. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/vector.move +691 -0
  941. package/template/101/movement-template/contracts/counter/build/counter/sources/deploy_hook.move +19 -0
  942. package/template/101/movement-template/contracts/counter/build/counter/sources/entity_key.move +31 -0
  943. package/template/101/movement-template/contracts/counter/build/counter/sources/events.move +34 -0
  944. package/template/101/movement-template/contracts/counter/build/counter/sources/init.move +17 -0
  945. package/template/101/movement-template/contracts/counter/build/counter/sources/world.move +65 -0
  946. package/template/101/movement-template/contracts/counter/sources/codegen/eps/events.move +34 -0
  947. package/template/101/movement-template/contracts/counter/sources/codegen/eps/world.move +65 -0
  948. package/template/101/movement-template/contracts/counter/sources/codegen/init.move +17 -0
  949. package/template/101/movement-template/contracts/counter/sources/codegen/schemas/counter.move +59 -0
  950. package/template/101/movement-template/contracts/counter/sources/entity_key.move +31 -0
  951. package/template/101/movement-template/contracts/counter/sources/script/deploy_hook.move +19 -0
  952. package/template/101/movement-template/contracts/counter/sources/system/counter_system.move +11 -0
  953. package/template/101/movement-template/dubhe.config.ts +13 -0
  954. package/template/101/movement-template/jest.config.ts +17 -0
  955. package/template/101/movement-template/next-env.d.ts +5 -0
  956. package/template/101/movement-template/next-i18next.config.js +6 -0
  957. package/template/101/movement-template/next.config.js +15 -0
  958. package/template/101/movement-template/package.json +74 -0
  959. package/template/101/movement-template/pnpm-lock.yaml +6737 -0
  960. package/template/101/movement-template/postcss.config.js +6 -0
  961. package/template/101/movement-template/public/discord.svg +9 -0
  962. package/template/101/movement-template/public/fail.svg +12 -0
  963. package/template/101/movement-template/public/favicon.ico +0 -0
  964. package/template/101/movement-template/public/locales/de/common.json +8 -0
  965. package/template/101/movement-template/public/locales/de/footer.json +3 -0
  966. package/template/101/movement-template/public/locales/de/second-page.json +5 -0
  967. package/template/101/movement-template/public/locales/en/common.json +8 -0
  968. package/template/101/movement-template/public/locales/en/footer.json +3 -0
  969. package/template/101/movement-template/public/locales/en/second-page.json +5 -0
  970. package/template/101/movement-template/public/locales/zn/common.json +8 -0
  971. package/template/101/movement-template/public/locales/zn/footer.json +3 -0
  972. package/template/101/movement-template/public/locales/zn/second-page.json +5 -0
  973. package/template/101/movement-template/public/logo.svg +1 -0
  974. package/template/101/movement-template/public/medium.svg +9 -0
  975. package/template/101/movement-template/public/successful.svg +11 -0
  976. package/template/101/movement-template/public/telegram.svg +9 -0
  977. package/template/101/movement-template/public/twitter.svg +9 -0
  978. package/template/101/movement-template/scripts/checkBalance.ts +37 -0
  979. package/template/101/movement-template/scripts/generateAccount.ts +54 -0
  980. package/template/101/movement-template/scripts/storeConfig.ts +54 -0
  981. package/template/101/movement-template/src/chain/config.ts +7 -0
  982. package/template/101/movement-template/src/css/font-awesome.css +2337 -0
  983. package/template/101/movement-template/src/css/font-awesome.min.css +4 -0
  984. package/template/101/movement-template/src/fonts/FontAwesome.otf +0 -0
  985. package/template/101/movement-template/src/fonts/fontawesome-webfont.eot +0 -0
  986. package/template/101/movement-template/src/fonts/fontawesome-webfont.svg +2671 -0
  987. package/template/101/movement-template/src/fonts/fontawesome-webfont.ttf +0 -0
  988. package/template/101/movement-template/src/fonts/fontawesome-webfont.woff +0 -0
  989. package/template/101/movement-template/src/fonts/fontawesome-webfont.woff2 +0 -0
  990. package/template/101/movement-template/src/jotai/index.tsx +12 -0
  991. package/template/101/movement-template/src/pages/_app.tsx +15 -0
  992. package/template/101/movement-template/src/pages/home/index.tsx +93 -0
  993. package/template/101/movement-template/src/pages/index.tsx +12 -0
  994. package/template/101/movement-template/tailwind.config.js +56 -0
  995. package/template/101/movement-template/tsconfig.json +25 -0
  996. package/template/101/rooch-template/package.json +3 -3
  997. package/template/101/sui-template/contracts/counter/Move.toml +4 -5
  998. package/template/{nextjs/sui-template/contracts/counter/sources/script → 101/sui-template/contracts/counter/sources/scripts}/deploy_hook.move +13 -2
  999. package/template/{nextjs/sui-template/contracts/counter/sources/script → 101/sui-template/contracts/counter/sources/scripts}/migrate.move +1 -0
  1000. package/template/101/sui-template/contracts/dubhe-framework/Move.toml +13 -0
  1001. package/template/{nextjs/sui-template/localnet → 101/sui-template/contracts}/dubhe-framework/sources/core/dapps/schema.move +31 -1
  1002. package/template/{nextjs/sui-template/localnet → 101/sui-template/contracts}/dubhe-framework/sources/core/dapps/system.move +28 -2
  1003. package/template/{contract/sui-template/localnet → 101/sui-template/contracts}/dubhe-framework/sources/core/dapps/tests.move +16 -2
  1004. package/template/101/sui-template/package.json +11 -10
  1005. package/template/101/sui-template/src/chain/config.ts +2 -2
  1006. package/template/cocos/sui-template/package.json +4 -4
  1007. package/template/contract/sui-template/contracts/counter/Move.toml +4 -5
  1008. package/template/{101/sui-template/contracts/counter/sources/script → contract/sui-template/contracts/counter/sources/scripts}/deploy_hook.move +20 -9
  1009. package/template/contract/sui-template/contracts/dubhe-framework/Move.toml +13 -0
  1010. package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/core/dapps/schema.move +31 -1
  1011. package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/core/dapps/system.move +28 -2
  1012. package/template/{101/sui-template/localnet → contract/sui-template/contracts}/dubhe-framework/sources/core/dapps/tests.move +16 -2
  1013. package/template/contract/sui-template/package.json +9 -7
  1014. package/template/nextjs/sui-template/contracts/counter/Move.toml +4 -5
  1015. package/template/{contract/sui-template/contracts/counter/sources/script → nextjs/sui-template/contracts/counter/sources/scripts}/deploy_hook.move +20 -9
  1016. package/template/nextjs/sui-template/contracts/dubhe-framework/Move.toml +13 -0
  1017. package/template/{101/sui-template/localnet → nextjs/sui-template/contracts}/dubhe-framework/sources/core/dapps/schema.move +31 -1
  1018. package/template/{101/sui-template/localnet → nextjs/sui-template/contracts}/dubhe-framework/sources/core/dapps/system.move +28 -2
  1019. package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/core/dapps/tests.move +16 -2
  1020. package/template/nextjs/sui-template/package.json +10 -9
  1021. package/template/nextjs/sui-template/src/chain/config.ts +3 -3
  1022. package/template/101/aptos-template/scripts/formatAccount.ts +0 -35
  1023. package/template/101/sui-template/localnet/dubhe-framework/Move.toml +0 -29
  1024. package/template/101/sui-template/scripts/deployment/common.ts +0 -60
  1025. package/template/101/sui-template/scripts/deployment/localnet/deploy.ts +0 -42
  1026. package/template/101/sui-template/scripts/deployment/testnet/deploy.ts +0 -48
  1027. package/template/101/sui-template/scripts/deployment/types.ts +0 -13
  1028. package/template/101/sui-template/scripts/framework/common.ts +0 -17
  1029. package/template/101/sui-template/scripts/framework/deploy.ts +0 -199
  1030. package/template/101/sui-template/scripts/framework/parse-history.ts +0 -76
  1031. package/template/101/sui-template/scripts/framework/types.ts +0 -8
  1032. package/template/contract/sui-template/localnet/dubhe-framework/Move.toml +0 -29
  1033. package/template/contract/sui-template/scripts/deployment/common.ts +0 -45
  1034. package/template/contract/sui-template/scripts/deployment/localnet/deploy.ts +0 -42
  1035. package/template/contract/sui-template/scripts/deployment/testnet/deploy.ts +0 -48
  1036. package/template/contract/sui-template/scripts/deployment/types.ts +0 -13
  1037. package/template/contract/sui-template/scripts/framework/common.ts +0 -17
  1038. package/template/contract/sui-template/scripts/framework/deploy.ts +0 -199
  1039. package/template/contract/sui-template/scripts/framework/parse-history.ts +0 -76
  1040. package/template/contract/sui-template/scripts/framework/types.ts +0 -8
  1041. package/template/nextjs/sui-template/localnet/dubhe-framework/Move.toml +0 -29
  1042. package/template/nextjs/sui-template/scripts/deployment/common.ts +0 -60
  1043. package/template/nextjs/sui-template/scripts/deployment/localnet/deploy.ts +0 -42
  1044. package/template/nextjs/sui-template/scripts/deployment/testnet/deploy.ts +0 -48
  1045. package/template/nextjs/sui-template/scripts/deployment/types.ts +0 -13
  1046. package/template/nextjs/sui-template/scripts/framework/common.ts +0 -17
  1047. package/template/nextjs/sui-template/scripts/framework/deploy.ts +0 -199
  1048. package/template/nextjs/sui-template/scripts/framework/parse-history.ts +0 -76
  1049. package/template/nextjs/sui-template/scripts/framework/types.ts +0 -8
  1050. /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/core/dapps/metadata.move +0 -0
  1051. /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/core/root/schema.move +0 -0
  1052. /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/core/root/system.move +0 -0
  1053. /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/core/root/tests.move +0 -0
  1054. /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/frames/utils/type_info.move +0 -0
  1055. /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/double_map.move +0 -0
  1056. /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/map.move +0 -0
  1057. /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/migrate.move +0 -0
  1058. /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/tests.move +0 -0
  1059. /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/value.move +0 -0
  1060. /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/tests/init.move +0 -0
  1061. /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/tests/obelisk_framework_tests.move +0 -0
  1062. /package/template/{101/sui-template/contracts/counter/sources/script → contract/sui-template/contracts/counter/sources/scripts}/migrate.move +0 -0
  1063. /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/core/dapps/metadata.move +0 -0
  1064. /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/core/root/schema.move +0 -0
  1065. /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/core/root/system.move +0 -0
  1066. /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/core/root/tests.move +0 -0
  1067. /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/frames/utils/type_info.move +0 -0
  1068. /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/double_map.move +0 -0
  1069. /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/map.move +0 -0
  1070. /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/migrate.move +0 -0
  1071. /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/tests.move +0 -0
  1072. /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/value.move +0 -0
  1073. /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/tests/init.move +0 -0
  1074. /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/tests/obelisk_framework_tests.move +0 -0
  1075. /package/template/{contract/sui-template/contracts/counter/sources/script → nextjs/sui-template/contracts/counter/sources/scripts}/migrate.move +0 -0
  1076. /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/core/dapps/metadata.move +0 -0
  1077. /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/core/root/schema.move +0 -0
  1078. /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/core/root/system.move +0 -0
  1079. /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/core/root/tests.move +0 -0
  1080. /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/frames/utils/type_info.move +0 -0
  1081. /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/double_map.move +0 -0
  1082. /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/map.move +0 -0
  1083. /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/migrate.move +0 -0
  1084. /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/tests.move +0 -0
  1085. /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/value.move +0 -0
  1086. /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/tests/init.move +0 -0
  1087. /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
+ }