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,1604 @@
1
+ module aptos_framework::account {
2
+ use std::bcs;
3
+ use std::error;
4
+ use std::hash;
5
+ use std::option::{Self, Option};
6
+ use std::signer;
7
+ use std::vector;
8
+ use aptos_framework::chain_id;
9
+ use aptos_framework::create_signer::create_signer;
10
+ use aptos_framework::event::{Self, EventHandle};
11
+ use aptos_framework::guid;
12
+ use aptos_framework::system_addresses;
13
+ use aptos_std::ed25519;
14
+ use aptos_std::from_bcs;
15
+ use aptos_std::multi_ed25519;
16
+ use aptos_std::table::{Self, Table};
17
+ use aptos_std::type_info::{Self, TypeInfo};
18
+
19
+ friend aptos_framework::aptos_account;
20
+ friend aptos_framework::coin;
21
+ friend aptos_framework::genesis;
22
+ friend aptos_framework::multisig_account;
23
+ friend aptos_framework::resource_account;
24
+ friend aptos_framework::transaction_validation;
25
+
26
+ #[event]
27
+ struct KeyRotation has drop, store {
28
+ account: address,
29
+ old_authentication_key: vector<u8>,
30
+ new_authentication_key: vector<u8>,
31
+ }
32
+
33
+ /// Resource representing an account.
34
+ struct Account has key, store {
35
+ authentication_key: vector<u8>,
36
+ sequence_number: u64,
37
+ guid_creation_num: u64,
38
+ coin_register_events: EventHandle<CoinRegisterEvent>,
39
+ key_rotation_events: EventHandle<KeyRotationEvent>,
40
+ rotation_capability_offer: CapabilityOffer<RotationCapability>,
41
+ signer_capability_offer: CapabilityOffer<SignerCapability>,
42
+ }
43
+
44
+ struct KeyRotationEvent has drop, store {
45
+ old_authentication_key: vector<u8>,
46
+ new_authentication_key: vector<u8>,
47
+ }
48
+
49
+ struct CoinRegisterEvent has drop, store {
50
+ type_info: TypeInfo,
51
+ }
52
+
53
+ #[event]
54
+ struct CoinRegister has drop, store {
55
+ account: address,
56
+ type_info: TypeInfo,
57
+ }
58
+
59
+ struct CapabilityOffer<phantom T> has store { for: Option<address> }
60
+
61
+ struct RotationCapability has drop, store { account: address }
62
+
63
+ struct SignerCapability has drop, store { account: address }
64
+
65
+ /// It is easy to fetch the authentication key of an address by simply reading it from the `Account` struct at that address.
66
+ /// The table in this struct makes it possible to do a reverse lookup: it maps an authentication key, to the address of the account which has that authentication key set.
67
+ ///
68
+ /// This mapping is needed when recovering wallets for accounts whose authentication key has been rotated.
69
+ ///
70
+ /// For example, imagine a freshly-created wallet with address `a` and thus also with authentication key `a`, derived from a PK `pk_a` with corresponding SK `sk_a`.
71
+ /// It is easy to recover such a wallet given just the secret key `sk_a`, since the PK can be derived from the SK, the authentication key can then be derived from the PK, and the address equals the authentication key (since there was no key rotation).
72
+ ///
73
+ /// However, if such a wallet rotates its authentication key to `b` derived from a different PK `pk_b` with SK `sk_b`, how would account recovery work?
74
+ /// The recovered address would no longer be 'a'; it would be `b`, which is incorrect.
75
+ /// This struct solves this problem by mapping the new authentication key `b` to the original address `a` and thus helping the wallet software during recovery find the correct address.
76
+ struct OriginatingAddress has key {
77
+ address_map: Table<address, address>,
78
+ }
79
+
80
+ /// This structs stores the challenge message that should be signed during key rotation. First, this struct is
81
+ /// signed by the account owner's current public key, which proves possession of a capability to rotate the key.
82
+ /// Second, this struct is signed by the new public key that the account owner wants to rotate to, which proves
83
+ /// knowledge of this new public key's associated secret key. These two signatures cannot be replayed in another
84
+ /// context because they include the TXN's unique sequence number.
85
+ struct RotationProofChallenge has copy, drop {
86
+ sequence_number: u64,
87
+ // the sequence number of the account whose key is being rotated
88
+ originator: address,
89
+ // the address of the account whose key is being rotated
90
+ current_auth_key: address,
91
+ // the current authentication key of the account whose key is being rotated
92
+ new_public_key: vector<u8>,
93
+ // the new public key that the account owner wants to rotate to
94
+ }
95
+
96
+ /// Deprecated struct - newest version is `RotationCapabilityOfferProofChallengeV2`
97
+ struct RotationCapabilityOfferProofChallenge has drop {
98
+ sequence_number: u64,
99
+ recipient_address: address,
100
+ }
101
+
102
+ /// Deprecated struct - newest version is `SignerCapabilityOfferProofChallengeV2`
103
+ struct SignerCapabilityOfferProofChallenge has drop {
104
+ sequence_number: u64,
105
+ recipient_address: address,
106
+ }
107
+
108
+ /// This struct stores the challenge message that should be signed by the source account, when the source account
109
+ /// is delegating its rotation capability to the `recipient_address`.
110
+ /// This V2 struct adds the `chain_id` and `source_address` to the challenge message, which prevents replaying the challenge message.
111
+ struct RotationCapabilityOfferProofChallengeV2 has drop {
112
+ chain_id: u8,
113
+ sequence_number: u64,
114
+ source_address: address,
115
+ recipient_address: address,
116
+ }
117
+
118
+ struct SignerCapabilityOfferProofChallengeV2 has copy, drop {
119
+ sequence_number: u64,
120
+ source_address: address,
121
+ recipient_address: address,
122
+ }
123
+
124
+ const MAX_U64: u128 = 18446744073709551615;
125
+ const ZERO_AUTH_KEY: vector<u8> = x"0000000000000000000000000000000000000000000000000000000000000000";
126
+
127
+ /// Scheme identifier for Ed25519 signatures used to derive authentication keys for Ed25519 public keys.
128
+ const ED25519_SCHEME: u8 = 0;
129
+ /// Scheme identifier for MultiEd25519 signatures used to derive authentication keys for MultiEd25519 public keys.
130
+ const MULTI_ED25519_SCHEME: u8 = 1;
131
+ /// Scheme identifier used when hashing an account's address together with a seed to derive the address (not the
132
+ /// authentication key) of a resource account. This is an abuse of the notion of a scheme identifier which, for now,
133
+ /// serves to domain separate hashes used to derive resource account addresses from hashes used to derive
134
+ /// authentication keys. Without such separation, an adversary could create (and get a signer for) a resource account
135
+ /// whose address matches an existing address of a MultiEd25519 wallet.
136
+ const DERIVE_RESOURCE_ACCOUNT_SCHEME: u8 = 255;
137
+
138
+ /// Account already exists
139
+ const EACCOUNT_ALREADY_EXISTS: u64 = 1;
140
+ /// Account does not exist
141
+ const EACCOUNT_DOES_NOT_EXIST: u64 = 2;
142
+ /// Sequence number exceeds the maximum value for a u64
143
+ const ESEQUENCE_NUMBER_TOO_BIG: u64 = 3;
144
+ /// The provided authentication key has an invalid length
145
+ const EMALFORMED_AUTHENTICATION_KEY: u64 = 4;
146
+ /// Cannot create account because address is reserved
147
+ const ECANNOT_RESERVED_ADDRESS: u64 = 5;
148
+ /// Transaction exceeded its allocated max gas
149
+ const EOUT_OF_GAS: u64 = 6;
150
+ /// Specified current public key is not correct
151
+ const EWRONG_CURRENT_PUBLIC_KEY: u64 = 7;
152
+ /// Specified proof of knowledge required to prove ownership of a public key is invalid
153
+ const EINVALID_PROOF_OF_KNOWLEDGE: u64 = 8;
154
+ /// The caller does not have a digital-signature-based capability to call this function
155
+ const ENO_CAPABILITY: u64 = 9;
156
+ /// The caller does not have a valid rotation capability offer from the other account
157
+ const EINVALID_ACCEPT_ROTATION_CAPABILITY: u64 = 10;
158
+ /// Address to create is not a valid reserved address for Aptos framework
159
+ const ENO_VALID_FRAMEWORK_RESERVED_ADDRESS: u64 = 11;
160
+ /// Specified scheme required to proceed with the smart contract operation - can only be ED25519_SCHEME(0) OR MULTI_ED25519_SCHEME(1)
161
+ const EINVALID_SCHEME: u64 = 12;
162
+ /// Abort the transaction if the expected originating address is different from the originating address on-chain
163
+ const EINVALID_ORIGINATING_ADDRESS: u64 = 13;
164
+ /// The signer capability offer doesn't exist at the given address
165
+ const ENO_SUCH_SIGNER_CAPABILITY: u64 = 14;
166
+ /// An attempt to create a resource account on a claimed account
167
+ const ERESOURCE_ACCCOUNT_EXISTS: u64 = 15;
168
+ /// An attempt to create a resource account on an account that has a committed transaction
169
+ const EACCOUNT_ALREADY_USED: u64 = 16;
170
+ /// Offerer address doesn't exist
171
+ const EOFFERER_ADDRESS_DOES_NOT_EXIST: u64 = 17;
172
+ /// The specified rotation capability offer does not exist at the specified offerer address
173
+ const ENO_SUCH_ROTATION_CAPABILITY_OFFER: u64 = 18;
174
+ // The signer capability is not offered to any address
175
+ const ENO_SIGNER_CAPABILITY_OFFERED: u64 = 19;
176
+ // This account has exceeded the allocated GUIDs it can create. It should be impossible to reach this number for real applications.
177
+ const EEXCEEDED_MAX_GUID_CREATION_NUM: u64 = 20;
178
+ /// The new authentication key already has an entry in the `OriginatingAddress` table
179
+ const ENEW_AUTH_KEY_ALREADY_MAPPED: u64 = 21;
180
+ /// The current authentication key and the new authentication key are the same
181
+ const ENEW_AUTH_KEY_SAME_AS_CURRENT: u64 = 22;
182
+
183
+ /// Explicitly separate the GUID space between Object and Account to prevent accidental overlap.
184
+ const MAX_GUID_CREATION_NUM: u64 = 0x4000000000000;
185
+
186
+ #[test_only]
187
+ /// Create signer for testing, independently of an Aptos-style `Account`.
188
+ public fun create_signer_for_test(addr: address): signer { create_signer(addr) }
189
+
190
+ /// Only called during genesis to initialize system resources for this module.
191
+ public(friend) fun initialize(aptos_framework: &signer) {
192
+ system_addresses::assert_aptos_framework(aptos_framework);
193
+ move_to(aptos_framework, OriginatingAddress {
194
+ address_map: table::new(),
195
+ });
196
+ }
197
+
198
+ public fun create_account_if_does_not_exist(account_address: address) {
199
+ if (!exists<Account>(account_address)) {
200
+ create_account(account_address);
201
+ }
202
+ }
203
+
204
+ /// Publishes a new `Account` resource under `new_address`. A signer representing `new_address`
205
+ /// is returned. This way, the caller of this function can publish additional resources under
206
+ /// `new_address`.
207
+ public(friend) fun create_account(new_address: address): signer {
208
+ // there cannot be an Account resource under new_addr already.
209
+ assert!(!exists<Account>(new_address), error::already_exists(EACCOUNT_ALREADY_EXISTS));
210
+
211
+ // NOTE: @core_resources gets created via a `create_account` call, so we do not include it below.
212
+ assert!(
213
+ new_address != @vm_reserved && new_address != @aptos_framework && new_address != @aptos_token,
214
+ error::invalid_argument(ECANNOT_RESERVED_ADDRESS)
215
+ );
216
+
217
+ create_account_unchecked(new_address)
218
+ }
219
+
220
+ fun create_account_unchecked(new_address: address): signer {
221
+ let new_account = create_signer(new_address);
222
+ let authentication_key = bcs::to_bytes(&new_address);
223
+ assert!(
224
+ vector::length(&authentication_key) == 32,
225
+ error::invalid_argument(EMALFORMED_AUTHENTICATION_KEY)
226
+ );
227
+
228
+ let guid_creation_num = 0;
229
+
230
+ let guid_for_coin = guid::create(new_address, &mut guid_creation_num);
231
+ let coin_register_events = event::new_event_handle<CoinRegisterEvent>(guid_for_coin);
232
+
233
+ let guid_for_rotation = guid::create(new_address, &mut guid_creation_num);
234
+ let key_rotation_events = event::new_event_handle<KeyRotationEvent>(guid_for_rotation);
235
+
236
+ move_to(
237
+ &new_account,
238
+ Account {
239
+ authentication_key,
240
+ sequence_number: 0,
241
+ guid_creation_num,
242
+ coin_register_events,
243
+ key_rotation_events,
244
+ rotation_capability_offer: CapabilityOffer { for: option::none() },
245
+ signer_capability_offer: CapabilityOffer { for: option::none() },
246
+ }
247
+ );
248
+
249
+ new_account
250
+ }
251
+
252
+ #[view]
253
+ public fun exists_at(addr: address): bool {
254
+ exists<Account>(addr)
255
+ }
256
+
257
+ #[view]
258
+ public fun get_guid_next_creation_num(addr: address): u64 acquires Account {
259
+ borrow_global<Account>(addr).guid_creation_num
260
+ }
261
+
262
+ #[view]
263
+ public fun get_sequence_number(addr: address): u64 acquires Account {
264
+ borrow_global<Account>(addr).sequence_number
265
+ }
266
+
267
+ #[view]
268
+ public fun originating_address(auth_key: address): Option<address> acquires OriginatingAddress {
269
+ let address_map_ref = &borrow_global<OriginatingAddress>(@aptos_framework).address_map;
270
+ if (table::contains(address_map_ref, auth_key)) {
271
+ option::some(*table::borrow(address_map_ref, auth_key))
272
+ } else {
273
+ option::none()
274
+ }
275
+ }
276
+
277
+ public(friend) fun increment_sequence_number(addr: address) acquires Account {
278
+ let sequence_number = &mut borrow_global_mut<Account>(addr).sequence_number;
279
+
280
+ assert!(
281
+ (*sequence_number as u128) < MAX_U64,
282
+ error::out_of_range(ESEQUENCE_NUMBER_TOO_BIG)
283
+ );
284
+
285
+ *sequence_number = *sequence_number + 1;
286
+ }
287
+
288
+ #[view]
289
+ public fun get_authentication_key(addr: address): vector<u8> acquires Account {
290
+ borrow_global<Account>(addr).authentication_key
291
+ }
292
+
293
+ /// This function is used to rotate a resource account's authentication key to `new_auth_key`. This is done in
294
+ /// many contexts:
295
+ /// 1. During normal key rotation via `rotate_authentication_key` or `rotate_authentication_key_call`
296
+ /// 2. During resource account initialization so that no private key can control the resource account
297
+ /// 3. During multisig_v2 account creation
298
+ public(friend) fun rotate_authentication_key_internal(account: &signer, new_auth_key: vector<u8>) acquires Account {
299
+ let addr = signer::address_of(account);
300
+ assert!(exists_at(addr), error::not_found(EACCOUNT_DOES_NOT_EXIST));
301
+ assert!(
302
+ vector::length(&new_auth_key) == 32,
303
+ error::invalid_argument(EMALFORMED_AUTHENTICATION_KEY)
304
+ );
305
+ let account_resource = borrow_global_mut<Account>(addr);
306
+ account_resource.authentication_key = new_auth_key;
307
+ }
308
+
309
+ /// Private entry function for key rotation that allows the signer to update their authentication key.
310
+ /// Note that this does not update the `OriginatingAddress` table because the `new_auth_key` is not "verified": it
311
+ /// does not come with a proof-of-knowledge of the underlying SK. Nonetheless, we need this functionality due to
312
+ /// the introduction of non-standard key algorithms, such as passkeys, which cannot produce proofs-of-knowledge in
313
+ /// the format expected in `rotate_authentication_key`.
314
+ ///
315
+ /// If you'd like to followup with updating the `OriginatingAddress` table, you can call
316
+ /// `set_originating_address()`.
317
+ entry fun rotate_authentication_key_call(account: &signer, new_auth_key: vector<u8>) acquires Account {
318
+ rotate_authentication_key_internal(account, new_auth_key);
319
+ }
320
+
321
+ /// Generic authentication key rotation function that allows the user to rotate their authentication key from any scheme to any scheme.
322
+ /// To authorize the rotation, we need two signatures:
323
+ /// - the first signature `cap_rotate_key` refers to the signature by the account owner's current key on a valid `RotationProofChallenge`,
324
+ /// demonstrating that the user intends to and has the capability to rotate the authentication key of this account;
325
+ /// - the second signature `cap_update_table` refers to the signature by the new key (that the account owner wants to rotate to) on a
326
+ /// valid `RotationProofChallenge`, demonstrating that the user owns the new private key, and has the authority to update the
327
+ /// `OriginatingAddress` map with the new address mapping `<new_address, originating_address>`.
328
+ /// To verify these two signatures, we need their corresponding public key and public key scheme: we use `from_scheme` and `from_public_key_bytes`
329
+ /// to verify `cap_rotate_key`, and `to_scheme` and `to_public_key_bytes` to verify `cap_update_table`.
330
+ /// A scheme of 0 refers to an Ed25519 key and a scheme of 1 refers to Multi-Ed25519 keys.
331
+ /// `originating address` refers to an account's original/first address.
332
+ ///
333
+ /// Here is an example attack if we don't ask for the second signature `cap_update_table`:
334
+ /// Alice has rotated her account `addr_a` to `new_addr_a`. As a result, the following entry is created, to help Alice when recovering her wallet:
335
+ /// `OriginatingAddress[new_addr_a]` -> `addr_a`
336
+ /// Alice has had a bad day: her laptop blew up and she needs to reset her account on a new one.
337
+ /// (Fortunately, she still has her secret key `new_sk_a` associated with her new address `new_addr_a`, so she can do this.)
338
+ ///
339
+ /// But Bob likes to mess with Alice.
340
+ /// Bob creates an account `addr_b` and maliciously rotates it to Alice's new address `new_addr_a`. Since we are no longer checking a PoK,
341
+ /// Bob can easily do this.
342
+ ///
343
+ /// Now, the table will be updated to make Alice's new address point to Bob's address: `OriginatingAddress[new_addr_a]` -> `addr_b`.
344
+ /// When Alice recovers her account, her wallet will display the attacker's address (Bob's) `addr_b` as her address.
345
+ /// Now Alice will give `addr_b` to everyone to pay her, but the money will go to Bob.
346
+ ///
347
+ /// Because we ask for a valid `cap_update_table`, this kind of attack is not possible. Bob would not have the secret key of Alice's address
348
+ /// to rotate his address to Alice's address in the first place.
349
+ public entry fun rotate_authentication_key(
350
+ account: &signer,
351
+ from_scheme: u8,
352
+ from_public_key_bytes: vector<u8>,
353
+ to_scheme: u8,
354
+ to_public_key_bytes: vector<u8>,
355
+ cap_rotate_key: vector<u8>,
356
+ cap_update_table: vector<u8>,
357
+ ) acquires Account, OriginatingAddress {
358
+ let addr = signer::address_of(account);
359
+ assert!(exists_at(addr), error::not_found(EACCOUNT_DOES_NOT_EXIST));
360
+ let account_resource = borrow_global_mut<Account>(addr);
361
+
362
+ // Verify the given `from_public_key_bytes` matches this account's current authentication key.
363
+ if (from_scheme == ED25519_SCHEME) {
364
+ let from_pk = ed25519::new_unvalidated_public_key_from_bytes(from_public_key_bytes);
365
+ let from_auth_key = ed25519::unvalidated_public_key_to_authentication_key(&from_pk);
366
+ assert!(
367
+ account_resource.authentication_key == from_auth_key,
368
+ error::unauthenticated(EWRONG_CURRENT_PUBLIC_KEY)
369
+ );
370
+ } else if (from_scheme == MULTI_ED25519_SCHEME) {
371
+ let from_pk = multi_ed25519::new_unvalidated_public_key_from_bytes(from_public_key_bytes);
372
+ let from_auth_key = multi_ed25519::unvalidated_public_key_to_authentication_key(&from_pk);
373
+ assert!(
374
+ account_resource.authentication_key == from_auth_key,
375
+ error::unauthenticated(EWRONG_CURRENT_PUBLIC_KEY)
376
+ );
377
+ } else {
378
+ abort error::invalid_argument(EINVALID_SCHEME)
379
+ };
380
+
381
+ // Construct a valid `RotationProofChallenge` that `cap_rotate_key` and `cap_update_table` will validate against.
382
+ let curr_auth_key_as_address = from_bcs::to_address(account_resource.authentication_key);
383
+ let challenge = RotationProofChallenge {
384
+ sequence_number: account_resource.sequence_number,
385
+ originator: addr,
386
+ current_auth_key: curr_auth_key_as_address,
387
+ new_public_key: to_public_key_bytes,
388
+ };
389
+
390
+ // Assert the challenges signed by the current and new keys are valid
391
+ assert_valid_rotation_proof_signature_and_get_auth_key(
392
+ from_scheme,
393
+ from_public_key_bytes,
394
+ cap_rotate_key,
395
+ &challenge
396
+ );
397
+ let new_auth_key = assert_valid_rotation_proof_signature_and_get_auth_key(
398
+ to_scheme,
399
+ to_public_key_bytes,
400
+ cap_update_table,
401
+ &challenge
402
+ );
403
+
404
+ // Update the `OriginatingAddress` table.
405
+ update_auth_key_and_originating_address_table(addr, account_resource, new_auth_key);
406
+ }
407
+
408
+ public entry fun rotate_authentication_key_with_rotation_capability(
409
+ delegate_signer: &signer,
410
+ rotation_cap_offerer_address: address,
411
+ new_scheme: u8,
412
+ new_public_key_bytes: vector<u8>,
413
+ cap_update_table: vector<u8>
414
+ ) acquires Account, OriginatingAddress {
415
+ assert!(exists_at(rotation_cap_offerer_address), error::not_found(EOFFERER_ADDRESS_DOES_NOT_EXIST));
416
+
417
+ // Check that there exists a rotation capability offer at the offerer's account resource for the delegate.
418
+ let delegate_address = signer::address_of(delegate_signer);
419
+ let offerer_account_resource = borrow_global<Account>(rotation_cap_offerer_address);
420
+ assert!(
421
+ option::contains(&offerer_account_resource.rotation_capability_offer.for, &delegate_address),
422
+ error::not_found(ENO_SUCH_ROTATION_CAPABILITY_OFFER)
423
+ );
424
+
425
+ let curr_auth_key = from_bcs::to_address(offerer_account_resource.authentication_key);
426
+ let challenge = RotationProofChallenge {
427
+ sequence_number: get_sequence_number(delegate_address),
428
+ originator: rotation_cap_offerer_address,
429
+ current_auth_key: curr_auth_key,
430
+ new_public_key: new_public_key_bytes,
431
+ };
432
+
433
+ // Verifies that the `RotationProofChallenge` from above is signed under the new public key that we are rotating to. l
434
+ let new_auth_key = assert_valid_rotation_proof_signature_and_get_auth_key(
435
+ new_scheme,
436
+ new_public_key_bytes,
437
+ cap_update_table,
438
+ &challenge
439
+ );
440
+
441
+ // Update the `OriginatingAddress` table, so we can find the originating address using the new address.
442
+ let offerer_account_resource = borrow_global_mut<Account>(rotation_cap_offerer_address);
443
+ update_auth_key_and_originating_address_table(
444
+ rotation_cap_offerer_address,
445
+ offerer_account_resource,
446
+ new_auth_key
447
+ );
448
+ }
449
+
450
+ /// Offers rotation capability on behalf of `account` to the account at address `recipient_address`.
451
+ /// An account can delegate its rotation capability to only one other address at one time. If the account
452
+ /// has an existing rotation capability offer, calling this function will update the rotation capability offer with
453
+ /// the new `recipient_address`.
454
+ /// Here, `rotation_capability_sig_bytes` signature indicates that this key rotation is authorized by the account owner,
455
+ /// and prevents the classic "time-of-check time-of-use" attack.
456
+ /// For example, users usually rely on what the wallet displays to them as the transaction's outcome. Consider a contract that with 50% probability
457
+ /// (based on the current timestamp in Move), rotates somebody's key. The wallet might be unlucky and get an outcome where nothing is rotated,
458
+ /// incorrectly telling the user nothing bad will happen. But when the transaction actually gets executed, the attacker gets lucky and
459
+ /// the execution path triggers the account key rotation.
460
+ /// We prevent such attacks by asking for this extra signature authorizing the key rotation.
461
+ ///
462
+ /// @param rotation_capability_sig_bytes is the signature by the account owner's key on `RotationCapabilityOfferProofChallengeV2`.
463
+ /// @param account_scheme is the scheme of the account (ed25519 or multi_ed25519).
464
+ /// @param account_public_key_bytes is the public key of the account owner.
465
+ /// @param recipient_address is the address of the recipient of the rotation capability - note that if there's an existing rotation capability
466
+ /// offer, calling this function will replace the previous `recipient_address` upon successful verification.
467
+ public entry fun offer_rotation_capability(
468
+ account: &signer,
469
+ rotation_capability_sig_bytes: vector<u8>,
470
+ account_scheme: u8,
471
+ account_public_key_bytes: vector<u8>,
472
+ recipient_address: address,
473
+ ) acquires Account {
474
+ let addr = signer::address_of(account);
475
+ assert!(exists_at(recipient_address), error::not_found(EACCOUNT_DOES_NOT_EXIST));
476
+
477
+ // proof that this account intends to delegate its rotation capability to another account
478
+ let account_resource = borrow_global_mut<Account>(addr);
479
+ let proof_challenge = RotationCapabilityOfferProofChallengeV2 {
480
+ chain_id: chain_id::get(),
481
+ sequence_number: account_resource.sequence_number,
482
+ source_address: addr,
483
+ recipient_address,
484
+ };
485
+
486
+ // verify the signature on `RotationCapabilityOfferProofChallengeV2` by the account owner
487
+ if (account_scheme == ED25519_SCHEME) {
488
+ let pubkey = ed25519::new_unvalidated_public_key_from_bytes(account_public_key_bytes);
489
+ let expected_auth_key = ed25519::unvalidated_public_key_to_authentication_key(&pubkey);
490
+ assert!(
491
+ account_resource.authentication_key == expected_auth_key,
492
+ error::invalid_argument(EWRONG_CURRENT_PUBLIC_KEY)
493
+ );
494
+
495
+ let rotation_capability_sig = ed25519::new_signature_from_bytes(rotation_capability_sig_bytes);
496
+ assert!(
497
+ ed25519::signature_verify_strict_t(&rotation_capability_sig, &pubkey, proof_challenge),
498
+ error::invalid_argument(EINVALID_PROOF_OF_KNOWLEDGE)
499
+ );
500
+ } else if (account_scheme == MULTI_ED25519_SCHEME) {
501
+ let pubkey = multi_ed25519::new_unvalidated_public_key_from_bytes(account_public_key_bytes);
502
+ let expected_auth_key = multi_ed25519::unvalidated_public_key_to_authentication_key(&pubkey);
503
+ assert!(
504
+ account_resource.authentication_key == expected_auth_key,
505
+ error::invalid_argument(EWRONG_CURRENT_PUBLIC_KEY)
506
+ );
507
+
508
+ let rotation_capability_sig = multi_ed25519::new_signature_from_bytes(rotation_capability_sig_bytes);
509
+ assert!(
510
+ multi_ed25519::signature_verify_strict_t(&rotation_capability_sig, &pubkey, proof_challenge),
511
+ error::invalid_argument(EINVALID_PROOF_OF_KNOWLEDGE)
512
+ );
513
+ } else {
514
+ abort error::invalid_argument(EINVALID_SCHEME)
515
+ };
516
+
517
+ // update the existing rotation capability offer or put in a new rotation capability offer for the current account
518
+ option::swap_or_fill(&mut account_resource.rotation_capability_offer.for, recipient_address);
519
+ }
520
+
521
+ /// For the given account, add an entry to `OriginatingAddress` table mapping the account's
522
+ /// authentication key to the account's address.
523
+ ///
524
+ /// Can be used as a followup to `rotate_authentication_key_call()` to reconcile the
525
+ /// `OriginatingAddress` table, or to establish a mapping for a new account that has not yet had
526
+ /// its authentication key rotated.
527
+ ///
528
+ /// Aborts if there is already an entry in the `OriginatingAddress` table for the account's
529
+ /// authentication key.
530
+ ///
531
+ /// Kept as a private entry function to ensure that after an unproven rotation via
532
+ /// `rotate_authentication_key_call()`, the `OriginatingAddress` table is only updated under the
533
+ /// authority of the new authentication key.
534
+ entry fun set_originating_address(account: &signer) acquires Account, OriginatingAddress {
535
+ let account_addr = signer::address_of(account);
536
+ assert!(exists<Account>(account_addr), error::not_found(EACCOUNT_DOES_NOT_EXIST));
537
+ let auth_key_as_address =
538
+ from_bcs::to_address(borrow_global<Account>(account_addr).authentication_key);
539
+ let address_map_ref_mut =
540
+ &mut borrow_global_mut<OriginatingAddress>(@aptos_framework).address_map;
541
+ if (table::contains(address_map_ref_mut, auth_key_as_address)) {
542
+ assert!(
543
+ *table::borrow(address_map_ref_mut, auth_key_as_address) == account_addr,
544
+ error::invalid_argument(ENEW_AUTH_KEY_ALREADY_MAPPED)
545
+ );
546
+ } else {
547
+ table::add(address_map_ref_mut, auth_key_as_address, account_addr);
548
+ };
549
+ }
550
+
551
+ #[view]
552
+ /// Returns true if the account at `account_addr` has a rotation capability offer.
553
+ public fun is_rotation_capability_offered(account_addr: address): bool acquires Account {
554
+ let account_resource = borrow_global<Account>(account_addr);
555
+ option::is_some(&account_resource.rotation_capability_offer.for)
556
+ }
557
+
558
+ #[view]
559
+ /// Returns the address of the account that has a rotation capability offer from the account at `account_addr`.
560
+ public fun get_rotation_capability_offer_for(account_addr: address): address acquires Account {
561
+ let account_resource = borrow_global<Account>(account_addr);
562
+ assert!(
563
+ option::is_some(&account_resource.rotation_capability_offer.for),
564
+ error::not_found(ENO_SIGNER_CAPABILITY_OFFERED),
565
+ );
566
+ *option::borrow(&account_resource.rotation_capability_offer.for)
567
+ }
568
+
569
+ /// Revoke the rotation capability offer given to `to_be_revoked_recipient_address` from `account`
570
+ public entry fun revoke_rotation_capability(account: &signer, to_be_revoked_address: address) acquires Account {
571
+ assert!(exists_at(to_be_revoked_address), error::not_found(EACCOUNT_DOES_NOT_EXIST));
572
+ let addr = signer::address_of(account);
573
+ let account_resource = borrow_global<Account>(addr);
574
+ assert!(
575
+ option::contains(&account_resource.rotation_capability_offer.for, &to_be_revoked_address),
576
+ error::not_found(ENO_SUCH_ROTATION_CAPABILITY_OFFER)
577
+ );
578
+ revoke_any_rotation_capability(account);
579
+ }
580
+
581
+ /// Revoke any rotation capability offer in the specified account.
582
+ public entry fun revoke_any_rotation_capability(account: &signer) acquires Account {
583
+ let account_resource = borrow_global_mut<Account>(signer::address_of(account));
584
+ option::extract(&mut account_resource.rotation_capability_offer.for);
585
+ }
586
+
587
+ /// Offers signer capability on behalf of `account` to the account at address `recipient_address`.
588
+ /// An account can delegate its signer capability to only one other address at one time.
589
+ /// `signer_capability_key_bytes` is the `SignerCapabilityOfferProofChallengeV2` signed by the account owner's key
590
+ /// `account_scheme` is the scheme of the account (ed25519 or multi_ed25519).
591
+ /// `account_public_key_bytes` is the public key of the account owner.
592
+ /// `recipient_address` is the address of the recipient of the signer capability - note that if there's an existing
593
+ /// `recipient_address` in the account owner's `SignerCapabilityOffer`, this will replace the
594
+ /// previous `recipient_address` upon successful verification (the previous recipient will no longer have access
595
+ /// to the account owner's signer capability).
596
+ public entry fun offer_signer_capability(
597
+ account: &signer,
598
+ signer_capability_sig_bytes: vector<u8>,
599
+ account_scheme: u8,
600
+ account_public_key_bytes: vector<u8>,
601
+ recipient_address: address
602
+ ) acquires Account {
603
+ let source_address = signer::address_of(account);
604
+ assert!(exists_at(recipient_address), error::not_found(EACCOUNT_DOES_NOT_EXIST));
605
+
606
+ // Proof that this account intends to delegate its signer capability to another account.
607
+ let proof_challenge = SignerCapabilityOfferProofChallengeV2 {
608
+ sequence_number: get_sequence_number(source_address),
609
+ source_address,
610
+ recipient_address,
611
+ };
612
+ verify_signed_message(
613
+ source_address, account_scheme, account_public_key_bytes, signer_capability_sig_bytes, proof_challenge);
614
+
615
+ // Update the existing signer capability offer or put in a new signer capability offer for the recipient.
616
+ let account_resource = borrow_global_mut<Account>(source_address);
617
+ option::swap_or_fill(&mut account_resource.signer_capability_offer.for, recipient_address);
618
+ }
619
+
620
+ #[view]
621
+ /// Returns true if the account at `account_addr` has a signer capability offer.
622
+ public fun is_signer_capability_offered(account_addr: address): bool acquires Account {
623
+ let account_resource = borrow_global<Account>(account_addr);
624
+ option::is_some(&account_resource.signer_capability_offer.for)
625
+ }
626
+
627
+ #[view]
628
+ /// Returns the address of the account that has a signer capability offer from the account at `account_addr`.
629
+ public fun get_signer_capability_offer_for(account_addr: address): address acquires Account {
630
+ let account_resource = borrow_global<Account>(account_addr);
631
+ assert!(
632
+ option::is_some(&account_resource.signer_capability_offer.for),
633
+ error::not_found(ENO_SIGNER_CAPABILITY_OFFERED),
634
+ );
635
+ *option::borrow(&account_resource.signer_capability_offer.for)
636
+ }
637
+
638
+ /// Revoke the account owner's signer capability offer for `to_be_revoked_address` (i.e., the address that
639
+ /// has a signer capability offer from `account` but will be revoked in this function).
640
+ public entry fun revoke_signer_capability(account: &signer, to_be_revoked_address: address) acquires Account {
641
+ assert!(exists_at(to_be_revoked_address), error::not_found(EACCOUNT_DOES_NOT_EXIST));
642
+ let addr = signer::address_of(account);
643
+ let account_resource = borrow_global<Account>(addr);
644
+ assert!(
645
+ option::contains(&account_resource.signer_capability_offer.for, &to_be_revoked_address),
646
+ error::not_found(ENO_SUCH_SIGNER_CAPABILITY)
647
+ );
648
+ revoke_any_signer_capability(account);
649
+ }
650
+
651
+ /// Revoke any signer capability offer in the specified account.
652
+ public entry fun revoke_any_signer_capability(account: &signer) acquires Account {
653
+ let account_resource = borrow_global_mut<Account>(signer::address_of(account));
654
+ option::extract(&mut account_resource.signer_capability_offer.for);
655
+ }
656
+
657
+ /// Return an authorized signer of the offerer, if there's an existing signer capability offer for `account`
658
+ /// at the offerer's address.
659
+ public fun create_authorized_signer(account: &signer, offerer_address: address): signer acquires Account {
660
+ assert!(exists_at(offerer_address), error::not_found(EOFFERER_ADDRESS_DOES_NOT_EXIST));
661
+
662
+ // Check if there's an existing signer capability offer from the offerer.
663
+ let account_resource = borrow_global<Account>(offerer_address);
664
+ let addr = signer::address_of(account);
665
+ assert!(
666
+ option::contains(&account_resource.signer_capability_offer.for, &addr),
667
+ error::not_found(ENO_SUCH_SIGNER_CAPABILITY)
668
+ );
669
+
670
+ create_signer(offerer_address)
671
+ }
672
+
673
+ ///////////////////////////////////////////////////////////////////////////
674
+ /// Helper functions for authentication key rotation.
675
+ ///////////////////////////////////////////////////////////////////////////
676
+ fun assert_valid_rotation_proof_signature_and_get_auth_key(
677
+ scheme: u8,
678
+ public_key_bytes: vector<u8>,
679
+ signature: vector<u8>,
680
+ challenge: &RotationProofChallenge
681
+ ): vector<u8> {
682
+ if (scheme == ED25519_SCHEME) {
683
+ let pk = ed25519::new_unvalidated_public_key_from_bytes(public_key_bytes);
684
+ let sig = ed25519::new_signature_from_bytes(signature);
685
+ assert!(
686
+ ed25519::signature_verify_strict_t(&sig, &pk, *challenge),
687
+ std::error::invalid_argument(EINVALID_PROOF_OF_KNOWLEDGE)
688
+ );
689
+ ed25519::unvalidated_public_key_to_authentication_key(&pk)
690
+ } else if (scheme == MULTI_ED25519_SCHEME) {
691
+ let pk = multi_ed25519::new_unvalidated_public_key_from_bytes(public_key_bytes);
692
+ let sig = multi_ed25519::new_signature_from_bytes(signature);
693
+ assert!(
694
+ multi_ed25519::signature_verify_strict_t(&sig, &pk, *challenge),
695
+ std::error::invalid_argument(EINVALID_PROOF_OF_KNOWLEDGE)
696
+ );
697
+ multi_ed25519::unvalidated_public_key_to_authentication_key(&pk)
698
+ } else {
699
+ abort error::invalid_argument(EINVALID_SCHEME)
700
+ }
701
+ }
702
+
703
+ /// Update the `OriginatingAddress` table, so that we can find the originating address using the latest address
704
+ /// in the event of key recovery.
705
+ fun update_auth_key_and_originating_address_table(
706
+ originating_addr: address,
707
+ account_resource: &mut Account,
708
+ new_auth_key_vector: vector<u8>,
709
+ ) acquires OriginatingAddress {
710
+ let address_map = &mut borrow_global_mut<OriginatingAddress>(@aptos_framework).address_map;
711
+ let curr_auth_key = from_bcs::to_address(account_resource.authentication_key);
712
+ let new_auth_key = from_bcs::to_address(new_auth_key_vector);
713
+ assert!(
714
+ new_auth_key != curr_auth_key,
715
+ error::invalid_argument(ENEW_AUTH_KEY_SAME_AS_CURRENT)
716
+ );
717
+
718
+ // Checks `OriginatingAddress[curr_auth_key]` is either unmapped, or mapped to `originating_address`.
719
+ // If it's mapped to the originating address, removes that mapping.
720
+ // Otherwise, abort if it's mapped to a different address.
721
+ if (table::contains(address_map, curr_auth_key)) {
722
+ // If account_a with address_a is rotating its keypair from keypair_a to keypair_b, we expect
723
+ // the address of the account to stay the same, while its keypair updates to keypair_b.
724
+ // Here, by asserting that we're calling from the account with the originating address, we enforce
725
+ // the standard of keeping the same address and updating the keypair at the contract level.
726
+ // Without this assertion, the dapps could also update the account's address to address_b (the address that
727
+ // is programmatically related to keypaier_b) and update the keypair to keypair_b. This causes problems
728
+ // for interoperability because different dapps can implement this in different ways.
729
+ // If the account with address b calls this function with two valid signatures, it will abort at this step,
730
+ // because address b is not the account's originating address.
731
+ assert!(
732
+ originating_addr == table::remove(address_map, curr_auth_key),
733
+ error::not_found(EINVALID_ORIGINATING_ADDRESS)
734
+ );
735
+ };
736
+
737
+ // Set `OriginatingAddress[new_auth_key] = originating_address`.
738
+ assert!(
739
+ !table::contains(address_map, new_auth_key),
740
+ error::invalid_argument(ENEW_AUTH_KEY_ALREADY_MAPPED)
741
+ );
742
+ table::add(address_map, new_auth_key, originating_addr);
743
+
744
+ if (std::features::module_event_migration_enabled()) {
745
+ event::emit(KeyRotation {
746
+ account: originating_addr,
747
+ old_authentication_key: account_resource.authentication_key,
748
+ new_authentication_key: new_auth_key_vector,
749
+ });
750
+ } else {
751
+ event::emit_event<KeyRotationEvent>(
752
+ &mut account_resource.key_rotation_events,
753
+ KeyRotationEvent {
754
+ old_authentication_key: account_resource.authentication_key,
755
+ new_authentication_key: new_auth_key_vector,
756
+ }
757
+ );
758
+ };
759
+
760
+ // Update the account resource's authentication key.
761
+ account_resource.authentication_key = new_auth_key_vector;
762
+ }
763
+
764
+ ///////////////////////////////////////////////////////////////////////////
765
+ /// Basic account creation methods.
766
+ ///////////////////////////////////////////////////////////////////////////
767
+
768
+ /// This is a helper function to compute resource addresses. Computation of the address
769
+ /// involves the use of a cryptographic hash operation and should be use thoughtfully.
770
+ public fun create_resource_address(source: &address, seed: vector<u8>): address {
771
+ let bytes = bcs::to_bytes(source);
772
+ vector::append(&mut bytes, seed);
773
+ vector::push_back(&mut bytes, DERIVE_RESOURCE_ACCOUNT_SCHEME);
774
+ from_bcs::to_address(hash::sha3_256(bytes))
775
+ }
776
+
777
+ /// A resource account is used to manage resources independent of an account managed by a user.
778
+ /// In Aptos a resource account is created based upon the sha3 256 of the source's address and additional seed data.
779
+ /// A resource account can only be created once, this is designated by setting the
780
+ /// `Account::signer_capability_offer::for` to the address of the resource account. While an entity may call
781
+ /// `create_account` to attempt to claim an account ahead of the creation of a resource account, if found Aptos will
782
+ /// transition ownership of the account over to the resource account. This is done by validating that the account has
783
+ /// yet to execute any transactions and that the `Account::signer_capability_offer::for` is none. The probability of a
784
+ /// collision where someone has legitimately produced a private key that maps to a resource account address is less
785
+ /// than `(1/2)^(256)`.
786
+ public fun create_resource_account(source: &signer, seed: vector<u8>): (signer, SignerCapability) acquires Account {
787
+ let resource_addr = create_resource_address(&signer::address_of(source), seed);
788
+ let resource = if (exists_at(resource_addr)) {
789
+ let account = borrow_global<Account>(resource_addr);
790
+ assert!(
791
+ option::is_none(&account.signer_capability_offer.for),
792
+ error::already_exists(ERESOURCE_ACCCOUNT_EXISTS),
793
+ );
794
+ assert!(
795
+ account.sequence_number == 0,
796
+ error::invalid_state(EACCOUNT_ALREADY_USED),
797
+ );
798
+ create_signer(resource_addr)
799
+ } else {
800
+ create_account_unchecked(resource_addr)
801
+ };
802
+
803
+ // By default, only the SignerCapability should have control over the resource account and not the auth key.
804
+ // If the source account wants direct control via auth key, they would need to explicitly rotate the auth key
805
+ // of the resource account using the SignerCapability.
806
+ rotate_authentication_key_internal(&resource, ZERO_AUTH_KEY);
807
+
808
+ let account = borrow_global_mut<Account>(resource_addr);
809
+ account.signer_capability_offer.for = option::some(resource_addr);
810
+ let signer_cap = SignerCapability { account: resource_addr };
811
+ (resource, signer_cap)
812
+ }
813
+
814
+ /// create the account for system reserved addresses
815
+ public(friend) fun create_framework_reserved_account(addr: address): (signer, SignerCapability) {
816
+ assert!(
817
+ addr == @0x1 ||
818
+ addr == @0x2 ||
819
+ addr == @0x3 ||
820
+ addr == @0x4 ||
821
+ addr == @0x5 ||
822
+ addr == @0x6 ||
823
+ addr == @0x7 ||
824
+ addr == @0x8 ||
825
+ addr == @0x9 ||
826
+ addr == @0xa,
827
+ error::permission_denied(ENO_VALID_FRAMEWORK_RESERVED_ADDRESS),
828
+ );
829
+ let signer = create_account_unchecked(addr);
830
+ let signer_cap = SignerCapability { account: addr };
831
+ (signer, signer_cap)
832
+ }
833
+
834
+ ///////////////////////////////////////////////////////////////////////////
835
+ /// GUID management methods.
836
+ ///////////////////////////////////////////////////////////////////////////
837
+
838
+ public fun create_guid(account_signer: &signer): guid::GUID acquires Account {
839
+ let addr = signer::address_of(account_signer);
840
+ let account = borrow_global_mut<Account>(addr);
841
+ let guid = guid::create(addr, &mut account.guid_creation_num);
842
+ assert!(
843
+ account.guid_creation_num < MAX_GUID_CREATION_NUM,
844
+ error::out_of_range(EEXCEEDED_MAX_GUID_CREATION_NUM),
845
+ );
846
+ guid
847
+ }
848
+
849
+ ///////////////////////////////////////////////////////////////////////////
850
+ /// GUID management methods.
851
+ ///////////////////////////////////////////////////////////////////////////
852
+
853
+ public fun new_event_handle<T: drop + store>(account: &signer): EventHandle<T> acquires Account {
854
+ event::new_event_handle(create_guid(account))
855
+ }
856
+
857
+ ///////////////////////////////////////////////////////////////////////////
858
+ /// Coin management methods.
859
+ ///////////////////////////////////////////////////////////////////////////
860
+
861
+ public(friend) fun register_coin<CoinType>(account_addr: address) acquires Account {
862
+ let account = borrow_global_mut<Account>(account_addr);
863
+ if (std::features::module_event_migration_enabled()) {
864
+ event::emit(
865
+ CoinRegister {
866
+ account: account_addr,
867
+ type_info: type_info::type_of<CoinType>(),
868
+ },
869
+ );
870
+ } else {
871
+ event::emit_event<CoinRegisterEvent>(
872
+ &mut account.coin_register_events,
873
+ CoinRegisterEvent {
874
+ type_info: type_info::type_of<CoinType>(),
875
+ },
876
+ );
877
+ }
878
+ }
879
+
880
+ ///////////////////////////////////////////////////////////////////////////
881
+ // Test-only create signerCapabilityOfferProofChallengeV2 and return it
882
+ ///////////////////////////////////////////////////////////////////////////
883
+
884
+ #[test_only]
885
+ public fun get_signer_capability_offer_proof_challenge_v2(
886
+ source_address: address,
887
+ recipient_address: address,
888
+ ): SignerCapabilityOfferProofChallengeV2 acquires Account {
889
+ SignerCapabilityOfferProofChallengeV2 {
890
+ sequence_number: borrow_global_mut<Account>(source_address).sequence_number,
891
+ source_address,
892
+ recipient_address,
893
+ }
894
+ }
895
+
896
+ ///////////////////////////////////////////////////////////////////////////
897
+ /// Capability based functions for efficient use.
898
+ ///////////////////////////////////////////////////////////////////////////
899
+
900
+ public fun create_signer_with_capability(capability: &SignerCapability): signer {
901
+ let addr = &capability.account;
902
+ create_signer(*addr)
903
+ }
904
+
905
+ public fun get_signer_capability_address(capability: &SignerCapability): address {
906
+ capability.account
907
+ }
908
+
909
+ public fun verify_signed_message<T: drop>(
910
+ account: address,
911
+ account_scheme: u8,
912
+ account_public_key: vector<u8>,
913
+ signed_message_bytes: vector<u8>,
914
+ message: T,
915
+ ) acquires Account {
916
+ let account_resource = borrow_global<Account>(account);
917
+ // Verify that the `SignerCapabilityOfferProofChallengeV2` has the right information and is signed by the account owner's key
918
+ if (account_scheme == ED25519_SCHEME) {
919
+ let pubkey = ed25519::new_unvalidated_public_key_from_bytes(account_public_key);
920
+ let expected_auth_key = ed25519::unvalidated_public_key_to_authentication_key(&pubkey);
921
+ assert!(
922
+ account_resource.authentication_key == expected_auth_key,
923
+ error::invalid_argument(EWRONG_CURRENT_PUBLIC_KEY),
924
+ );
925
+
926
+ let signer_capability_sig = ed25519::new_signature_from_bytes(signed_message_bytes);
927
+ assert!(
928
+ ed25519::signature_verify_strict_t(&signer_capability_sig, &pubkey, message),
929
+ error::invalid_argument(EINVALID_PROOF_OF_KNOWLEDGE),
930
+ );
931
+ } else if (account_scheme == MULTI_ED25519_SCHEME) {
932
+ let pubkey = multi_ed25519::new_unvalidated_public_key_from_bytes(account_public_key);
933
+ let expected_auth_key = multi_ed25519::unvalidated_public_key_to_authentication_key(&pubkey);
934
+ assert!(
935
+ account_resource.authentication_key == expected_auth_key,
936
+ error::invalid_argument(EWRONG_CURRENT_PUBLIC_KEY),
937
+ );
938
+
939
+ let signer_capability_sig = multi_ed25519::new_signature_from_bytes(signed_message_bytes);
940
+ assert!(
941
+ multi_ed25519::signature_verify_strict_t(&signer_capability_sig, &pubkey, message),
942
+ error::invalid_argument(EINVALID_PROOF_OF_KNOWLEDGE),
943
+ );
944
+ } else {
945
+ abort error::invalid_argument(EINVALID_SCHEME)
946
+ };
947
+ }
948
+
949
+ #[test_only]
950
+ public fun create_account_for_test(new_address: address): signer {
951
+ // Make this easier by just allowing the account to be created again in a test
952
+ if (!exists_at(new_address)) {
953
+ create_account_unchecked(new_address)
954
+ } else {
955
+ create_signer_for_test(new_address)
956
+ }
957
+ }
958
+
959
+ #[test]
960
+ /// Assert correct signer creation.
961
+ fun test_create_signer_for_test() {
962
+ assert!(signer::address_of(&create_signer_for_test(@aptos_framework)) == @0x1, 0);
963
+ assert!(signer::address_of(&create_signer_for_test(@0x123)) == @0x123, 0);
964
+ }
965
+
966
+ #[test(user = @0x1)]
967
+ public entry fun test_create_resource_account(user: signer) acquires Account {
968
+ let (resource_account, resource_account_cap) = create_resource_account(&user, x"01");
969
+ let resource_addr = signer::address_of(&resource_account);
970
+ assert!(resource_addr != signer::address_of(&user), 0);
971
+ assert!(resource_addr == get_signer_capability_address(&resource_account_cap), 1);
972
+ }
973
+
974
+ #[test]
975
+ #[expected_failure(abort_code = 0x10007, location = Self)]
976
+ public entry fun test_cannot_control_resource_account_via_auth_key() acquires Account {
977
+ let alice_pk = x"4141414141414141414141414141414141414141414141414141414141414145";
978
+ let alice = create_account_from_ed25519_public_key(alice_pk);
979
+ let alice_auth = get_authentication_key(signer::address_of(&alice)); // must look like a valid public key
980
+
981
+ let (eve_sk, eve_pk) = ed25519::generate_keys();
982
+ let eve_pk_bytes = ed25519::validated_public_key_to_bytes(&eve_pk);
983
+ let eve = create_account_from_ed25519_public_key(eve_pk_bytes);
984
+ let recipient_address = signer::address_of(&eve);
985
+
986
+ let seed = eve_pk_bytes; // multisig public key
987
+ vector::push_back(&mut seed, 1); // multisig threshold
988
+ vector::push_back(&mut seed, 1); // signature scheme id
989
+ let (resource, _) = create_resource_account(&alice, seed);
990
+
991
+ let resource_addr = signer::address_of(&resource);
992
+ let proof_challenge = SignerCapabilityOfferProofChallengeV2 {
993
+ sequence_number: borrow_global_mut<Account>(resource_addr).sequence_number,
994
+ source_address: resource_addr,
995
+ recipient_address,
996
+ };
997
+
998
+ let eve_sig = ed25519::sign_struct(&eve_sk, copy proof_challenge);
999
+
1000
+ // Construct a malicious 1-out-of-2 multisig PK over Alice's authentication key and Eve's Ed25519 PK.
1001
+ let account_public_key_bytes = alice_auth;
1002
+ vector::append(&mut account_public_key_bytes, eve_pk_bytes);
1003
+ vector::push_back(&mut account_public_key_bytes, 1); // Multisig verification threshold.
1004
+ let fake_pk = multi_ed25519::new_unvalidated_public_key_from_bytes(account_public_key_bytes);
1005
+
1006
+ // Construct a multisig for `proof_challenge` as if it is signed by the signers behind `fake_pk`,
1007
+ // Eve being the only participant.
1008
+ let signer_capability_sig_bytes = x"";
1009
+ vector::append(&mut signer_capability_sig_bytes, ed25519::signature_to_bytes(&eve_sig));
1010
+ vector::append(&mut signer_capability_sig_bytes, x"40000000"); // Signers bitmap.
1011
+ let fake_sig = multi_ed25519::new_signature_from_bytes(signer_capability_sig_bytes);
1012
+
1013
+ assert!(
1014
+ multi_ed25519::signature_verify_strict_t(&fake_sig, &fake_pk, proof_challenge),
1015
+ error::invalid_state(EINVALID_PROOF_OF_KNOWLEDGE)
1016
+ );
1017
+ offer_signer_capability(
1018
+ &resource,
1019
+ signer_capability_sig_bytes,
1020
+ MULTI_ED25519_SCHEME,
1021
+ account_public_key_bytes,
1022
+ recipient_address
1023
+ );
1024
+ }
1025
+
1026
+ #[test_only]
1027
+ struct DummyResource has key {}
1028
+
1029
+ #[test(user = @0x1)]
1030
+ public entry fun test_module_capability(user: signer) acquires Account, DummyResource {
1031
+ let (resource_account, signer_cap) = create_resource_account(&user, x"01");
1032
+ assert!(signer::address_of(&resource_account) != signer::address_of(&user), 0);
1033
+
1034
+ let resource_account_from_cap = create_signer_with_capability(&signer_cap);
1035
+ assert!(&resource_account == &resource_account_from_cap, 1);
1036
+
1037
+ move_to(&resource_account_from_cap, DummyResource {});
1038
+ borrow_global<DummyResource>(signer::address_of(&resource_account));
1039
+ }
1040
+
1041
+ #[test(user = @0x1)]
1042
+ public entry fun test_resource_account_and_create_account(user: signer) acquires Account {
1043
+ let resource_addr = create_resource_address(&@0x1, x"01");
1044
+ create_account_unchecked(resource_addr);
1045
+
1046
+ create_resource_account(&user, x"01");
1047
+ }
1048
+
1049
+ #[test(user = @0x1)]
1050
+ #[expected_failure(abort_code = 0x8000f, location = Self)]
1051
+ public entry fun test_duplice_create_resource_account(user: signer) acquires Account {
1052
+ create_resource_account(&user, x"01");
1053
+ create_resource_account(&user, x"01");
1054
+ }
1055
+
1056
+ ///////////////////////////////////////////////////////////////////////////
1057
+ // Test-only sequence number mocking for extant Account resource
1058
+ ///////////////////////////////////////////////////////////////////////////
1059
+
1060
+ #[test_only]
1061
+ /// Increment sequence number of account at address `addr`
1062
+ public fun increment_sequence_number_for_test(
1063
+ addr: address,
1064
+ ) acquires Account {
1065
+ let acct = borrow_global_mut<Account>(addr);
1066
+ acct.sequence_number = acct.sequence_number + 1;
1067
+ }
1068
+
1069
+ #[test_only]
1070
+ /// Update address `addr` to have `s` as its sequence number
1071
+ public fun set_sequence_number(
1072
+ addr: address,
1073
+ s: u64
1074
+ ) acquires Account {
1075
+ borrow_global_mut<Account>(addr).sequence_number = s;
1076
+ }
1077
+
1078
+ #[test_only]
1079
+ public fun create_test_signer_cap(account: address): SignerCapability {
1080
+ SignerCapability { account }
1081
+ }
1082
+
1083
+ #[test_only]
1084
+ public fun set_signer_capability_offer(offerer: address, receiver: address) acquires Account {
1085
+ let account_resource = borrow_global_mut<Account>(offerer);
1086
+ option::swap_or_fill(&mut account_resource.signer_capability_offer.for, receiver);
1087
+ }
1088
+
1089
+ #[test_only]
1090
+ public fun set_rotation_capability_offer(offerer: address, receiver: address) acquires Account {
1091
+ let account_resource = borrow_global_mut<Account>(offerer);
1092
+ option::swap_or_fill(&mut account_resource.rotation_capability_offer.for, receiver);
1093
+ }
1094
+
1095
+ #[test]
1096
+ /// Verify test-only sequence number mocking
1097
+ public entry fun mock_sequence_numbers()
1098
+ acquires Account {
1099
+ let addr: address = @0x1234; // Define test address
1100
+ create_account(addr); // Initialize account resource
1101
+ // Assert sequence number intializes to 0
1102
+ assert!(borrow_global<Account>(addr).sequence_number == 0, 0);
1103
+ increment_sequence_number_for_test(addr); // Increment sequence number
1104
+ // Assert correct mock value post-increment
1105
+ assert!(borrow_global<Account>(addr).sequence_number == 1, 1);
1106
+ set_sequence_number(addr, 10); // Set mock sequence number
1107
+ // Assert correct mock value post-modification
1108
+ assert!(borrow_global<Account>(addr).sequence_number == 10, 2);
1109
+ }
1110
+
1111
+ ///////////////////////////////////////////////////////////////////////////
1112
+ // Test account helpers
1113
+ ///////////////////////////////////////////////////////////////////////////
1114
+
1115
+ #[test(alice = @0xa11ce)]
1116
+ #[expected_failure(abort_code = 65537, location = aptos_framework::ed25519)]
1117
+ public entry fun test_empty_public_key(alice: signer) acquires Account, OriginatingAddress {
1118
+ create_account(signer::address_of(&alice));
1119
+ let pk = vector::empty<u8>();
1120
+ let sig = x"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000";
1121
+ rotate_authentication_key(&alice, ED25519_SCHEME, pk, ED25519_SCHEME, pk, sig, sig);
1122
+ }
1123
+
1124
+ #[test(alice = @0xa11ce)]
1125
+ #[expected_failure(abort_code = 262151, location = Self)]
1126
+ public entry fun test_empty_signature(alice: signer) acquires Account, OriginatingAddress {
1127
+ create_account(signer::address_of(&alice));
1128
+ let test_signature = vector::empty<u8>();
1129
+ let pk = x"0000000000000000000000000000000000000000000000000000000000000000";
1130
+ rotate_authentication_key(&alice, ED25519_SCHEME, pk, ED25519_SCHEME, pk, test_signature, test_signature);
1131
+ }
1132
+
1133
+ #[test_only]
1134
+ public fun create_account_from_ed25519_public_key(pk_bytes: vector<u8>): signer {
1135
+ let pk = ed25519::new_unvalidated_public_key_from_bytes(pk_bytes);
1136
+ let curr_auth_key = ed25519::unvalidated_public_key_to_authentication_key(&pk);
1137
+ let alice_address = from_bcs::to_address(curr_auth_key);
1138
+ let alice = create_account_unchecked(alice_address);
1139
+ alice
1140
+ }
1141
+
1142
+ //
1143
+ // Tests for offering & revoking signer capabilities
1144
+ //
1145
+
1146
+ #[test(bob = @0x345)]
1147
+ #[expected_failure(abort_code = 65544, location = Self)]
1148
+ public entry fun test_invalid_offer_signer_capability(bob: signer) acquires Account {
1149
+ let (_alice_sk, alice_pk) = ed25519::generate_keys();
1150
+ let alice_pk_bytes = ed25519::validated_public_key_to_bytes(&alice_pk);
1151
+ let alice = create_account_from_ed25519_public_key(alice_pk_bytes);
1152
+ let alice_addr = signer::address_of(&alice);
1153
+
1154
+ let bob_addr = signer::address_of(&bob);
1155
+ create_account(bob_addr);
1156
+
1157
+ let challenge = SignerCapabilityOfferProofChallengeV2 {
1158
+ sequence_number: borrow_global<Account>(alice_addr).sequence_number,
1159
+ source_address: alice_addr,
1160
+ recipient_address: bob_addr,
1161
+ };
1162
+
1163
+ let sig = ed25519::sign_struct(&_alice_sk, challenge);
1164
+
1165
+ // Maul the signature and make sure the call would fail
1166
+ let invalid_signature = ed25519::signature_to_bytes(&sig);
1167
+ let first_sig_byte = vector::borrow_mut(&mut invalid_signature, 0);
1168
+ *first_sig_byte = *first_sig_byte ^ 1;
1169
+
1170
+ offer_signer_capability(&alice, invalid_signature, 0, alice_pk_bytes, bob_addr);
1171
+ }
1172
+
1173
+ #[test(bob = @0x345)]
1174
+ public entry fun test_valid_check_signer_capability_and_create_authorized_signer(bob: signer) acquires Account {
1175
+ let (alice_sk, alice_pk) = ed25519::generate_keys();
1176
+ let alice_pk_bytes = ed25519::validated_public_key_to_bytes(&alice_pk);
1177
+ let alice = create_account_from_ed25519_public_key(alice_pk_bytes);
1178
+ let alice_addr = signer::address_of(&alice);
1179
+
1180
+ let bob_addr = signer::address_of(&bob);
1181
+ create_account(bob_addr);
1182
+
1183
+ let challenge = SignerCapabilityOfferProofChallengeV2 {
1184
+ sequence_number: borrow_global<Account>(alice_addr).sequence_number,
1185
+ source_address: alice_addr,
1186
+ recipient_address: bob_addr,
1187
+ };
1188
+
1189
+ let alice_signer_capability_offer_sig = ed25519::sign_struct(&alice_sk, challenge);
1190
+
1191
+ offer_signer_capability(
1192
+ &alice,
1193
+ ed25519::signature_to_bytes(&alice_signer_capability_offer_sig),
1194
+ 0,
1195
+ alice_pk_bytes,
1196
+ bob_addr
1197
+ );
1198
+
1199
+ assert!(option::contains(&borrow_global<Account>(alice_addr).signer_capability_offer.for, &bob_addr), 0);
1200
+
1201
+ let signer = create_authorized_signer(&bob, alice_addr);
1202
+ assert!(signer::address_of(&signer) == signer::address_of(&alice), 0);
1203
+ }
1204
+
1205
+ #[test(bob = @0x345)]
1206
+ public entry fun test_get_signer_cap_and_is_signer_cap(bob: signer) acquires Account {
1207
+ let (alice_sk, alice_pk) = ed25519::generate_keys();
1208
+ let alice_pk_bytes = ed25519::validated_public_key_to_bytes(&alice_pk);
1209
+ let alice = create_account_from_ed25519_public_key(alice_pk_bytes);
1210
+ let alice_addr = signer::address_of(&alice);
1211
+
1212
+ let bob_addr = signer::address_of(&bob);
1213
+ create_account(bob_addr);
1214
+
1215
+ let challenge = SignerCapabilityOfferProofChallengeV2 {
1216
+ sequence_number: borrow_global<Account>(alice_addr).sequence_number,
1217
+ source_address: alice_addr,
1218
+ recipient_address: bob_addr,
1219
+ };
1220
+
1221
+ let alice_signer_capability_offer_sig = ed25519::sign_struct(&alice_sk, challenge);
1222
+
1223
+ offer_signer_capability(
1224
+ &alice,
1225
+ ed25519::signature_to_bytes(&alice_signer_capability_offer_sig),
1226
+ 0,
1227
+ alice_pk_bytes,
1228
+ bob_addr
1229
+ );
1230
+
1231
+ assert!(is_signer_capability_offered(alice_addr), 0);
1232
+ assert!(get_signer_capability_offer_for(alice_addr) == bob_addr, 0);
1233
+ }
1234
+
1235
+
1236
+ #[test(bob = @0x345, charlie = @0x567)]
1237
+ #[expected_failure(abort_code = 393230, location = Self)]
1238
+ public entry fun test_invalid_check_signer_capability_and_create_authorized_signer(
1239
+ bob: signer,
1240
+ charlie: signer
1241
+ ) acquires Account {
1242
+ let (alice_sk, alice_pk) = ed25519::generate_keys();
1243
+ let alice_pk_bytes = ed25519::validated_public_key_to_bytes(&alice_pk);
1244
+ let alice = create_account_from_ed25519_public_key(alice_pk_bytes);
1245
+ let alice_addr = signer::address_of(&alice);
1246
+
1247
+ let bob_addr = signer::address_of(&bob);
1248
+ create_account(bob_addr);
1249
+
1250
+ let challenge = SignerCapabilityOfferProofChallengeV2 {
1251
+ sequence_number: borrow_global<Account>(alice_addr).sequence_number,
1252
+ source_address: alice_addr,
1253
+ recipient_address: bob_addr,
1254
+ };
1255
+
1256
+ let alice_signer_capability_offer_sig = ed25519::sign_struct(&alice_sk, challenge);
1257
+
1258
+ offer_signer_capability(
1259
+ &alice,
1260
+ ed25519::signature_to_bytes(&alice_signer_capability_offer_sig),
1261
+ 0,
1262
+ alice_pk_bytes,
1263
+ bob_addr
1264
+ );
1265
+
1266
+ let alice_account_resource = borrow_global_mut<Account>(alice_addr);
1267
+ assert!(option::contains(&alice_account_resource.signer_capability_offer.for, &bob_addr), 0);
1268
+
1269
+ create_authorized_signer(&charlie, alice_addr);
1270
+ }
1271
+
1272
+ #[test(bob = @0x345)]
1273
+ public entry fun test_valid_revoke_signer_capability(bob: signer) acquires Account {
1274
+ let (alice_sk, alice_pk) = ed25519::generate_keys();
1275
+ let alice_pk_bytes = ed25519::validated_public_key_to_bytes(&alice_pk);
1276
+ let alice = create_account_from_ed25519_public_key(alice_pk_bytes);
1277
+ let alice_addr = signer::address_of(&alice);
1278
+
1279
+ let bob_addr = signer::address_of(&bob);
1280
+ create_account(bob_addr);
1281
+
1282
+ let challenge = SignerCapabilityOfferProofChallengeV2 {
1283
+ sequence_number: borrow_global<Account>(alice_addr).sequence_number,
1284
+ source_address: alice_addr,
1285
+ recipient_address: bob_addr,
1286
+ };
1287
+
1288
+ let alice_signer_capability_offer_sig = ed25519::sign_struct(&alice_sk, challenge);
1289
+
1290
+ offer_signer_capability(
1291
+ &alice,
1292
+ ed25519::signature_to_bytes(&alice_signer_capability_offer_sig),
1293
+ 0,
1294
+ alice_pk_bytes,
1295
+ bob_addr
1296
+ );
1297
+ revoke_signer_capability(&alice, bob_addr);
1298
+ }
1299
+
1300
+ #[test(bob = @0x345, charlie = @0x567)]
1301
+ #[expected_failure(abort_code = 393230, location = Self)]
1302
+ public entry fun test_invalid_revoke_signer_capability(bob: signer, charlie: signer) acquires Account {
1303
+ let (alice_sk, alice_pk) = ed25519::generate_keys();
1304
+ let alice_pk_bytes = ed25519::validated_public_key_to_bytes(&alice_pk);
1305
+ let alice = create_account_from_ed25519_public_key(alice_pk_bytes);
1306
+ let alice_addr = signer::address_of(&alice);
1307
+ let alice_account_resource = borrow_global<Account>(alice_addr);
1308
+
1309
+ let bob_addr = signer::address_of(&bob);
1310
+ create_account(bob_addr);
1311
+
1312
+ let charlie_addr = signer::address_of(&charlie);
1313
+ create_account(charlie_addr);
1314
+
1315
+ let challenge = SignerCapabilityOfferProofChallengeV2 {
1316
+ sequence_number: alice_account_resource.sequence_number,
1317
+ source_address: alice_addr,
1318
+ recipient_address: bob_addr,
1319
+ };
1320
+ let alice_signer_capability_offer_sig = ed25519::sign_struct(&alice_sk, challenge);
1321
+ offer_signer_capability(
1322
+ &alice,
1323
+ ed25519::signature_to_bytes(&alice_signer_capability_offer_sig),
1324
+ 0,
1325
+ alice_pk_bytes,
1326
+ bob_addr
1327
+ );
1328
+ revoke_signer_capability(&alice, charlie_addr);
1329
+ }
1330
+
1331
+ //
1332
+ // Tests for offering rotation capabilities
1333
+ //
1334
+ #[test(bob = @0x345, framework = @aptos_framework)]
1335
+ public entry fun test_valid_offer_rotation_capability(bob: signer, framework: signer) acquires Account {
1336
+ chain_id::initialize_for_test(&framework, 4);
1337
+ let (alice_sk, alice_pk) = ed25519::generate_keys();
1338
+ let alice_pk_bytes = ed25519::validated_public_key_to_bytes(&alice_pk);
1339
+ let alice = create_account_from_ed25519_public_key(alice_pk_bytes);
1340
+ let alice_addr = signer::address_of(&alice);
1341
+
1342
+ let bob_addr = signer::address_of(&bob);
1343
+ create_account(bob_addr);
1344
+
1345
+ let challenge = RotationCapabilityOfferProofChallengeV2 {
1346
+ chain_id: chain_id::get(),
1347
+ sequence_number: get_sequence_number(alice_addr),
1348
+ source_address: alice_addr,
1349
+ recipient_address: bob_addr,
1350
+ };
1351
+
1352
+ let alice_rotation_capability_offer_sig = ed25519::sign_struct(&alice_sk, challenge);
1353
+
1354
+ offer_rotation_capability(
1355
+ &alice,
1356
+ ed25519::signature_to_bytes(&alice_rotation_capability_offer_sig),
1357
+ 0,
1358
+ alice_pk_bytes,
1359
+ bob_addr
1360
+ );
1361
+
1362
+ let alice_resource = borrow_global_mut<Account>(signer::address_of(&alice));
1363
+ assert!(option::contains(&alice_resource.rotation_capability_offer.for, &bob_addr), 0);
1364
+ }
1365
+
1366
+ #[test(bob = @0x345, framework = @aptos_framework)]
1367
+ #[expected_failure(abort_code = 65544, location = Self)]
1368
+ public entry fun test_invalid_offer_rotation_capability(bob: signer, framework: signer) acquires Account {
1369
+ chain_id::initialize_for_test(&framework, 4);
1370
+ let (alice_sk, alice_pk) = ed25519::generate_keys();
1371
+ let alice_pk_bytes = ed25519::validated_public_key_to_bytes(&alice_pk);
1372
+ let alice = create_account_from_ed25519_public_key(alice_pk_bytes);
1373
+ let alice_addr = signer::address_of(&alice);
1374
+
1375
+ let bob_addr = signer::address_of(&bob);
1376
+ create_account(bob_addr);
1377
+
1378
+ let challenge = RotationCapabilityOfferProofChallengeV2 {
1379
+ chain_id: chain_id::get(),
1380
+ // Intentionally make the signature invalid.
1381
+ sequence_number: 2,
1382
+ source_address: alice_addr,
1383
+ recipient_address: bob_addr,
1384
+ };
1385
+
1386
+ let alice_rotation_capability_offer_sig = ed25519::sign_struct(&alice_sk, challenge);
1387
+
1388
+ offer_rotation_capability(
1389
+ &alice,
1390
+ ed25519::signature_to_bytes(&alice_rotation_capability_offer_sig),
1391
+ 0,
1392
+ alice_pk_bytes,
1393
+ signer::address_of(&bob)
1394
+ );
1395
+ }
1396
+
1397
+ #[test(bob = @0x345, framework = @aptos_framework)]
1398
+ public entry fun test_valid_revoke_rotation_capability(bob: signer, framework: signer) acquires Account {
1399
+ chain_id::initialize_for_test(&framework, 4);
1400
+ let (alice_sk, alice_pk) = ed25519::generate_keys();
1401
+ let alice_pk_bytes = ed25519::validated_public_key_to_bytes(&alice_pk);
1402
+ let alice = create_account_from_ed25519_public_key(alice_pk_bytes);
1403
+ let alice_addr = signer::address_of(&alice);
1404
+
1405
+ let bob_addr = signer::address_of(&bob);
1406
+ create_account(bob_addr);
1407
+
1408
+ let challenge = RotationCapabilityOfferProofChallengeV2 {
1409
+ chain_id: chain_id::get(),
1410
+ sequence_number: get_sequence_number(alice_addr),
1411
+ source_address: alice_addr,
1412
+ recipient_address: bob_addr,
1413
+ };
1414
+
1415
+ let alice_rotation_capability_offer_sig = ed25519::sign_struct(&alice_sk, challenge);
1416
+
1417
+ offer_rotation_capability(
1418
+ &alice,
1419
+ ed25519::signature_to_bytes(&alice_rotation_capability_offer_sig),
1420
+ 0,
1421
+ alice_pk_bytes,
1422
+ signer::address_of(&bob)
1423
+ );
1424
+ revoke_rotation_capability(&alice, signer::address_of(&bob));
1425
+ }
1426
+
1427
+ #[test(bob = @0x345, charlie = @0x567, framework = @aptos_framework)]
1428
+ #[expected_failure(abort_code = 393234, location = Self)]
1429
+ public entry fun test_invalid_revoke_rotation_capability(
1430
+ bob: signer,
1431
+ charlie: signer,
1432
+ framework: signer
1433
+ ) acquires Account {
1434
+ chain_id::initialize_for_test(&framework, 4);
1435
+ let (alice_sk, alice_pk) = ed25519::generate_keys();
1436
+ let alice_pk_bytes = ed25519::validated_public_key_to_bytes(&alice_pk);
1437
+ let alice = create_account_from_ed25519_public_key(alice_pk_bytes);
1438
+ let alice_addr = signer::address_of(&alice);
1439
+
1440
+ let bob_addr = signer::address_of(&bob);
1441
+ create_account(bob_addr);
1442
+ create_account(signer::address_of(&charlie));
1443
+
1444
+ let challenge = RotationCapabilityOfferProofChallengeV2 {
1445
+ chain_id: chain_id::get(),
1446
+ sequence_number: get_sequence_number(alice_addr),
1447
+ source_address: alice_addr,
1448
+ recipient_address: bob_addr,
1449
+ };
1450
+
1451
+ let alice_rotation_capability_offer_sig = ed25519::sign_struct(&alice_sk, challenge);
1452
+
1453
+ offer_rotation_capability(
1454
+ &alice,
1455
+ ed25519::signature_to_bytes(&alice_rotation_capability_offer_sig),
1456
+ 0,
1457
+ alice_pk_bytes,
1458
+ signer::address_of(&bob)
1459
+ );
1460
+ revoke_rotation_capability(&alice, signer::address_of(&charlie));
1461
+ }
1462
+
1463
+ //
1464
+ // Tests for key rotation
1465
+ //
1466
+
1467
+ #[test(account = @aptos_framework)]
1468
+ public entry fun test_valid_rotate_authentication_key_multi_ed25519_to_multi_ed25519(
1469
+ account: signer
1470
+ ) acquires Account, OriginatingAddress {
1471
+ initialize(&account);
1472
+ let (curr_sk, curr_pk) = multi_ed25519::generate_keys(2, 3);
1473
+ let curr_pk_unvalidated = multi_ed25519::public_key_to_unvalidated(&curr_pk);
1474
+ let curr_auth_key = multi_ed25519::unvalidated_public_key_to_authentication_key(&curr_pk_unvalidated);
1475
+ let alice_addr = from_bcs::to_address(curr_auth_key);
1476
+ let alice = create_account_unchecked(alice_addr);
1477
+
1478
+ let (new_sk, new_pk) = multi_ed25519::generate_keys(4, 5);
1479
+ let new_pk_unvalidated = multi_ed25519::public_key_to_unvalidated(&new_pk);
1480
+ let new_auth_key = multi_ed25519::unvalidated_public_key_to_authentication_key(&new_pk_unvalidated);
1481
+ let new_address = from_bcs::to_address(new_auth_key);
1482
+
1483
+ let challenge = RotationProofChallenge {
1484
+ sequence_number: borrow_global<Account>(alice_addr).sequence_number,
1485
+ originator: alice_addr,
1486
+ current_auth_key: alice_addr,
1487
+ new_public_key: multi_ed25519::unvalidated_public_key_to_bytes(&new_pk_unvalidated),
1488
+ };
1489
+
1490
+ let from_sig = multi_ed25519::sign_struct(&curr_sk, challenge);
1491
+ let to_sig = multi_ed25519::sign_struct(&new_sk, challenge);
1492
+
1493
+ rotate_authentication_key(
1494
+ &alice,
1495
+ MULTI_ED25519_SCHEME,
1496
+ multi_ed25519::unvalidated_public_key_to_bytes(&curr_pk_unvalidated),
1497
+ MULTI_ED25519_SCHEME,
1498
+ multi_ed25519::unvalidated_public_key_to_bytes(&new_pk_unvalidated),
1499
+ multi_ed25519::signature_to_bytes(&from_sig),
1500
+ multi_ed25519::signature_to_bytes(&to_sig),
1501
+ );
1502
+ let address_map = &mut borrow_global_mut<OriginatingAddress>(@aptos_framework).address_map;
1503
+ let expected_originating_address = table::borrow(address_map, new_address);
1504
+ assert!(*expected_originating_address == alice_addr, 0);
1505
+ assert!(borrow_global<Account>(alice_addr).authentication_key == new_auth_key, 0);
1506
+ }
1507
+
1508
+ #[test(account = @aptos_framework)]
1509
+ public entry fun test_valid_rotate_authentication_key_multi_ed25519_to_ed25519(
1510
+ account: signer
1511
+ ) acquires Account, OriginatingAddress {
1512
+ initialize(&account);
1513
+
1514
+ let (curr_sk, curr_pk) = multi_ed25519::generate_keys(2, 3);
1515
+ let curr_pk_unvalidated = multi_ed25519::public_key_to_unvalidated(&curr_pk);
1516
+ let curr_auth_key = multi_ed25519::unvalidated_public_key_to_authentication_key(&curr_pk_unvalidated);
1517
+ let alice_addr = from_bcs::to_address(curr_auth_key);
1518
+ let alice = create_account_unchecked(alice_addr);
1519
+
1520
+ let account_resource = borrow_global_mut<Account>(alice_addr);
1521
+
1522
+ let (new_sk, new_pk) = ed25519::generate_keys();
1523
+ let new_pk_unvalidated = ed25519::public_key_to_unvalidated(&new_pk);
1524
+ let new_auth_key = ed25519::unvalidated_public_key_to_authentication_key(&new_pk_unvalidated);
1525
+ let new_addr = from_bcs::to_address(new_auth_key);
1526
+
1527
+ let challenge = RotationProofChallenge {
1528
+ sequence_number: account_resource.sequence_number,
1529
+ originator: alice_addr,
1530
+ current_auth_key: alice_addr,
1531
+ new_public_key: ed25519::unvalidated_public_key_to_bytes(&new_pk_unvalidated),
1532
+ };
1533
+
1534
+ let from_sig = multi_ed25519::sign_struct(&curr_sk, challenge);
1535
+ let to_sig = ed25519::sign_struct(&new_sk, challenge);
1536
+
1537
+ rotate_authentication_key(
1538
+ &alice,
1539
+ MULTI_ED25519_SCHEME,
1540
+ multi_ed25519::unvalidated_public_key_to_bytes(&curr_pk_unvalidated),
1541
+ ED25519_SCHEME,
1542
+ ed25519::unvalidated_public_key_to_bytes(&new_pk_unvalidated),
1543
+ multi_ed25519::signature_to_bytes(&from_sig),
1544
+ ed25519::signature_to_bytes(&to_sig),
1545
+ );
1546
+
1547
+ let address_map = &mut borrow_global_mut<OriginatingAddress>(@aptos_framework).address_map;
1548
+ let expected_originating_address = table::borrow(address_map, new_addr);
1549
+ assert!(*expected_originating_address == alice_addr, 0);
1550
+ assert!(borrow_global<Account>(alice_addr).authentication_key == new_auth_key, 0);
1551
+ }
1552
+
1553
+
1554
+ #[test(account = @aptos_framework)]
1555
+ public entry fun test_simple_rotation(account: &signer) acquires Account {
1556
+ initialize(account);
1557
+
1558
+ let alice_addr = @0x1234;
1559
+ let alice = create_account_unchecked(alice_addr);
1560
+
1561
+ let (_new_sk, new_pk) = ed25519::generate_keys();
1562
+ let new_pk_unvalidated = ed25519::public_key_to_unvalidated(&new_pk);
1563
+ let new_auth_key = ed25519::unvalidated_public_key_to_authentication_key(&new_pk_unvalidated);
1564
+ let _new_addr = from_bcs::to_address(new_auth_key);
1565
+
1566
+ rotate_authentication_key_call(&alice, new_auth_key);
1567
+ assert!(borrow_global<Account>(alice_addr).authentication_key == new_auth_key, 0);
1568
+ }
1569
+
1570
+
1571
+ #[test(account = @aptos_framework)]
1572
+ #[expected_failure(abort_code = 0x20014, location = Self)]
1573
+ public entry fun test_max_guid(account: &signer) acquires Account {
1574
+ let addr = signer::address_of(account);
1575
+ create_account_unchecked(addr);
1576
+ let account_state = borrow_global_mut<Account>(addr);
1577
+ account_state.guid_creation_num = MAX_GUID_CREATION_NUM - 1;
1578
+ create_guid(account);
1579
+ }
1580
+
1581
+ #[test_only]
1582
+ struct FakeCoin {}
1583
+
1584
+ #[test_only]
1585
+ struct SadFakeCoin {}
1586
+
1587
+ #[test(account = @0x1234)]
1588
+ fun test_events(account: &signer) acquires Account {
1589
+ let addr = signer::address_of(account);
1590
+ create_account_unchecked(addr);
1591
+ register_coin<FakeCoin>(addr);
1592
+
1593
+ let eventhandle = &borrow_global<Account>(addr).coin_register_events;
1594
+ let event = CoinRegister { account: addr, type_info: type_info::type_of<FakeCoin>() };
1595
+
1596
+ let events = event::emitted_events<CoinRegister>();
1597
+ assert!(vector::length(&events) == 1, 0);
1598
+ assert!(vector::borrow(&events, 0) == &event, 1);
1599
+ assert!(event::was_event_emitted(&event), 2);
1600
+
1601
+ let event = CoinRegister { account: addr, type_info: type_info::type_of<SadFakeCoin>() };
1602
+ assert!(!event::was_event_emitted(&event), 3);
1603
+ }
1604
+ }