create-dubhe 0.0.7 → 0.0.9

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 (1097) 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/.history/initia_localnet/latest.json +6 -0
  352. package/template/101/initia-template/contracts/counter/Move.toml +10 -0
  353. package/template/101/initia-template/contracts/counter/build/counter/BuildInfo.yaml +46 -0
  354. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/counter.mv +0 -0
  355. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/account.mv +0 -0
  356. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/address.mv +0 -0
  357. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/any.mv +0 -0
  358. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/aptos_hash.mv +0 -0
  359. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/base64.mv +0 -0
  360. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/bech32.mv +0 -0
  361. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/bigdecimal.mv +0 -0
  362. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/biguint.mv +0 -0
  363. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/block.mv +0 -0
  364. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/code.mv +0 -0
  365. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/coin.mv +0 -0
  366. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/collection.mv +0 -0
  367. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/comparator.mv +0 -0
  368. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/copyable_any.mv +0 -0
  369. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/cosmos.mv +0 -0
  370. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/debug.mv +0 -0
  371. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/dex.mv +0 -0
  372. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/dispatchable_fungible_asset.mv +0 -0
  373. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/ed25519.mv +0 -0
  374. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/event.mv +0 -0
  375. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/fixed_point64.mv +0 -0
  376. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/from_bcs.mv +0 -0
  377. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/function_info.mv +0 -0
  378. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/fungible_asset.mv +0 -0
  379. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/hex.mv +0 -0
  380. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/initia_nft.mv +0 -0
  381. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/json.mv +0 -0
  382. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/keccak.mv +0 -0
  383. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/managed_coin.mv +0 -0
  384. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/math128.mv +0 -0
  385. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/math64.mv +0 -0
  386. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/minitswap.mv +0 -0
  387. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/multisig.mv +0 -0
  388. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/multisig_v2.mv +0 -0
  389. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/nft.mv +0 -0
  390. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/object.mv +0 -0
  391. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/object_code_deployment.mv +0 -0
  392. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/oracle.mv +0 -0
  393. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/primary_fungible_store.mv +0 -0
  394. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/property_map.mv +0 -0
  395. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/query.mv +0 -0
  396. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/royalty.mv +0 -0
  397. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/secp256k1.mv +0 -0
  398. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/simple_map.mv +0 -0
  399. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/simple_nft.mv +0 -0
  400. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/soul_bound_token.mv +0 -0
  401. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/stableswap.mv +0 -0
  402. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/staking.mv +0 -0
  403. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/string_utils.mv +0 -0
  404. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/table.mv +0 -0
  405. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/table_key.mv +0 -0
  406. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/timestamp.mv +0 -0
  407. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/transaction_context.mv +0 -0
  408. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/InitiaStdlib/type_info.mv +0 -0
  409. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveNursery/acl.mv +0 -0
  410. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveNursery/capability.mv +0 -0
  411. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveNursery/compare.mv +0 -0
  412. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveNursery/guid.mv +0 -0
  413. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/ascii.mv +0 -0
  414. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/bcs.mv +0 -0
  415. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/bit_vector.mv +0 -0
  416. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/error.mv +0 -0
  417. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/fixed_point32.mv +0 -0
  418. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/hash.mv +0 -0
  419. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/option.mv +0 -0
  420. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/signer.mv +0 -0
  421. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/string.mv +0 -0
  422. package/template/101/initia-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/vector.mv +0 -0
  423. package/template/101/initia-template/contracts/counter/build/counter/source_maps/counter.mvsm +0 -0
  424. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/account.mvsm +0 -0
  425. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/address.mvsm +0 -0
  426. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/any.mvsm +0 -0
  427. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/aptos_hash.mvsm +0 -0
  428. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/base64.mvsm +0 -0
  429. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/bech32.mvsm +0 -0
  430. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/bigdecimal.mvsm +0 -0
  431. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/biguint.mvsm +0 -0
  432. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/block.mvsm +0 -0
  433. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/code.mvsm +0 -0
  434. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/coin.mvsm +0 -0
  435. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/collection.mvsm +0 -0
  436. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/comparator.mvsm +0 -0
  437. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/copyable_any.mvsm +0 -0
  438. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/cosmos.mvsm +0 -0
  439. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/debug.mvsm +0 -0
  440. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/dex.mvsm +0 -0
  441. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/dispatchable_fungible_asset.mvsm +0 -0
  442. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/ed25519.mvsm +0 -0
  443. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/event.mvsm +0 -0
  444. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/fixed_point64.mvsm +0 -0
  445. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/from_bcs.mvsm +0 -0
  446. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/function_info.mvsm +0 -0
  447. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/fungible_asset.mvsm +0 -0
  448. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/hex.mvsm +0 -0
  449. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/initia_nft.mvsm +0 -0
  450. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/json.mvsm +0 -0
  451. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/keccak.mvsm +0 -0
  452. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/managed_coin.mvsm +0 -0
  453. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/math128.mvsm +0 -0
  454. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/math64.mvsm +0 -0
  455. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/minitswap.mvsm +0 -0
  456. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/multisig.mvsm +0 -0
  457. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/multisig_v2.mvsm +0 -0
  458. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/nft.mvsm +0 -0
  459. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/object.mvsm +0 -0
  460. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/object_code_deployment.mvsm +0 -0
  461. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/oracle.mvsm +0 -0
  462. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/primary_fungible_store.mvsm +0 -0
  463. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/property_map.mvsm +0 -0
  464. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/query.mvsm +0 -0
  465. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/royalty.mvsm +0 -0
  466. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/secp256k1.mvsm +0 -0
  467. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/simple_map.mvsm +0 -0
  468. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/simple_nft.mvsm +0 -0
  469. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/soul_bound_token.mvsm +0 -0
  470. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/stableswap.mvsm +0 -0
  471. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/staking.mvsm +0 -0
  472. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/string_utils.mvsm +0 -0
  473. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/table.mvsm +0 -0
  474. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/table_key.mvsm +0 -0
  475. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/timestamp.mvsm +0 -0
  476. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/transaction_context.mvsm +0 -0
  477. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/InitiaStdlib/type_info.mvsm +0 -0
  478. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveNursery/acl.mvsm +0 -0
  479. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveNursery/capability.mvsm +0 -0
  480. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveNursery/compare.mvsm +0 -0
  481. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveNursery/guid.mvsm +0 -0
  482. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/ascii.mvsm +0 -0
  483. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/bcs.mvsm +0 -0
  484. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/bit_vector.mvsm +0 -0
  485. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/error.mvsm +0 -0
  486. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/fixed_point32.mvsm +0 -0
  487. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/hash.mvsm +0 -0
  488. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/option.mvsm +0 -0
  489. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/signer.mvsm +0 -0
  490. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/string.mvsm +0 -0
  491. package/template/101/initia-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/vector.mvsm +0 -0
  492. package/template/101/initia-template/contracts/counter/build/counter/sources/counter.move +25 -0
  493. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/account.move +386 -0
  494. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/address.move +97 -0
  495. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/any.move +63 -0
  496. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/aptos_hash.move +20 -0
  497. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/base64.move +14 -0
  498. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/bech32.move +37 -0
  499. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/bigdecimal.move +628 -0
  500. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/biguint.move +364 -0
  501. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/block.move +55 -0
  502. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/code.move +357 -0
  503. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/coin.move +430 -0
  504. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/collection.move +674 -0
  505. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/comparator.move +176 -0
  506. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/copyable_any.move +53 -0
  507. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/cosmos.move +572 -0
  508. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/debug.move +352 -0
  509. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/dex.move +2795 -0
  510. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/dispatchable_fungible_asset.move +206 -0
  511. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/ed25519.move +184 -0
  512. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/event.move +42 -0
  513. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/fixed_point64.move +691 -0
  514. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/from_bcs.move +114 -0
  515. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/function_info.move +106 -0
  516. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/fungible_asset.move +1391 -0
  517. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/hex.move +196 -0
  518. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/initia_nft.move +695 -0
  519. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/json.move +266 -0
  520. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/keccak.move +33 -0
  521. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/managed_coin.move +283 -0
  522. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/math128.move +343 -0
  523. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/math64.move +286 -0
  524. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/minitswap.move +3461 -0
  525. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/multisig.move +1011 -0
  526. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/multisig_v2.move +2465 -0
  527. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/nft.move +704 -0
  528. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/object.move +797 -0
  529. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/object_code_deployment.move +157 -0
  530. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/oracle.move +71 -0
  531. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/primary_fungible_store.move +529 -0
  532. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/property_map.move +907 -0
  533. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/query.move +112 -0
  534. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/royalty.move +153 -0
  535. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/secp256k1.move +265 -0
  536. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/simple_map.move +329 -0
  537. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/simple_nft.move +561 -0
  538. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/soul_bound_token.move +862 -0
  539. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/stableswap.move +1659 -0
  540. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/staking.move +2555 -0
  541. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/string_utils.move +234 -0
  542. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/table.move +362 -0
  543. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/table_key.move +47 -0
  544. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/timestamp.move +49 -0
  545. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/transaction_context.move +87 -0
  546. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/InitiaStdlib/type_info.move +80 -0
  547. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveNursery/acl.move +52 -0
  548. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveNursery/capability.move +231 -0
  549. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveNursery/compare.move +76 -0
  550. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveNursery/guid.move +116 -0
  551. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/ascii.move +153 -0
  552. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/bcs.move +17 -0
  553. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/bit_vector.move +179 -0
  554. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/error.move +116 -0
  555. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/fixed_point32.move +315 -0
  556. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/hash.move +31 -0
  557. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/option.move +390 -0
  558. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/signer.move +21 -0
  559. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/string.move +99 -0
  560. package/template/101/initia-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/vector.move +703 -0
  561. package/template/101/initia-template/contracts/counter/sources/counter.move +25 -0
  562. package/template/101/initia-template/dubhe.config.ts +14 -0
  563. package/template/101/initia-template/jest.config.ts +17 -0
  564. package/template/101/initia-template/next-env.d.ts +5 -0
  565. package/template/101/initia-template/next-i18next.config.js +6 -0
  566. package/template/101/initia-template/next.config.js +15 -0
  567. package/template/101/initia-template/package.json +74 -0
  568. package/template/101/initia-template/pnpm-lock.yaml +7204 -0
  569. package/template/101/initia-template/postcss.config.js +6 -0
  570. package/template/101/initia-template/public/discord.svg +9 -0
  571. package/template/101/initia-template/public/fail.svg +12 -0
  572. package/template/101/initia-template/public/favicon.ico +0 -0
  573. package/template/101/initia-template/public/locales/de/common.json +8 -0
  574. package/template/101/initia-template/public/locales/de/footer.json +3 -0
  575. package/template/101/initia-template/public/locales/de/second-page.json +5 -0
  576. package/template/101/initia-template/public/locales/en/common.json +8 -0
  577. package/template/101/initia-template/public/locales/en/footer.json +3 -0
  578. package/template/101/initia-template/public/locales/en/second-page.json +5 -0
  579. package/template/101/initia-template/public/locales/zn/common.json +8 -0
  580. package/template/101/initia-template/public/locales/zn/footer.json +3 -0
  581. package/template/101/initia-template/public/locales/zn/second-page.json +5 -0
  582. package/template/101/initia-template/public/logo.svg +1 -0
  583. package/template/101/initia-template/public/medium.svg +9 -0
  584. package/template/101/initia-template/public/successful.svg +11 -0
  585. package/template/101/initia-template/public/telegram.svg +9 -0
  586. package/template/101/initia-template/public/twitter.svg +9 -0
  587. package/template/101/initia-template/scripts/checkBalance.ts +37 -0
  588. package/template/101/initia-template/scripts/generateAccount.ts +57 -0
  589. package/template/101/initia-template/scripts/storeConfig.ts +52 -0
  590. package/template/101/initia-template/scripts/waitNode.ts +9 -0
  591. package/template/101/initia-template/src/chain/config.ts +5 -0
  592. package/template/101/initia-template/src/css/font-awesome.css +2337 -0
  593. package/template/101/initia-template/src/css/font-awesome.min.css +4 -0
  594. package/template/101/initia-template/src/fonts/FontAwesome.otf +0 -0
  595. package/template/101/initia-template/src/fonts/fontawesome-webfont.eot +0 -0
  596. package/template/101/initia-template/src/fonts/fontawesome-webfont.svg +2671 -0
  597. package/template/101/initia-template/src/fonts/fontawesome-webfont.ttf +0 -0
  598. package/template/101/initia-template/src/fonts/fontawesome-webfont.woff +0 -0
  599. package/template/101/initia-template/src/fonts/fontawesome-webfont.woff2 +0 -0
  600. package/template/101/initia-template/src/jotai/index.tsx +12 -0
  601. package/template/101/initia-template/src/pages/_app.tsx +15 -0
  602. package/template/101/initia-template/src/pages/home/index.tsx +90 -0
  603. package/template/101/initia-template/src/pages/index.tsx +14 -0
  604. package/template/101/initia-template/tailwind.config.js +56 -0
  605. package/template/101/initia-template/tsconfig.json +25 -0
  606. package/template/101/movement-template/.dockerignore +7 -0
  607. package/template/101/movement-template/.eslintrc.json +3 -0
  608. package/template/101/movement-template/.prettierrc +8 -0
  609. package/template/101/movement-template/Dockerfile +56 -0
  610. package/template/101/movement-template/LICENSE +674 -0
  611. package/template/101/movement-template/README.md +14 -0
  612. package/template/101/movement-template/contracts/counter/.history/aptos_local/latest.json +6 -0
  613. package/template/101/movement-template/contracts/counter/Move.toml +16 -0
  614. package/template/101/movement-template/contracts/counter/build/counter/BuildInfo.yaml +60 -0
  615. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/counter_schema.mv +0 -0
  616. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/counter_system.mv +0 -0
  617. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/account.mv +0 -0
  618. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aggregator.mv +0 -0
  619. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aggregator_factory.mv +0 -0
  620. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aggregator_v2.mv +0 -0
  621. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aptos_account.mv +0 -0
  622. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aptos_coin.mv +0 -0
  623. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/aptos_governance.mv +0 -0
  624. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/block.mv +0 -0
  625. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/chain_id.mv +0 -0
  626. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/chain_status.mv +0 -0
  627. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/code.mv +0 -0
  628. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/coin.mv +0 -0
  629. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/config_buffer.mv +0 -0
  630. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/consensus_config.mv +0 -0
  631. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/create_signer.mv +0 -0
  632. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/delegation_pool.mv +0 -0
  633. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/dispatchable_fungible_asset.mv +0 -0
  634. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/dkg.mv +0 -0
  635. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/event.mv +0 -0
  636. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/execution_config.mv +0 -0
  637. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/function_info.mv +0 -0
  638. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/fungible_asset.mv +0 -0
  639. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/gas_schedule.mv +0 -0
  640. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/genesis.mv +0 -0
  641. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/governance_proposal.mv +0 -0
  642. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/guid.mv +0 -0
  643. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/jwk_consensus_config.mv +0 -0
  644. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/jwks.mv +0 -0
  645. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/keyless_account.mv +0 -0
  646. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/managed_coin.mv +0 -0
  647. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/multisig_account.mv +0 -0
  648. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/object.mv +0 -0
  649. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/object_code_deployment.mv +0 -0
  650. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/optional_aggregator.mv +0 -0
  651. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/primary_fungible_store.mv +0 -0
  652. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/randomness.mv +0 -0
  653. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/randomness_api_v0_config.mv +0 -0
  654. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/randomness_config.mv +0 -0
  655. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/randomness_config_seqnum.mv +0 -0
  656. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/reconfiguration.mv +0 -0
  657. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/reconfiguration_state.mv +0 -0
  658. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/reconfiguration_with_dkg.mv +0 -0
  659. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/resource_account.mv +0 -0
  660. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/stake.mv +0 -0
  661. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/staking_config.mv +0 -0
  662. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/staking_contract.mv +0 -0
  663. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/staking_proxy.mv +0 -0
  664. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/state_storage.mv +0 -0
  665. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/storage_gas.mv +0 -0
  666. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/system_addresses.mv +0 -0
  667. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/timestamp.mv +0 -0
  668. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/transaction_context.mv +0 -0
  669. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/transaction_fee.mv +0 -0
  670. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/transaction_validation.mv +0 -0
  671. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/util.mv +0 -0
  672. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/validator_consensus_info.mv +0 -0
  673. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/version.mv +0 -0
  674. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/vesting.mv +0 -0
  675. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosFramework/voting.mv +0 -0
  676. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/any.mv +0 -0
  677. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/aptos_hash.mv +0 -0
  678. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/big_vector.mv +0 -0
  679. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/bls12381.mv +0 -0
  680. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/bls12381_algebra.mv +0 -0
  681. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/bn254_algebra.mv +0 -0
  682. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/capability.mv +0 -0
  683. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/comparator.mv +0 -0
  684. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/copyable_any.mv +0 -0
  685. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/crypto_algebra.mv +0 -0
  686. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/debug.mv +0 -0
  687. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/ed25519.mv +0 -0
  688. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/fixed_point64.mv +0 -0
  689. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/from_bcs.mv +0 -0
  690. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/math128.mv +0 -0
  691. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/math64.mv +0 -0
  692. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/math_fixed.mv +0 -0
  693. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/math_fixed64.mv +0 -0
  694. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/multi_ed25519.mv +0 -0
  695. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/pool_u64.mv +0 -0
  696. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/pool_u64_unbound.mv +0 -0
  697. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/ristretto255.mv +0 -0
  698. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/ristretto255_bulletproofs.mv +0 -0
  699. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/ristretto255_elgamal.mv +0 -0
  700. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/ristretto255_pedersen.mv +0 -0
  701. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/secp256k1.mv +0 -0
  702. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/simple_map.mv +0 -0
  703. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/smart_table.mv +0 -0
  704. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/smart_vector.mv +0 -0
  705. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/string_utils.mv +0 -0
  706. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/table.mv +0 -0
  707. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/table_with_length.mv +0 -0
  708. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/AptosStdlib/type_info.mv +0 -0
  709. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/acl.mv +0 -0
  710. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/bcs.mv +0 -0
  711. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/bit_vector.mv +0 -0
  712. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/error.mv +0 -0
  713. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/features.mv +0 -0
  714. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/fixed_point32.mv +0 -0
  715. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/hash.mv +0 -0
  716. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/mem.mv +0 -0
  717. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/option.mv +0 -0
  718. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/signer.mv +0 -0
  719. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/string.mv +0 -0
  720. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/dependencies/MoveStdlib/vector.mv +0 -0
  721. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/deploy_hook.mv +0 -0
  722. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/entity_key.mv +0 -0
  723. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/events.mv +0 -0
  724. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/init.mv +0 -0
  725. package/template/101/movement-template/contracts/counter/build/counter/bytecode_modules/world.mv +0 -0
  726. package/template/101/movement-template/contracts/counter/build/counter/source_maps/counter_schema.mvsm +0 -0
  727. package/template/101/movement-template/contracts/counter/build/counter/source_maps/counter_system.mvsm +0 -0
  728. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/account.mvsm +0 -0
  729. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aggregator.mvsm +0 -0
  730. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aggregator_factory.mvsm +0 -0
  731. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aggregator_v2.mvsm +0 -0
  732. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aptos_account.mvsm +0 -0
  733. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aptos_coin.mvsm +0 -0
  734. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/aptos_governance.mvsm +0 -0
  735. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/block.mvsm +0 -0
  736. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/chain_id.mvsm +0 -0
  737. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/chain_status.mvsm +0 -0
  738. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/code.mvsm +0 -0
  739. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/coin.mvsm +0 -0
  740. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/config_buffer.mvsm +0 -0
  741. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/consensus_config.mvsm +0 -0
  742. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/create_signer.mvsm +0 -0
  743. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/delegation_pool.mvsm +0 -0
  744. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/dispatchable_fungible_asset.mvsm +0 -0
  745. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/dkg.mvsm +0 -0
  746. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/event.mvsm +0 -0
  747. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/execution_config.mvsm +0 -0
  748. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/function_info.mvsm +0 -0
  749. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/fungible_asset.mvsm +0 -0
  750. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/gas_schedule.mvsm +0 -0
  751. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/genesis.mvsm +0 -0
  752. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/governance_proposal.mvsm +0 -0
  753. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/guid.mvsm +0 -0
  754. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/jwk_consensus_config.mvsm +0 -0
  755. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/jwks.mvsm +0 -0
  756. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/keyless_account.mvsm +0 -0
  757. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/managed_coin.mvsm +0 -0
  758. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/multisig_account.mvsm +0 -0
  759. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/object.mvsm +0 -0
  760. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/object_code_deployment.mvsm +0 -0
  761. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/optional_aggregator.mvsm +0 -0
  762. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/primary_fungible_store.mvsm +0 -0
  763. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/randomness.mvsm +0 -0
  764. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/randomness_api_v0_config.mvsm +0 -0
  765. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/randomness_config.mvsm +0 -0
  766. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/randomness_config_seqnum.mvsm +0 -0
  767. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/reconfiguration.mvsm +0 -0
  768. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/reconfiguration_state.mvsm +0 -0
  769. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/reconfiguration_with_dkg.mvsm +0 -0
  770. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/resource_account.mvsm +0 -0
  771. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/stake.mvsm +0 -0
  772. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/staking_config.mvsm +0 -0
  773. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/staking_contract.mvsm +0 -0
  774. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/staking_proxy.mvsm +0 -0
  775. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/state_storage.mvsm +0 -0
  776. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/storage_gas.mvsm +0 -0
  777. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/system_addresses.mvsm +0 -0
  778. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/timestamp.mvsm +0 -0
  779. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/transaction_context.mvsm +0 -0
  780. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/transaction_fee.mvsm +0 -0
  781. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/transaction_validation.mvsm +0 -0
  782. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/util.mvsm +0 -0
  783. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/validator_consensus_info.mvsm +0 -0
  784. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/version.mvsm +0 -0
  785. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/vesting.mvsm +0 -0
  786. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosFramework/voting.mvsm +0 -0
  787. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/any.mvsm +0 -0
  788. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/aptos_hash.mvsm +0 -0
  789. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/big_vector.mvsm +0 -0
  790. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/bls12381.mvsm +0 -0
  791. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/bls12381_algebra.mvsm +0 -0
  792. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/bn254_algebra.mvsm +0 -0
  793. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/capability.mvsm +0 -0
  794. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/comparator.mvsm +0 -0
  795. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/copyable_any.mvsm +0 -0
  796. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/crypto_algebra.mvsm +0 -0
  797. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/debug.mvsm +0 -0
  798. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/ed25519.mvsm +0 -0
  799. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/fixed_point64.mvsm +0 -0
  800. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/from_bcs.mvsm +0 -0
  801. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/math128.mvsm +0 -0
  802. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/math64.mvsm +0 -0
  803. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/math_fixed.mvsm +0 -0
  804. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/math_fixed64.mvsm +0 -0
  805. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/multi_ed25519.mvsm +0 -0
  806. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/pool_u64.mvsm +0 -0
  807. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/pool_u64_unbound.mvsm +0 -0
  808. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/ristretto255.mvsm +0 -0
  809. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/ristretto255_bulletproofs.mvsm +0 -0
  810. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/ristretto255_elgamal.mvsm +0 -0
  811. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/ristretto255_pedersen.mvsm +0 -0
  812. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/secp256k1.mvsm +0 -0
  813. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/simple_map.mvsm +0 -0
  814. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/smart_table.mvsm +0 -0
  815. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/smart_vector.mvsm +0 -0
  816. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/string_utils.mvsm +0 -0
  817. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/table.mvsm +0 -0
  818. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/table_with_length.mvsm +0 -0
  819. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/AptosStdlib/type_info.mvsm +0 -0
  820. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/acl.mvsm +0 -0
  821. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/bcs.mvsm +0 -0
  822. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/bit_vector.mvsm +0 -0
  823. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/error.mvsm +0 -0
  824. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/features.mvsm +0 -0
  825. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/fixed_point32.mvsm +0 -0
  826. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/hash.mvsm +0 -0
  827. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/mem.mvsm +0 -0
  828. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/option.mvsm +0 -0
  829. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/signer.mvsm +0 -0
  830. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/string.mvsm +0 -0
  831. package/template/101/movement-template/contracts/counter/build/counter/source_maps/dependencies/MoveStdlib/vector.mvsm +0 -0
  832. package/template/101/movement-template/contracts/counter/build/counter/source_maps/deploy_hook.mvsm +0 -0
  833. package/template/101/movement-template/contracts/counter/build/counter/source_maps/entity_key.mvsm +0 -0
  834. package/template/101/movement-template/contracts/counter/build/counter/source_maps/events.mvsm +0 -0
  835. package/template/101/movement-template/contracts/counter/build/counter/source_maps/init.mvsm +0 -0
  836. package/template/101/movement-template/contracts/counter/build/counter/source_maps/world.mvsm +0 -0
  837. package/template/101/movement-template/contracts/counter/build/counter/sources/counter_schema.move +59 -0
  838. package/template/101/movement-template/contracts/counter/build/counter/sources/counter_system.move +11 -0
  839. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/account.move +1604 -0
  840. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aggregator.move +48 -0
  841. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aggregator_factory.move +83 -0
  842. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aggregator_v2.move +473 -0
  843. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aptos_account.move +480 -0
  844. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aptos_coin.move +204 -0
  845. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/aptos_governance.move +1390 -0
  846. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/block.move +349 -0
  847. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/chain_id.move +41 -0
  848. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/chain_status.move +48 -0
  849. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/code.move +367 -0
  850. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/coin.move +2014 -0
  851. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/config_buffer.move +101 -0
  852. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/consensus_config.move +77 -0
  853. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/create_signer.move +21 -0
  854. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/delegation_pool.move +5568 -0
  855. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/dispatchable_fungible_asset.move +228 -0
  856. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/dkg.move +121 -0
  857. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/event.move +92 -0
  858. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/execution_config.move +66 -0
  859. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/function_info.move +100 -0
  860. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/fungible_asset.move +1673 -0
  861. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/gas_schedule.move +176 -0
  862. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/genesis.move +549 -0
  863. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/governance_proposal.move +23 -0
  864. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/guid.move +68 -0
  865. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/jwk_consensus_config.move +148 -0
  866. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/jwks.move +889 -0
  867. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/keyless_account.move +312 -0
  868. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/managed_coin.move +267 -0
  869. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/multisig_account.move +2594 -0
  870. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/object.move +1095 -0
  871. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/object_code_deployment.move +147 -0
  872. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/optional_aggregator.move +286 -0
  873. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/primary_fungible_store.move +405 -0
  874. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/randomness.move +574 -0
  875. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/randomness_api_v0_config.move +57 -0
  876. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/randomness_config.move +153 -0
  877. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/randomness_config_seqnum.move +49 -0
  878. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/reconfiguration.move +222 -0
  879. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/reconfiguration_state.move +132 -0
  880. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/reconfiguration_with_dkg.move +69 -0
  881. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/resource_account.move +267 -0
  882. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/stake.move +3185 -0
  883. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/staking_config.move +686 -0
  884. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/staking_contract.move +1627 -0
  885. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/staking_proxy.move +228 -0
  886. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/state_storage.move +90 -0
  887. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/storage_gas.move +622 -0
  888. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/system_addresses.move +82 -0
  889. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/timestamp.move +88 -0
  890. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/transaction_context.move +262 -0
  891. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/transaction_fee.move +170 -0
  892. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/transaction_validation.move +486 -0
  893. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/util.move +16 -0
  894. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/validator_consensus_info.move +42 -0
  895. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/version.move +115 -0
  896. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/vesting.move +2192 -0
  897. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosFramework/voting.move +1282 -0
  898. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/any.move +57 -0
  899. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/aptos_hash.move +253 -0
  900. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/big_vector.move +469 -0
  901. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/bls12381.move +985 -0
  902. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/bls12381_algebra.move +802 -0
  903. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/bn254_algebra.move +855 -0
  904. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/capability.move +193 -0
  905. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/comparator.move +173 -0
  906. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/copyable_any.move +45 -0
  907. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/crypto_algebra.move +351 -0
  908. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/debug.move +278 -0
  909. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/ed25519.move +262 -0
  910. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/fixed_point64.move +447 -0
  911. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/from_bcs.move +91 -0
  912. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/math128.move +381 -0
  913. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/math64.move +336 -0
  914. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/math_fixed.move +139 -0
  915. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/math_fixed64.move +142 -0
  916. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/multi_ed25519.move +482 -0
  917. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/pool_u64.move +571 -0
  918. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/pool_u64_unbound.move +270 -0
  919. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/ristretto255.move +1310 -0
  920. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/ristretto255_bulletproofs.move +253 -0
  921. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/ristretto255_elgamal.move +234 -0
  922. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/ristretto255_pedersen.move +158 -0
  923. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/secp256k1.move +114 -0
  924. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/simple_map.move +319 -0
  925. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/smart_table.move +769 -0
  926. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/smart_vector.move +766 -0
  927. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/string_utils.move +148 -0
  928. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/table.move +152 -0
  929. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/table_with_length.move +141 -0
  930. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/AptosStdlib/type_info.move +351 -0
  931. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/acl.move +46 -0
  932. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/bcs.move +46 -0
  933. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/bit_vector.move +239 -0
  934. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/error.move +88 -0
  935. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/features.move +784 -0
  936. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/fixed_point32.move +295 -0
  937. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/hash.move +8 -0
  938. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/mem.move +34 -0
  939. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/option.move +356 -0
  940. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/signer.move +21 -0
  941. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/string.move +93 -0
  942. package/template/101/movement-template/contracts/counter/build/counter/sources/dependencies/MoveStdlib/vector.move +691 -0
  943. package/template/101/movement-template/contracts/counter/build/counter/sources/deploy_hook.move +19 -0
  944. package/template/101/movement-template/contracts/counter/build/counter/sources/entity_key.move +31 -0
  945. package/template/101/movement-template/contracts/counter/build/counter/sources/events.move +34 -0
  946. package/template/101/movement-template/contracts/counter/build/counter/sources/init.move +17 -0
  947. package/template/101/movement-template/contracts/counter/build/counter/sources/world.move +65 -0
  948. package/template/101/movement-template/contracts/counter/sources/codegen/eps/events.move +34 -0
  949. package/template/101/movement-template/contracts/counter/sources/codegen/eps/world.move +65 -0
  950. package/template/101/movement-template/contracts/counter/sources/codegen/init.move +17 -0
  951. package/template/101/movement-template/contracts/counter/sources/codegen/schemas/counter.move +59 -0
  952. package/template/101/movement-template/contracts/counter/sources/entity_key.move +31 -0
  953. package/template/101/movement-template/contracts/counter/sources/script/deploy_hook.move +19 -0
  954. package/template/101/movement-template/contracts/counter/sources/system/counter_system.move +11 -0
  955. package/template/101/movement-template/dubhe.config.ts +13 -0
  956. package/template/101/movement-template/jest.config.ts +17 -0
  957. package/template/101/movement-template/next-env.d.ts +5 -0
  958. package/template/101/movement-template/next-i18next.config.js +6 -0
  959. package/template/101/movement-template/next.config.js +15 -0
  960. package/template/101/movement-template/package.json +74 -0
  961. package/template/101/movement-template/pnpm-lock.yaml +6737 -0
  962. package/template/101/movement-template/postcss.config.js +6 -0
  963. package/template/101/movement-template/public/discord.svg +9 -0
  964. package/template/101/movement-template/public/fail.svg +12 -0
  965. package/template/101/movement-template/public/favicon.ico +0 -0
  966. package/template/101/movement-template/public/locales/de/common.json +8 -0
  967. package/template/101/movement-template/public/locales/de/footer.json +3 -0
  968. package/template/101/movement-template/public/locales/de/second-page.json +5 -0
  969. package/template/101/movement-template/public/locales/en/common.json +8 -0
  970. package/template/101/movement-template/public/locales/en/footer.json +3 -0
  971. package/template/101/movement-template/public/locales/en/second-page.json +5 -0
  972. package/template/101/movement-template/public/locales/zn/common.json +8 -0
  973. package/template/101/movement-template/public/locales/zn/footer.json +3 -0
  974. package/template/101/movement-template/public/locales/zn/second-page.json +5 -0
  975. package/template/101/movement-template/public/logo.svg +1 -0
  976. package/template/101/movement-template/public/medium.svg +9 -0
  977. package/template/101/movement-template/public/successful.svg +11 -0
  978. package/template/101/movement-template/public/telegram.svg +9 -0
  979. package/template/101/movement-template/public/twitter.svg +9 -0
  980. package/template/101/movement-template/scripts/checkBalance.ts +37 -0
  981. package/template/101/movement-template/scripts/generateAccount.ts +54 -0
  982. package/template/101/movement-template/scripts/storeConfig.ts +54 -0
  983. package/template/101/movement-template/src/chain/config.ts +7 -0
  984. package/template/101/movement-template/src/css/font-awesome.css +2337 -0
  985. package/template/101/movement-template/src/css/font-awesome.min.css +4 -0
  986. package/template/101/movement-template/src/fonts/FontAwesome.otf +0 -0
  987. package/template/101/movement-template/src/fonts/fontawesome-webfont.eot +0 -0
  988. package/template/101/movement-template/src/fonts/fontawesome-webfont.svg +2671 -0
  989. package/template/101/movement-template/src/fonts/fontawesome-webfont.ttf +0 -0
  990. package/template/101/movement-template/src/fonts/fontawesome-webfont.woff +0 -0
  991. package/template/101/movement-template/src/fonts/fontawesome-webfont.woff2 +0 -0
  992. package/template/101/movement-template/src/jotai/index.tsx +12 -0
  993. package/template/101/movement-template/src/pages/_app.tsx +15 -0
  994. package/template/101/movement-template/src/pages/home/index.tsx +93 -0
  995. package/template/101/movement-template/src/pages/index.tsx +12 -0
  996. package/template/101/movement-template/tailwind.config.js +56 -0
  997. package/template/101/movement-template/tsconfig.json +25 -0
  998. package/template/101/rooch-template/package.json +4 -3
  999. package/template/101/rooch-template/scripts/generateAccount.ts +8 -3
  1000. package/template/101/rooch-template/src/pages/_app.tsx +7 -1
  1001. package/template/101/rooch-template/src/pages/home/index.tsx +10 -1
  1002. package/template/101/sui-template/contracts/counter/Move.toml +4 -5
  1003. package/template/{nextjs/sui-template/contracts/counter/sources/script → 101/sui-template/contracts/counter/sources/scripts}/deploy_hook.move +13 -2
  1004. package/template/{nextjs/sui-template/contracts/counter/sources/script → 101/sui-template/contracts/counter/sources/scripts}/migrate.move +1 -0
  1005. package/template/101/sui-template/contracts/dubhe-framework/Move.toml +13 -0
  1006. package/template/{nextjs/sui-template/localnet → 101/sui-template/contracts}/dubhe-framework/sources/core/dapps/schema.move +31 -1
  1007. package/template/{nextjs/sui-template/localnet → 101/sui-template/contracts}/dubhe-framework/sources/core/dapps/system.move +28 -2
  1008. package/template/{contract/sui-template/localnet → 101/sui-template/contracts}/dubhe-framework/sources/core/dapps/tests.move +16 -2
  1009. package/template/101/sui-template/package.json +11 -9
  1010. package/template/101/sui-template/src/chain/config.ts +2 -2
  1011. package/template/101/sui-template/src/pages/_app.tsx +7 -1
  1012. package/template/101/sui-template/src/pages/home/index.tsx +33 -3
  1013. package/template/101/sui-template/src/pages/index.tsx +7 -9
  1014. package/template/cocos/sui-template/package.json +4 -4
  1015. package/template/contract/sui-template/contracts/counter/Move.toml +4 -5
  1016. package/template/{101/sui-template/contracts/counter/sources/script → contract/sui-template/contracts/counter/sources/scripts}/deploy_hook.move +20 -9
  1017. package/template/contract/sui-template/contracts/dubhe-framework/Move.toml +13 -0
  1018. package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/core/dapps/schema.move +31 -1
  1019. package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/core/dapps/system.move +28 -2
  1020. package/template/{101/sui-template/localnet → contract/sui-template/contracts}/dubhe-framework/sources/core/dapps/tests.move +16 -2
  1021. package/template/contract/sui-template/package.json +8 -6
  1022. package/template/nextjs/sui-template/contracts/counter/Move.toml +4 -5
  1023. package/template/{contract/sui-template/contracts/counter/sources/script → nextjs/sui-template/contracts/counter/sources/scripts}/deploy_hook.move +20 -9
  1024. package/template/nextjs/sui-template/contracts/dubhe-framework/Move.toml +13 -0
  1025. package/template/{101/sui-template/localnet → nextjs/sui-template/contracts}/dubhe-framework/sources/core/dapps/schema.move +31 -1
  1026. package/template/{101/sui-template/localnet → nextjs/sui-template/contracts}/dubhe-framework/sources/core/dapps/system.move +28 -2
  1027. package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/core/dapps/tests.move +16 -2
  1028. package/template/nextjs/sui-template/package.json +11 -9
  1029. package/template/nextjs/sui-template/src/chain/config.ts +3 -3
  1030. package/template/nextjs/sui-template/src/pages/_app.tsx +3 -0
  1031. package/template/nextjs/sui-template/src/pages/home/index.tsx +23 -3
  1032. package/template/101/aptos-template/scripts/formatAccount.ts +0 -35
  1033. package/template/101/sui-template/localnet/dubhe-framework/Move.toml +0 -29
  1034. package/template/101/sui-template/scripts/deployment/common.ts +0 -60
  1035. package/template/101/sui-template/scripts/deployment/localnet/deploy.ts +0 -42
  1036. package/template/101/sui-template/scripts/deployment/testnet/deploy.ts +0 -48
  1037. package/template/101/sui-template/scripts/deployment/types.ts +0 -13
  1038. package/template/101/sui-template/scripts/framework/common.ts +0 -17
  1039. package/template/101/sui-template/scripts/framework/deploy.ts +0 -199
  1040. package/template/101/sui-template/scripts/framework/parse-history.ts +0 -76
  1041. package/template/101/sui-template/scripts/framework/types.ts +0 -8
  1042. package/template/contract/sui-template/localnet/dubhe-framework/Move.toml +0 -29
  1043. package/template/contract/sui-template/scripts/deployment/common.ts +0 -45
  1044. package/template/contract/sui-template/scripts/deployment/localnet/deploy.ts +0 -42
  1045. package/template/contract/sui-template/scripts/deployment/testnet/deploy.ts +0 -48
  1046. package/template/contract/sui-template/scripts/deployment/types.ts +0 -13
  1047. package/template/contract/sui-template/scripts/framework/common.ts +0 -17
  1048. package/template/contract/sui-template/scripts/framework/deploy.ts +0 -199
  1049. package/template/contract/sui-template/scripts/framework/parse-history.ts +0 -76
  1050. package/template/contract/sui-template/scripts/framework/types.ts +0 -8
  1051. package/template/nextjs/sui-template/localnet/dubhe-framework/Move.toml +0 -29
  1052. package/template/nextjs/sui-template/scripts/deployment/common.ts +0 -60
  1053. package/template/nextjs/sui-template/scripts/deployment/localnet/deploy.ts +0 -42
  1054. package/template/nextjs/sui-template/scripts/deployment/testnet/deploy.ts +0 -48
  1055. package/template/nextjs/sui-template/scripts/deployment/types.ts +0 -13
  1056. package/template/nextjs/sui-template/scripts/framework/common.ts +0 -17
  1057. package/template/nextjs/sui-template/scripts/framework/deploy.ts +0 -199
  1058. package/template/nextjs/sui-template/scripts/framework/parse-history.ts +0 -76
  1059. package/template/nextjs/sui-template/scripts/framework/types.ts +0 -8
  1060. /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/core/dapps/metadata.move +0 -0
  1061. /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/core/root/schema.move +0 -0
  1062. /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/core/root/system.move +0 -0
  1063. /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/core/root/tests.move +0 -0
  1064. /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/frames/utils/type_info.move +0 -0
  1065. /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/double_map.move +0 -0
  1066. /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/map.move +0 -0
  1067. /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/migrate.move +0 -0
  1068. /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/tests.move +0 -0
  1069. /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/value.move +0 -0
  1070. /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/tests/init.move +0 -0
  1071. /package/template/101/sui-template/{localnet → contracts}/dubhe-framework/tests/obelisk_framework_tests.move +0 -0
  1072. /package/template/{101/sui-template/contracts/counter/sources/script → contract/sui-template/contracts/counter/sources/scripts}/migrate.move +0 -0
  1073. /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/core/dapps/metadata.move +0 -0
  1074. /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/core/root/schema.move +0 -0
  1075. /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/core/root/system.move +0 -0
  1076. /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/core/root/tests.move +0 -0
  1077. /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/frames/utils/type_info.move +0 -0
  1078. /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/double_map.move +0 -0
  1079. /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/map.move +0 -0
  1080. /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/migrate.move +0 -0
  1081. /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/tests.move +0 -0
  1082. /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/value.move +0 -0
  1083. /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/tests/init.move +0 -0
  1084. /package/template/contract/sui-template/{localnet → contracts}/dubhe-framework/tests/obelisk_framework_tests.move +0 -0
  1085. /package/template/{contract/sui-template/contracts/counter/sources/script → nextjs/sui-template/contracts/counter/sources/scripts}/migrate.move +0 -0
  1086. /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/core/dapps/metadata.move +0 -0
  1087. /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/core/root/schema.move +0 -0
  1088. /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/core/root/system.move +0 -0
  1089. /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/core/root/tests.move +0 -0
  1090. /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/frames/utils/type_info.move +0 -0
  1091. /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/double_map.move +0 -0
  1092. /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/map.move +0 -0
  1093. /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/migrate.move +0 -0
  1094. /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/tests.move +0 -0
  1095. /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/sources/storages/value.move +0 -0
  1096. /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/tests/init.move +0 -0
  1097. /package/template/nextjs/sui-template/{localnet → contracts}/dubhe-framework/tests/obelisk_framework_tests.move +0 -0
@@ -0,0 +1,2465 @@
1
+ module initia_std::multisig_v2 {
2
+ use std::error;
3
+ use std::option::{Self, Option};
4
+ use std::signer;
5
+ use std::string::{Self, String};
6
+ use std::vector;
7
+ use std::event;
8
+
9
+ use initia_std::block::get_block_info;
10
+ use initia_std::cosmos::{move_execute, move_execute_with_json};
11
+ use initia_std::object::{Self, ExtendRef};
12
+ use initia_std::simple_map::{Self, SimpleMap};
13
+ use initia_std::table::{Self, Table};
14
+ use initia_std::type_info;
15
+
16
+ // errors
17
+
18
+ const EINVALID_THRESHOLD: u64 = 1;
19
+
20
+ const ENOT_MEMBER: u64 = 2;
21
+
22
+ const EINVALID_PROPOSAL_STATUS: u64 = 3;
23
+
24
+ const EPROPOSAL_EXPIRED: u64 = 4;
25
+
26
+ const ENOT_PASS: u64 = 5;
27
+
28
+ const EPROPOSAL_NOT_FOUND: u64 = 6;
29
+
30
+ const EINVALID_TIERS_LENGTH: u64 = 7;
31
+
32
+ const EINVALID_MEMBERS_LENGTH: u64 = 8;
33
+
34
+ const EINVALID_MEMBER_TIERS: u64 = 9;
35
+
36
+ const EINVALID_EXPIRY_TIMESTAMP: u64 = 10;
37
+
38
+ const EMULTISIG_NAME_TOO_LONG: u64 = 11;
39
+
40
+ const EINVALID_PROPOSAL_MESSAGE_LENGTH: u64 = 12;
41
+
42
+ // constants
43
+
44
+ const STATUS: vector<vector<u8>> = vector[b"voting", b"executed", b"expired"];
45
+
46
+ const MAX_LIMIT: u8 = 30;
47
+
48
+ const MAX_MULTISIG_NAME_LENGTH: u64 = 64;
49
+
50
+ // structs
51
+
52
+ struct Tier has copy, drop, store {
53
+ name: String,
54
+ weight: u64
55
+ }
56
+
57
+ struct Member has copy, drop, store {
58
+ address: address,
59
+ tier: Option<Tier>
60
+ }
61
+
62
+ struct MultisigWallet has key {
63
+ extend_ref: ExtendRef,
64
+ name: String,
65
+ weighted: bool, // if true -> tiers should be present
66
+ tiers: Option<vector<Tier>>,
67
+ members: vector<Member>, // members of multisig account
68
+ threshold: u64, // require weight to pass
69
+ proposals: Table<u64, Proposal>
70
+ }
71
+
72
+ struct ExecuteMessage has copy, drop, store {
73
+ module_address: address,
74
+ module_name: String,
75
+ function_name: String,
76
+ type_args: vector<String>,
77
+ args: vector<vector<u8>>,
78
+ json_args: vector<String>
79
+ }
80
+
81
+ struct Proposal has store {
82
+ proposer: Member,
83
+ proposed_timestamp: u64,
84
+ proposed_height: u64,
85
+ expiry_timestamp: Option<u64>,
86
+ votes: SimpleMap<Member, bool>,
87
+ threshold: u64,
88
+ total_weight: u64,
89
+ status: u8,
90
+ is_json: bool,
91
+ execute_messages: vector<ExecuteMessage>
92
+ }
93
+
94
+ // events
95
+
96
+ #[event]
97
+ struct CreateMultisigAccountEvent has drop, store {
98
+ multisig_addr: address,
99
+ name: String,
100
+ weighted: bool,
101
+ members: vector<Member>,
102
+ threshold: u64
103
+ }
104
+
105
+ #[event]
106
+ struct CreateProposalEvent has drop, store {
107
+ multisig_addr: address,
108
+ proposal_id: u64,
109
+ proposer: Member,
110
+ execute_messages: vector<ExecuteMessage>
111
+ }
112
+
113
+ #[event]
114
+ struct VoteProposalEvent has drop, store {
115
+ multisig_addr: address,
116
+ proposal_id: u64,
117
+ voter: Member,
118
+ vote_yes: bool
119
+ }
120
+
121
+ #[event]
122
+ struct ExecuteProposalEvent has drop, store {
123
+ multisig_addr: address,
124
+ proposal_id: u64,
125
+ executor: Member
126
+ }
127
+
128
+ #[event]
129
+ struct UpdateConfigEvent has drop, store {
130
+ multisig_addr: address,
131
+ members: vector<Member>,
132
+ tiers: Option<vector<Tier>>,
133
+ threshold: u64
134
+ }
135
+
136
+ // view function response struct
137
+
138
+ struct ProposalResponse has drop {
139
+ multisig_addr: address,
140
+ proposal_id: u64,
141
+ votes: SimpleMap<Member, bool>,
142
+ proposer: Member,
143
+ proposed_height: u64,
144
+ proposed_timestamp: u64,
145
+ expiry_timestamp: Option<u64>,
146
+ threshold: u64,
147
+ total_weight: u64,
148
+ yes_vote_score: u64,
149
+ status: String,
150
+ is_json: bool,
151
+ execute_messages: vector<ExecuteMessage>
152
+ }
153
+
154
+ struct MultisigResponse has drop {
155
+ multisig_addr: address,
156
+ name: String,
157
+ members: vector<Member>,
158
+ threshold: u64,
159
+ tiers: Option<vector<Tier>>
160
+ }
161
+
162
+ // view functions
163
+
164
+ #[view]
165
+ public fun is_exist(creator_addr: address, name: String): bool {
166
+ let seed = create_multisig_seed(&name);
167
+ let multisig_addr = object::create_object_address(&creator_addr, seed);
168
+ object::object_exists<MultisigWallet>(multisig_addr)
169
+ }
170
+
171
+ #[view]
172
+ public fun get_multisig(multisig_addr: address): MultisigResponse acquires MultisigWallet {
173
+ let multisig_wallet = borrow_global<MultisigWallet>(multisig_addr);
174
+
175
+ MultisigResponse {
176
+ multisig_addr,
177
+ name: multisig_wallet.name,
178
+ tiers: multisig_wallet.tiers,
179
+ members: multisig_wallet.members,
180
+ threshold: multisig_wallet.threshold
181
+ }
182
+ }
183
+
184
+ #[view]
185
+ public fun get_proposal(
186
+ multisig_addr: address, proposal_id: u64
187
+ ): ProposalResponse acquires MultisigWallet {
188
+ let multisig_wallet = borrow_global<MultisigWallet>(multisig_addr);
189
+ let proposal = table::borrow(&multisig_wallet.proposals, proposal_id);
190
+ proposal_to_proposal_response(
191
+ multisig_wallet,
192
+ multisig_addr,
193
+ proposal_id,
194
+ proposal
195
+ )
196
+ }
197
+
198
+ #[view]
199
+ public fun get_proposals(
200
+ multisig_addr: address, start_after: Option<u64>, limit: u8
201
+ ): vector<ProposalResponse> acquires MultisigWallet {
202
+ if (limit > MAX_LIMIT) {
203
+ limit = MAX_LIMIT
204
+ };
205
+ let res: vector<ProposalResponse> = vector[];
206
+ let multisig_wallet = borrow_global<MultisigWallet>(multisig_addr);
207
+ let iter = table::iter(
208
+ &multisig_wallet.proposals,
209
+ option::none(),
210
+ start_after,
211
+ 2
212
+ );
213
+
214
+ while (vector::length(&res) < (limit as u64)
215
+ && table::prepare<u64, Proposal>(iter)) {
216
+ let (proposal_id, proposal) = table::next<u64, Proposal>(iter);
217
+ vector::push_back(
218
+ &mut res,
219
+ proposal_to_proposal_response(
220
+ multisig_wallet,
221
+ multisig_addr,
222
+ proposal_id,
223
+ proposal
224
+ )
225
+ );
226
+ };
227
+
228
+ res
229
+ }
230
+
231
+ // entry functions
232
+
233
+ /// Create new non weighted multisig account
234
+ public entry fun create_non_weighted_multisig_account(
235
+ account: &signer,
236
+ name: String, // name for make deterministic multisig address (account_addr + name)
237
+ members: vector<address>,
238
+ threshold: u64
239
+ ) {
240
+ assert_member(&members, &signer::address_of(account));
241
+ assert!(
242
+ vector::length(&members) >= threshold,
243
+ error::invalid_argument(EINVALID_THRESHOLD)
244
+ );
245
+ assert!(
246
+ threshold > 0,
247
+ error::invalid_argument(EINVALID_THRESHOLD)
248
+ );
249
+
250
+ let constructor_ref =
251
+ object::create_named_object(account, create_multisig_seed(&name));
252
+ let extend_ref = object::generate_extend_ref(&constructor_ref);
253
+ let multisig_signer = object::generate_signer(&constructor_ref);
254
+ let multisig_addr = signer::address_of(&multisig_signer);
255
+
256
+ assert_uniqueness(members);
257
+
258
+ let members = vector::map(
259
+ members,
260
+ |member| Member { address: member, tier: option::none() }
261
+ );
262
+
263
+ move_to(
264
+ &multisig_signer,
265
+ MultisigWallet {
266
+ extend_ref,
267
+ name,
268
+ members,
269
+ weighted: false,
270
+ tiers: option::none(),
271
+ threshold,
272
+ proposals: table::new()
273
+ }
274
+ );
275
+
276
+ event::emit<CreateMultisigAccountEvent>(
277
+ CreateMultisigAccountEvent {
278
+ multisig_addr,
279
+ name,
280
+ weighted: false,
281
+ members,
282
+ threshold
283
+ }
284
+ )
285
+ }
286
+
287
+ /// Create new weighted multisig account
288
+ public entry fun create_weighted_multisig_account(
289
+ account: &signer,
290
+ name: String, // name for make deterministic multisig address (account_addr + name)
291
+ tiers: vector<String>,
292
+ tier_weights: vector<u64>,
293
+ members: vector<address>,
294
+ member_tiers: vector<String>,
295
+ threshold: u64
296
+ ) {
297
+ assert_member(&members, &signer::address_of(account));
298
+ assert_uniqueness(members);
299
+ assert_tier_config(tiers, tier_weights, &members, member_tiers);
300
+ assert_uniqueness(tiers);
301
+
302
+ // check threshold computed from each member weights
303
+ let total_weight = vector::fold(
304
+ member_tiers,
305
+ 0u64,
306
+ |acc, tier| {
307
+ let (_, index) = vector::index_of(&tiers, &tier);
308
+ acc + *vector::borrow(&tier_weights, index)
309
+ }
310
+ );
311
+ assert!(
312
+ total_weight >= threshold,
313
+ error::invalid_argument(EINVALID_THRESHOLD)
314
+ );
315
+ assert!(
316
+ threshold > 0,
317
+ error::invalid_argument(EINVALID_THRESHOLD)
318
+ );
319
+
320
+ let constructor_ref =
321
+ object::create_named_object(account, create_multisig_seed(&name));
322
+ let extend_ref = object::generate_extend_ref(&constructor_ref);
323
+ let multisig_signer = object::generate_signer(&constructor_ref);
324
+ let multisig_addr = signer::address_of(&multisig_signer);
325
+
326
+ let tiers = vector::map(
327
+ tiers,
328
+ |tier| {
329
+ let (_, index) = vector::index_of(&tiers, &tier);
330
+ Tier { name: tier, weight: *vector::borrow(&tier_weights, index) }
331
+ }
332
+ );
333
+
334
+ let members = construct_members_with_tiers(members, member_tiers, tiers);
335
+
336
+ move_to(
337
+ &multisig_signer,
338
+ MultisigWallet {
339
+ extend_ref,
340
+ name,
341
+ members,
342
+ weighted: true,
343
+ tiers: option::some(tiers),
344
+ threshold,
345
+ proposals: table::new()
346
+ }
347
+ );
348
+
349
+ event::emit<CreateMultisigAccountEvent>(
350
+ CreateMultisigAccountEvent {
351
+ multisig_addr,
352
+ weighted: true,
353
+ name,
354
+ members,
355
+ threshold
356
+ }
357
+ )
358
+ }
359
+
360
+ fun total_weight(members: &vector<Member>): u64 {
361
+ vector::fold(
362
+ *members,
363
+ 0u64,
364
+ |acc, member| {
365
+ let m: Member = member;
366
+ acc
367
+ + if (option::is_some(&m.tier)) {
368
+ let tier = *option::borrow(&m.tier);
369
+ tier.weight
370
+ } else { 1u64 }
371
+ }
372
+ )
373
+ }
374
+
375
+ /// Create new proposal
376
+ public entry fun create_proposal(
377
+ account: &signer,
378
+ multisig_addr: address,
379
+ module_address_list: vector<address>,
380
+ module_name_list: vector<String>,
381
+ function_name_list: vector<String>,
382
+ type_args_list: vector<vector<String>>,
383
+ args_list: vector<vector<vector<u8>>>,
384
+ expiry_duration: Option<u64>
385
+ ) acquires MultisigWallet {
386
+ assert!(
387
+ vector::length(&module_address_list) == vector::length(&module_name_list)
388
+ && vector::length(&module_name_list)
389
+ == vector::length(&function_name_list)
390
+ && vector::length(&function_name_list)
391
+ == vector::length(&type_args_list)
392
+ && vector::length(&type_args_list) == vector::length(&args_list),
393
+ error::invalid_argument(EINVALID_PROPOSAL_MESSAGE_LENGTH)
394
+ );
395
+
396
+ let index = 0;
397
+ let execute_messages = vector::map<address, ExecuteMessage>(
398
+ module_address_list,
399
+ |module_address| {
400
+ let module_name = *vector::borrow(&module_name_list, index);
401
+ let function_name = *vector::borrow(&function_name_list, index);
402
+ let type_args = *vector::borrow(&type_args_list, index);
403
+ let args = *vector::borrow(&args_list, index);
404
+ index = index + 1;
405
+
406
+ ExecuteMessage {
407
+ module_address,
408
+ module_name,
409
+ function_name,
410
+ type_args,
411
+ args,
412
+ json_args: vector[]
413
+ }
414
+ }
415
+ );
416
+
417
+ create_proposal_internal(
418
+ account,
419
+ multisig_addr,
420
+ false,
421
+ execute_messages,
422
+ expiry_duration
423
+ )
424
+ }
425
+
426
+ /// Create new proposal
427
+ public entry fun create_proposal_with_json(
428
+ account: &signer,
429
+ multisig_addr: address,
430
+ module_address_list: vector<address>,
431
+ module_name_list: vector<String>,
432
+ function_name_list: vector<String>,
433
+ type_args_list: vector<vector<String>>,
434
+ args_list: vector<vector<String>>,
435
+ expiry_duration: Option<u64>
436
+ ) acquires MultisigWallet {
437
+ assert!(
438
+ vector::length(&module_address_list) == vector::length(&module_name_list)
439
+ && vector::length(&module_name_list)
440
+ == vector::length(&function_name_list)
441
+ && vector::length(&function_name_list)
442
+ == vector::length(&type_args_list)
443
+ && vector::length(&type_args_list) == vector::length(&args_list),
444
+ error::invalid_argument(EINVALID_PROPOSAL_MESSAGE_LENGTH)
445
+ );
446
+
447
+ let index = 0;
448
+ let execute_messages = vector::map<address, ExecuteMessage>(
449
+ module_address_list,
450
+ |module_address| {
451
+ let module_name = *vector::borrow(&module_name_list, index);
452
+ let function_name = *vector::borrow(&function_name_list, index);
453
+ let type_args = *vector::borrow(&type_args_list, index);
454
+ let json_args = *vector::borrow(&args_list, index);
455
+ index = index + 1;
456
+
457
+ ExecuteMessage {
458
+ module_address,
459
+ module_name,
460
+ function_name,
461
+ type_args,
462
+ args: vector[],
463
+ json_args
464
+ }
465
+ }
466
+ );
467
+
468
+ create_proposal_internal(
469
+ account,
470
+ multisig_addr,
471
+ true,
472
+ execute_messages,
473
+ expiry_duration
474
+ )
475
+ }
476
+
477
+ /// Vote proposal
478
+ public entry fun vote_proposal(
479
+ account: &signer,
480
+ multisig_addr: address,
481
+ proposal_id: u64,
482
+ vote_yes: bool
483
+ ) acquires MultisigWallet {
484
+ let voter_address = signer::address_of(account);
485
+ let multisig_wallet = borrow_global_mut<MultisigWallet>(multisig_addr);
486
+ assert_multisig_member(&multisig_wallet.members, &voter_address);
487
+
488
+ assert!(
489
+ table::contains(&multisig_wallet.proposals, proposal_id),
490
+ error::invalid_argument(EPROPOSAL_NOT_FOUND)
491
+ );
492
+ let proposal = table::borrow_mut(&mut multisig_wallet.proposals, proposal_id);
493
+
494
+ assert_proposal(proposal);
495
+
496
+ let voter = get_member_by_address(multisig_wallet.members, voter_address);
497
+ vote(&mut proposal.votes, voter, vote_yes);
498
+
499
+ event::emit<VoteProposalEvent>(
500
+ VoteProposalEvent { multisig_addr, proposal_id, voter, vote_yes }
501
+ )
502
+ }
503
+
504
+ /// Execute proposal
505
+ public entry fun execute_proposal(
506
+ account: &signer, multisig_addr: address, proposal_id: u64
507
+ ) acquires MultisigWallet {
508
+ let executor_address = signer::address_of(account);
509
+ let multisig_wallet = borrow_global_mut<MultisigWallet>(multisig_addr);
510
+ let executor = get_member_by_address(multisig_wallet.members, executor_address);
511
+ assert_multisig_member(&multisig_wallet.members, &executor_address);
512
+
513
+ assert!(
514
+ table::contains(&multisig_wallet.proposals, proposal_id),
515
+ error::invalid_argument(EPROPOSAL_NOT_FOUND)
516
+ );
517
+ let proposal = table::borrow_mut(&mut multisig_wallet.proposals, proposal_id);
518
+
519
+ assert_proposal(proposal);
520
+
521
+ // check passed
522
+ assert!(
523
+ yes_vote_score(&proposal.votes, &multisig_wallet.members)
524
+ >= multisig_wallet.threshold,
525
+ error::invalid_state(ENOT_PASS)
526
+ );
527
+
528
+ let multisig_signer =
529
+ &object::generate_signer_for_extending(&multisig_wallet.extend_ref);
530
+
531
+ proposal.status = 1; // change the status first in case of updating config
532
+
533
+ if (!proposal.is_json) {
534
+ vector::for_each(
535
+ proposal.execute_messages,
536
+ |execute_message| {
537
+ let m: ExecuteMessage = execute_message;
538
+ move_execute(
539
+ multisig_signer,
540
+ m.module_address,
541
+ m.module_name,
542
+ m.function_name,
543
+ m.type_args,
544
+ m.args
545
+ )
546
+ }
547
+ )
548
+ } else {
549
+ vector::for_each(
550
+ proposal.execute_messages,
551
+ |execute_message| {
552
+ let m: ExecuteMessage = execute_message;
553
+ move_execute_with_json(
554
+ multisig_signer,
555
+ m.module_address,
556
+ m.module_name,
557
+ m.function_name,
558
+ m.type_args,
559
+ m.json_args
560
+ )
561
+ }
562
+ )
563
+ };
564
+
565
+ event::emit<ExecuteProposalEvent>(
566
+ ExecuteProposalEvent { multisig_addr, proposal_id, executor }
567
+ )
568
+ }
569
+
570
+ /// Update config. Only execute by multisig wallet itself
571
+ public entry fun update_config(
572
+ account: &signer,
573
+ new_members: vector<address>,
574
+ new_tiers: Option<vector<String>>,
575
+ new_tier_weights: Option<vector<u64>>,
576
+ new_member_tiers: Option<vector<String>>,
577
+ new_threshold: u64
578
+ ) acquires MultisigWallet {
579
+ let multisig_addr = signer::address_of(account);
580
+ let multisig_wallet = borrow_global_mut<MultisigWallet>(multisig_addr);
581
+
582
+ assert_uniqueness(new_members);
583
+
584
+ let removed_members = vector::filter(
585
+ multisig_wallet.members,
586
+ |member| {
587
+ let m: &Member = member;
588
+ !vector::contains(&new_members, &m.address)
589
+ }
590
+ );
591
+
592
+ if (multisig_wallet.weighted) {
593
+ let new_tiers = *option::borrow(&new_tiers);
594
+ let new_tier_weights = *option::borrow(&new_tier_weights);
595
+ let new_member_tiers = *option::borrow(&new_member_tiers);
596
+
597
+ assert_tier_config(
598
+ new_tiers,
599
+ new_tier_weights,
600
+ &new_members,
601
+ new_member_tiers
602
+ );
603
+ assert_uniqueness(new_tiers);
604
+
605
+ // check threshold computed from each member weights
606
+ let total_weight = vector::fold(
607
+ new_member_tiers,
608
+ 0u64,
609
+ |acc, tier| {
610
+ let (_, index) = vector::index_of(&new_tiers, &tier);
611
+ acc + *vector::borrow(&new_tier_weights, index)
612
+ }
613
+ );
614
+
615
+ assert!(
616
+ total_weight >= new_threshold,
617
+ error::invalid_argument(EINVALID_THRESHOLD)
618
+ );
619
+ assert!(
620
+ new_threshold > 0,
621
+ error::invalid_argument(EINVALID_THRESHOLD)
622
+ );
623
+
624
+ let tiers = vector::map(
625
+ new_tiers,
626
+ |tier| {
627
+ let (_, index) = vector::index_of(&new_tiers, &tier);
628
+ Tier { name: tier, weight: *vector::borrow(&new_tier_weights, index) }
629
+ }
630
+ );
631
+
632
+ multisig_wallet.threshold = new_threshold;
633
+ multisig_wallet.tiers = option::some(tiers);
634
+ multisig_wallet.members = construct_members_with_tiers(
635
+ new_members, new_member_tiers, tiers
636
+ );
637
+ } else {
638
+ assert!(
639
+ vector::length(&new_members) >= new_threshold,
640
+ error::invalid_argument(EINVALID_THRESHOLD)
641
+ );
642
+
643
+ multisig_wallet.threshold = new_threshold;
644
+ multisig_wallet.members = vector::map(
645
+ new_members,
646
+ |member| Member { address: member, tier: option::none() }
647
+ );
648
+ };
649
+
650
+ // remove votes of the removed members from active proposals
651
+ let iter =
652
+ table::iter_mut(
653
+ &mut multisig_wallet.proposals,
654
+ option::none(),
655
+ option::none(),
656
+ 2
657
+ );
658
+ while (table::prepare<u64, Proposal>(iter)) {
659
+ let (_, proposal) = table::next_mut<u64, Proposal>(iter);
660
+ // only cares about active proposals
661
+ if (proposal.status != 0 || is_proposal_expired(proposal)) {
662
+ continue
663
+ };
664
+
665
+ proposal.threshold = new_threshold;
666
+ proposal.total_weight = total_weight(&multisig_wallet.members);
667
+
668
+ // remove removed_members votes
669
+ vector::for_each(
670
+ removed_members,
671
+ |member| {
672
+ let m: Member = member;
673
+ if (simple_map::contains_key(&proposal.votes, &m)) {
674
+ simple_map::remove(&mut proposal.votes, &m);
675
+ }
676
+ }
677
+ );
678
+ };
679
+
680
+ event::emit<UpdateConfigEvent>(
681
+ UpdateConfigEvent {
682
+ multisig_addr,
683
+ members: multisig_wallet.members,
684
+ tiers: multisig_wallet.tiers,
685
+ threshold: multisig_wallet.threshold
686
+ }
687
+ )
688
+ }
689
+
690
+ // public functions
691
+
692
+ public fun create_multisig_seed(name: &String): vector<u8> {
693
+ assert!(
694
+ string::length(name) <= MAX_MULTISIG_NAME_LENGTH,
695
+ error::out_of_range(EMULTISIG_NAME_TOO_LONG)
696
+ );
697
+
698
+ let type_name = type_info::type_name<MultisigWallet>();
699
+ let seed = *string::bytes(&type_name);
700
+ vector::append(&mut seed, *string::bytes(name));
701
+ seed
702
+ }
703
+
704
+ // private functions
705
+
706
+ fun construct_members_with_tiers(
707
+ members: vector<address>, member_tiers: vector<String>, tiers: vector<Tier>
708
+ ): vector<Member> {
709
+ let index = 0;
710
+ vector::map(
711
+ members,
712
+ |member| {
713
+ let tier_name = *vector::borrow(&member_tiers, index);
714
+ index = index + 1;
715
+
716
+ // find tier with tier_name in tiers
717
+ let (found, tier_index) = vector::find(
718
+ &tiers,
719
+ |t| {
720
+ let tt: &Tier = t;
721
+ tt.name == tier_name
722
+ }
723
+ );
724
+
725
+ assert!(found, error::invalid_argument(EINVALID_MEMBER_TIERS));
726
+
727
+ let tier = *vector::borrow(&tiers, tier_index);
728
+
729
+ Member { address: member, tier: option::some(tier) }
730
+ }
731
+ )
732
+ }
733
+
734
+ fun get_member_by_address(members: vector<Member>, address: address): Member {
735
+ let (found, index) = vector::find(
736
+ &members,
737
+ |member| {
738
+ let m: &Member = member;
739
+ m.address == address
740
+ }
741
+ );
742
+
743
+ assert!(found, error::permission_denied(ENOT_MEMBER));
744
+
745
+ *vector::borrow(&members, index)
746
+ }
747
+
748
+ fun create_proposal_internal(
749
+ account: &signer,
750
+ multisig_addr: address,
751
+ is_json: bool,
752
+ execute_messages: vector<ExecuteMessage>,
753
+ expiry_duration: Option<u64>
754
+ ) acquires MultisigWallet {
755
+ let addr = signer::address_of(account);
756
+ let multisig_wallet = borrow_global_mut<MultisigWallet>(multisig_addr);
757
+ assert_multisig_member(&multisig_wallet.members, &addr);
758
+
759
+ let (height, timestamp) = get_block_info();
760
+
761
+ let expiry_timestamp =
762
+ if (option::is_some(&expiry_duration)) {
763
+ let time_until_expired = *option::borrow(&expiry_duration);
764
+ option::some(timestamp + time_until_expired)
765
+ } else {
766
+ option::none()
767
+ };
768
+
769
+ // proposer votes yes on proposal creation
770
+ let votes = simple_map::create<Member, bool>();
771
+ let proposer = get_member_by_address(multisig_wallet.members, addr);
772
+ simple_map::add(&mut votes, proposer, true);
773
+
774
+ let proposal = Proposal {
775
+ proposer,
776
+ proposed_height: height,
777
+ proposed_timestamp: timestamp,
778
+ expiry_timestamp,
779
+ threshold: multisig_wallet.threshold,
780
+ total_weight: total_weight(&multisig_wallet.members),
781
+ votes,
782
+ status: 0, // in voting period
783
+ is_json,
784
+ execute_messages
785
+ };
786
+
787
+ let proposal_id = table::length(&multisig_wallet.proposals) + 1;
788
+ table::add(
789
+ &mut multisig_wallet.proposals,
790
+ proposal_id,
791
+ proposal
792
+ );
793
+
794
+ event::emit<CreateProposalEvent>(
795
+ CreateProposalEvent { multisig_addr, proposal_id, proposer, execute_messages }
796
+ )
797
+ }
798
+
799
+ fun is_proposal_expired(proposal: &Proposal): bool {
800
+ let (_, timestamp) = get_block_info();
801
+
802
+ if (option::is_none(&proposal.expiry_timestamp)) {
803
+ return false
804
+ };
805
+
806
+ let expiry = *option::borrow(&proposal.expiry_timestamp);
807
+
808
+ return timestamp >= expiry
809
+ }
810
+
811
+ fun vote(
812
+ votes: &mut SimpleMap<Member, bool>,
813
+ voter: Member,
814
+ vote_yes: bool
815
+ ) {
816
+ if (simple_map::contains_key(votes, &voter)) {
817
+ let vote = simple_map::borrow_mut(votes, &voter);
818
+ *vote = vote_yes;
819
+ } else {
820
+ simple_map::add(votes, voter, vote_yes);
821
+ };
822
+ }
823
+
824
+ fun yes_vote_score(
825
+ votes: &SimpleMap<Member, bool>, members: &vector<Member>
826
+ ): u64 {
827
+ vector::fold(
828
+ *members,
829
+ 0u64,
830
+ |acc, member| {
831
+ let m: Member = member;
832
+ let weight =
833
+ if (option::is_some(&m.tier)) {
834
+ let tier = *option::borrow(&m.tier);
835
+ tier.weight
836
+ } else { 1u64 };
837
+ if (simple_map::contains_key(votes, &m)
838
+ && *simple_map::borrow(votes, &m)) {
839
+ acc + weight
840
+ } else { acc }
841
+ }
842
+ )
843
+ }
844
+
845
+ fun proposal_to_proposal_response(
846
+ multisig_wallet: &MultisigWallet,
847
+ multisig_addr: address,
848
+ proposal_id: u64,
849
+ proposal: &Proposal
850
+ ): ProposalResponse {
851
+ let status_index = proposal.status;
852
+ let is_expired = is_proposal_expired(proposal);
853
+ let yes_vote_score = yes_vote_score(&proposal.votes, &multisig_wallet.members);
854
+ if (status_index == 0 && is_expired) {
855
+ status_index = 2
856
+ };
857
+
858
+ ProposalResponse {
859
+ multisig_addr,
860
+ proposal_id,
861
+ proposer: proposal.proposer,
862
+ proposed_height: proposal.proposed_height,
863
+ proposed_timestamp: proposal.proposed_timestamp,
864
+ expiry_timestamp: proposal.expiry_timestamp,
865
+ votes: proposal.votes,
866
+ threshold: proposal.threshold,
867
+ total_weight: proposal.total_weight,
868
+ yes_vote_score,
869
+ status: string::utf8(*vector::borrow(&STATUS, (status_index as u64))),
870
+ is_json: proposal.is_json,
871
+ execute_messages: proposal.execute_messages
872
+ }
873
+ }
874
+
875
+ inline fun assert_uniqueness<T: store>(vec: vector<T>) {
876
+ let m = simple_map::create<T, bool>();
877
+ vector::for_each(vec, |elem| simple_map::add(&mut m, elem, true))
878
+ }
879
+
880
+ inline fun assert_member(members: &vector<address>, member: &address) {
881
+ assert!(
882
+ vector::contains(members, member),
883
+ error::permission_denied(ENOT_MEMBER)
884
+ )
885
+ }
886
+
887
+ inline fun assert_multisig_member(
888
+ multisig_members: &vector<Member>, member: &address
889
+ ) {
890
+ let member_addresses = vector::map_ref(
891
+ multisig_members,
892
+ |multisig_member| {
893
+ let m: &Member = multisig_member;
894
+ m.address
895
+ }
896
+ );
897
+
898
+ assert_member(&member_addresses, member)
899
+ }
900
+
901
+ inline fun assert_proposal(proposal: &Proposal) {
902
+ assert!(
903
+ proposal.status == 0,
904
+ error::invalid_state(EINVALID_PROPOSAL_STATUS)
905
+ );
906
+ assert!(
907
+ !is_proposal_expired(proposal),
908
+ error::invalid_state(EPROPOSAL_EXPIRED)
909
+ );
910
+ }
911
+
912
+ inline fun assert_tier_config(
913
+ tiers: vector<String>,
914
+ tier_weights: vector<u64>,
915
+ members: &vector<address>,
916
+ member_tiers: vector<String>
917
+ ) {
918
+ assert!(
919
+ vector::length(&tiers) == vector::length(&tier_weights),
920
+ error::invalid_argument(EINVALID_TIERS_LENGTH)
921
+ );
922
+
923
+ assert!(
924
+ vector::length(members) == vector::length(&member_tiers),
925
+ error::invalid_argument(EINVALID_MEMBERS_LENGTH)
926
+ );
927
+
928
+ vector::for_each(
929
+ member_tiers,
930
+ |tier| assert!(
931
+ vector::contains(&tiers, &tier),
932
+ error::invalid_argument(EINVALID_MEMBER_TIERS)
933
+ )
934
+ );
935
+ }
936
+
937
+ #[test_only]
938
+ use initia_std::address;
939
+ #[test_only]
940
+ use initia_std::block::set_block_info;
941
+
942
+ #[test_only]
943
+ fun get_multisig_address(creator: &address, name: &String): address {
944
+ let seed = address::to_string(@initia_std);
945
+ string::append(&mut seed, string::utf8(b"::multisig_v2::MultisigWallet"));
946
+ string::append(&mut seed, *name);
947
+
948
+ object::create_object_address(creator, *string::bytes(&seed))
949
+ }
950
+
951
+ // create test_only function for create votes map
952
+ #[test_only]
953
+ fun create_votes_map(members: vector<Member>, votes: vector<bool>):
954
+ SimpleMap<Member, bool> {
955
+ let votes_map = simple_map::create<Member, bool>();
956
+ let index = 0;
957
+ vector::for_each(
958
+ members,
959
+ |member| {
960
+ let vote = *vector::borrow(&votes, index);
961
+ index = index + 1;
962
+
963
+ simple_map::add(&mut votes_map, member, vote)
964
+ }
965
+ );
966
+
967
+ votes_map
968
+ }
969
+
970
+ // view functions tests
971
+
972
+ #[test(account1 = @0x101, account2 = @0x102, account3 = @0x103)]
973
+ fun is_exist_test(
974
+ account1: signer, account2: signer, account3: signer
975
+ ) {
976
+ let addr1 = signer::address_of(&account1);
977
+ let addr2 = signer::address_of(&account2);
978
+ let addr3 = signer::address_of(&account3);
979
+
980
+ let name = string::utf8(b"multisig wallet");
981
+
982
+ assert!(!is_exist(addr1, name), 1);
983
+
984
+ create_non_weighted_multisig_account(
985
+ &account1, name, vector[addr1, addr2, addr3], 2
986
+ );
987
+
988
+ assert!(is_exist(addr1, name), 1)
989
+ }
990
+
991
+ #[test(
992
+ account1 = @0x101, account2 = @0x102, account3 = @0x103, account4 = @0x104
993
+ )]
994
+ #[expected_failure(abort_code = 0x50002, location = Self)]
995
+ fun create_non_weighted_wallet_by_other(
996
+ account1: signer,
997
+ account2: signer,
998
+ account3: signer,
999
+ account4: signer
1000
+ ) {
1001
+ // create multisig wallet
1002
+ let addr1 = signer::address_of(&account1);
1003
+ let addr2 = signer::address_of(&account2);
1004
+ let addr3 = signer::address_of(&account3);
1005
+
1006
+ create_non_weighted_multisig_account(
1007
+ &account4,
1008
+ string::utf8(b"multisig wallet"),
1009
+ vector[addr1, addr2, addr3],
1010
+ 2
1011
+ );
1012
+ }
1013
+
1014
+ // test multisig wallet name too long
1015
+ #[test(account1 = @0x101, account2 = @0x102, account3 = @0x103)]
1016
+ #[expected_failure(abort_code = 0x2000b, location = Self)]
1017
+ fun wallet_name_too_long(
1018
+ account1: signer, account2: signer, account3: signer
1019
+ ) {
1020
+ // create multisig wallet
1021
+ let addr1 = signer::address_of(&account1);
1022
+ let addr2 = signer::address_of(&account2);
1023
+ let addr3 = signer::address_of(&account3);
1024
+
1025
+ create_non_weighted_multisig_account(
1026
+ &account1,
1027
+ string::utf8(
1028
+ b"multimultimultimultimultimultimultimultimultimultimultimultimulti"
1029
+ ), // 64 letters
1030
+ vector[addr1, addr2, addr3],
1031
+ 2
1032
+ );
1033
+ }
1034
+
1035
+ #[test(account1 = @0x101, account2 = @0x102, account3 = @0x103)]
1036
+ #[expected_failure(abort_code = 0x10001, location = Self)]
1037
+ fun non_weighted_invalid_threshold(
1038
+ account1: signer, account2: signer, account3: signer
1039
+ ) {
1040
+ // create multisig wallet
1041
+ let addr1 = signer::address_of(&account1);
1042
+ let addr2 = signer::address_of(&account2);
1043
+ let addr3 = signer::address_of(&account3);
1044
+
1045
+ create_non_weighted_multisig_account(
1046
+ &account1,
1047
+ string::utf8(b"multisig wallet"),
1048
+ vector[addr1, addr2, addr3],
1049
+ 4
1050
+ );
1051
+ }
1052
+
1053
+ #[test(account1 = @0x101, account2 = @0x102, account3 = @0x103)]
1054
+ #[expected_failure(abort_code = 0x10001, location = simple_map)]
1055
+ fun non_weighted_duplicate_members(
1056
+ account1: signer, account2: signer, account3: signer
1057
+ ) {
1058
+ // create multisig wallet
1059
+ let addr1 = signer::address_of(&account1);
1060
+ let addr2 = signer::address_of(&account2);
1061
+ let addr3 = signer::address_of(&account3);
1062
+
1063
+ create_non_weighted_multisig_account(
1064
+ &account1,
1065
+ string::utf8(b"multisig wallet"),
1066
+ vector[addr1, addr1, addr2, addr3],
1067
+ 3
1068
+ );
1069
+ }
1070
+
1071
+ // test create weight multisig wallet successfully, check keys in object
1072
+ #[test(account1 = @0x101, account2 = @0x102, account3 = @0x103)]
1073
+ fun create_non_weighted_wallet_success(
1074
+ account1: signer, account2: signer, account3: signer
1075
+ ) acquires MultisigWallet {
1076
+ // create multisig wallet
1077
+ let addr1 = signer::address_of(&account1);
1078
+ let addr2 = signer::address_of(&account2);
1079
+ let addr3 = signer::address_of(&account3);
1080
+
1081
+ create_non_weighted_multisig_account(
1082
+ &account1,
1083
+ string::utf8(b"multisig wallet"),
1084
+ vector[addr1, addr2, addr3],
1085
+ 3
1086
+ );
1087
+
1088
+ let multisig_addr = get_multisig_address(
1089
+ &addr1, &string::utf8(b"multisig wallet")
1090
+ );
1091
+ let multisig_wallet = borrow_global<MultisigWallet>(multisig_addr);
1092
+ assert!(
1093
+ vector::length(&multisig_wallet.members) == 3,
1094
+ error::invalid_state(EINVALID_MEMBERS_LENGTH)
1095
+ );
1096
+
1097
+ // assert each member tier is correct
1098
+ vector::for_each_ref(
1099
+ &multisig_wallet.members,
1100
+ |member| {
1101
+ let m: &Member = member;
1102
+ assert!(option::is_none(&m.tier), 1)
1103
+ }
1104
+ );
1105
+
1106
+ assert!(
1107
+ multisig_wallet.threshold == 3,
1108
+ error::invalid_state(EINVALID_THRESHOLD)
1109
+ );
1110
+
1111
+ assert!(
1112
+ !multisig_wallet.weighted,
1113
+ error::invalid_state(1)
1114
+ );
1115
+ }
1116
+
1117
+ #[test(
1118
+ account1 = @0x101, account2 = @0x102, account3 = @0x103, account4 = @0x104
1119
+ )]
1120
+ #[expected_failure(abort_code = 0x50002, location = Self)]
1121
+ fun create_weighted_wallet_by_other(
1122
+ account1: signer,
1123
+ account2: signer,
1124
+ account3: signer,
1125
+ account4: signer
1126
+ ) {
1127
+ // create multisig wallet
1128
+ let addr1 = signer::address_of(&account1);
1129
+ let addr2 = signer::address_of(&account2);
1130
+ let addr3 = signer::address_of(&account3);
1131
+
1132
+ create_weighted_multisig_account(
1133
+ &account4,
1134
+ string::utf8(b"multisig wallet"),
1135
+ vector[string::utf8(b"admin"), string::utf8(b"member")],
1136
+ vector[2, 1],
1137
+ vector[addr1, addr2, addr3],
1138
+ vector[
1139
+ string::utf8(b"admin"),
1140
+ string::utf8(b"member"),
1141
+ string::utf8(b"member")
1142
+ ],
1143
+ 2
1144
+ );
1145
+ }
1146
+
1147
+ #[test(
1148
+ account1 = @0x101, account2 = @0x102, account3 = @0x103, account4 = @0x104
1149
+ )]
1150
+ #[expected_failure(abort_code = 0x10007, location = Self)]
1151
+ fun weighted_invalid_tiers_length(
1152
+ account1: signer, account2: signer, account3: signer
1153
+ ) {
1154
+ // create multisig wallet
1155
+ let addr1 = signer::address_of(&account1);
1156
+ let addr2 = signer::address_of(&account2);
1157
+ let addr3 = signer::address_of(&account3);
1158
+
1159
+ create_weighted_multisig_account(
1160
+ &account1,
1161
+ string::utf8(b"multisig wallet"),
1162
+ vector[string::utf8(b"admin"), string::utf8(b"member")],
1163
+ vector[2],
1164
+ vector[addr1, addr2, addr3],
1165
+ vector[
1166
+ string::utf8(b"admin"),
1167
+ string::utf8(b"member"),
1168
+ string::utf8(b"member")
1169
+ ],
1170
+ 2
1171
+ );
1172
+ }
1173
+
1174
+ #[test(
1175
+ account1 = @0x101, account2 = @0x102, account3 = @0x103, account4 = @0x104
1176
+ )]
1177
+ #[expected_failure(abort_code = 0x10008, location = Self)]
1178
+ fun weighted_invalid_members_length(
1179
+ account1: signer, account2: signer, account3: signer
1180
+ ) {
1181
+ // create multisig wallet
1182
+ let addr1 = signer::address_of(&account1);
1183
+ let addr2 = signer::address_of(&account2);
1184
+ let addr3 = signer::address_of(&account3);
1185
+
1186
+ create_weighted_multisig_account(
1187
+ &account1,
1188
+ string::utf8(b"multisig wallet"),
1189
+ vector[string::utf8(b"admin"), string::utf8(b"member")],
1190
+ vector[2, 1],
1191
+ vector[addr1, addr2, addr3],
1192
+ vector[string::utf8(b"admin"), string::utf8(b"member")],
1193
+ 2
1194
+ );
1195
+ }
1196
+
1197
+ #[test(
1198
+ account1 = @0x101, account2 = @0x102, account3 = @0x103, account4 = @0x104
1199
+ )]
1200
+ #[expected_failure(abort_code = 0x10009, location = Self)]
1201
+ fun weighted_invalid_members_tiers(
1202
+ account1: signer, account2: signer, account3: signer
1203
+ ) {
1204
+ // create multisig wallet
1205
+ let addr1 = signer::address_of(&account1);
1206
+ let addr2 = signer::address_of(&account2);
1207
+ let addr3 = signer::address_of(&account3);
1208
+
1209
+ create_weighted_multisig_account(
1210
+ &account1,
1211
+ string::utf8(b"multisig wallet"),
1212
+ vector[string::utf8(b"admin"), string::utf8(b"member")],
1213
+ vector[2, 1],
1214
+ vector[addr1, addr2, addr3],
1215
+ vector[
1216
+ string::utf8(b"admin"),
1217
+ string::utf8(b"member"),
1218
+ string::utf8(b"god")
1219
+ ],
1220
+ 2
1221
+ );
1222
+ }
1223
+
1224
+ #[test(
1225
+ account1 = @0x101, account2 = @0x102, account3 = @0x103, account4 = @0x104
1226
+ )]
1227
+ #[expected_failure(abort_code = 0x10001, location = Self)]
1228
+ fun weighted_invalid_threshold(
1229
+ account1: signer, account2: signer, account3: signer
1230
+ ) {
1231
+ // create multisig wallet
1232
+ let addr1 = signer::address_of(&account1);
1233
+ let addr2 = signer::address_of(&account2);
1234
+ let addr3 = signer::address_of(&account3);
1235
+
1236
+ create_weighted_multisig_account(
1237
+ &account1,
1238
+ string::utf8(b"multisig wallet"),
1239
+ vector[string::utf8(b"admin"), string::utf8(b"member")],
1240
+ vector[10, 1],
1241
+ vector[addr1, addr2, addr3],
1242
+ vector[
1243
+ string::utf8(b"admin"),
1244
+ string::utf8(b"admin"),
1245
+ string::utf8(b"member")
1246
+ ],
1247
+ 22
1248
+ );
1249
+ }
1250
+
1251
+ // test create weight multisig wallet successfully, check keys in object
1252
+ #[test(
1253
+ account1 = @0x101, account2 = @0x102, account3 = @0x103, account4 = @0x104
1254
+ )]
1255
+ fun create_weighted_wallet_success(
1256
+ account1: signer, account2: signer, account3: signer
1257
+ ) acquires MultisigWallet {
1258
+ // create multisig wallet
1259
+ let addr1 = signer::address_of(&account1);
1260
+ let addr2 = signer::address_of(&account2);
1261
+ let addr3 = signer::address_of(&account3);
1262
+
1263
+ let member_tiers = vector[
1264
+ string::utf8(b"admin"),
1265
+ string::utf8(b"member"),
1266
+ string::utf8(b"member")
1267
+ ];
1268
+
1269
+ create_weighted_multisig_account(
1270
+ &account1,
1271
+ string::utf8(b"multisig wallet"),
1272
+ vector[string::utf8(b"admin"), string::utf8(b"member")],
1273
+ vector[2, 1],
1274
+ vector[addr1, addr2, addr3],
1275
+ member_tiers,
1276
+ 2
1277
+ );
1278
+
1279
+ let multisig_addr = get_multisig_address(
1280
+ &addr1, &string::utf8(b"multisig wallet")
1281
+ );
1282
+ let multisig_wallet = borrow_global<MultisigWallet>(multisig_addr);
1283
+ assert!(
1284
+ vector::length(&multisig_wallet.members) == 3,
1285
+ error::invalid_state(EINVALID_MEMBERS_LENGTH)
1286
+ );
1287
+
1288
+ // assert each member tier is correct
1289
+ let index = 0;
1290
+ vector::for_each_ref(
1291
+ &multisig_wallet.members,
1292
+ |member| {
1293
+ let tier_name = *vector::borrow(&member_tiers, index);
1294
+ index = index + 1;
1295
+
1296
+ let m: &Member = member;
1297
+ let tier = option::borrow(&m.tier);
1298
+ assert!(tier_name == tier.name, 1)
1299
+ }
1300
+ );
1301
+
1302
+ // assert if multisig_wallet.tiers is not none and length is 2
1303
+ let tiers = option::borrow(&multisig_wallet.tiers);
1304
+ assert!(
1305
+ vector::length(tiers) == 2,
1306
+ error::invalid_state(EINVALID_TIERS_LENGTH)
1307
+ );
1308
+
1309
+ assert!(
1310
+ multisig_wallet.threshold == 2,
1311
+ error::invalid_state(EINVALID_THRESHOLD)
1312
+ );
1313
+
1314
+ assert!(
1315
+ multisig_wallet.weighted,
1316
+ error::invalid_state(1)
1317
+ );
1318
+ }
1319
+
1320
+ // test total_weight(members)
1321
+ #[test(account1 = @0x101, account2 = @0x102, account3 = @0x103)]
1322
+ fun total_weight_test(
1323
+ account1: signer, account2: signer, account3: signer
1324
+ ) acquires MultisigWallet {
1325
+ let addr1 = signer::address_of(&account1);
1326
+ let addr2 = signer::address_of(&account2);
1327
+ let addr3 = signer::address_of(&account3);
1328
+
1329
+ create_weighted_multisig_account(
1330
+ &account1,
1331
+ string::utf8(b"multisig wallet"),
1332
+ vector[string::utf8(b"admin"), string::utf8(b"member")],
1333
+ vector[2, 1],
1334
+ vector[addr1, addr2, addr3],
1335
+ vector[
1336
+ string::utf8(b"admin"),
1337
+ string::utf8(b"member"),
1338
+ string::utf8(b"member")
1339
+ ],
1340
+ 2
1341
+ );
1342
+
1343
+ let multisig_addr = get_multisig_address(
1344
+ &addr1, &string::utf8(b"multisig wallet")
1345
+ );
1346
+ let multisig_wallet = borrow_global<MultisigWallet>(multisig_addr);
1347
+
1348
+ let total_weight = total_weight(&multisig_wallet.members);
1349
+ assert!(total_weight == 4, 1);
1350
+ }
1351
+
1352
+ #[test(
1353
+ account1 = @0x101, account2 = @0x102, account3 = @0x103, account4 = @0x104
1354
+ )]
1355
+ #[expected_failure(abort_code = 0x50002, location = Self)]
1356
+ fun create_proposal_by_other(
1357
+ account1: signer,
1358
+ account2: signer,
1359
+ account3: signer,
1360
+ account4: signer
1361
+ ) acquires MultisigWallet {
1362
+ // create multisig wallet
1363
+ let addr1 = signer::address_of(&account1);
1364
+ let addr2 = signer::address_of(&account2);
1365
+ let addr3 = signer::address_of(&account3);
1366
+ let addr4 = signer::address_of(&account4);
1367
+
1368
+ create_non_weighted_multisig_account(
1369
+ &account1,
1370
+ string::utf8(b"multisig wallet"),
1371
+ vector[addr1, addr2, addr3],
1372
+ 2
1373
+ );
1374
+ let multisig_addr = get_multisig_address(
1375
+ &addr1, &string::utf8(b"multisig wallet")
1376
+ );
1377
+
1378
+ create_proposal(
1379
+ &account4,
1380
+ multisig_addr,
1381
+ vector[@initia_std],
1382
+ vector[string::utf8(b"multisig_v2")],
1383
+ vector[string::utf8(b"update_config")],
1384
+ vector[vector[]],
1385
+ vector[
1386
+ vector[
1387
+ std::bcs::to_bytes(&vector[addr1, addr2, addr4]),
1388
+ std::bcs::to_bytes(&3u64),
1389
+ std::bcs::to_bytes(&option::none<u64>()),
1390
+ std::bcs::to_bytes(&option::none<u64>())
1391
+ ]
1392
+ ],
1393
+ option::none()
1394
+ );
1395
+ }
1396
+
1397
+ #[test(
1398
+ account1 = @0x101, account2 = @0x102, account3 = @0x103, account4 = @0x104
1399
+ )]
1400
+ #[expected_failure(abort_code = 0x1000c, location = Self)]
1401
+ fun invalid_list_create_proposal(
1402
+ account1: signer,
1403
+ account2: signer,
1404
+ account3: signer,
1405
+ account4: signer
1406
+ ) acquires MultisigWallet {
1407
+ // create multisig wallet
1408
+ let addr1 = signer::address_of(&account1);
1409
+ let addr2 = signer::address_of(&account2);
1410
+ let addr3 = signer::address_of(&account3);
1411
+ let addr4 = signer::address_of(&account4);
1412
+
1413
+ create_non_weighted_multisig_account(
1414
+ &account1,
1415
+ string::utf8(b"multisig wallet"),
1416
+ vector[addr1, addr2, addr3],
1417
+ 2
1418
+ );
1419
+ let multisig_addr = get_multisig_address(
1420
+ &addr1, &string::utf8(b"multisig wallet")
1421
+ );
1422
+
1423
+ create_proposal(
1424
+ &account4,
1425
+ multisig_addr,
1426
+ vector[@initia_std],
1427
+ vector[string::utf8(b"multisig_v2"), string::utf8(b"multisig_v2")],
1428
+ vector[string::utf8(b"update_config")],
1429
+ vector[vector[]],
1430
+ vector[
1431
+ vector[
1432
+ std::bcs::to_bytes(&vector[addr1, addr2, addr4]),
1433
+ std::bcs::to_bytes(&3u64),
1434
+ std::bcs::to_bytes(&option::none<u64>()),
1435
+ std::bcs::to_bytes(&option::none<u64>())
1436
+ ]
1437
+ ],
1438
+ option::none()
1439
+ );
1440
+ }
1441
+
1442
+ #[test(
1443
+ account1 = @0x101, account2 = @0x102, account3 = @0x103, account4 = @0x104
1444
+ )]
1445
+ fun create_proposal_successfully(
1446
+ account1: signer,
1447
+ account2: signer,
1448
+ account3: signer,
1449
+ account4: signer
1450
+ ) acquires MultisigWallet {
1451
+ // create multisig wallet
1452
+ let addr1 = signer::address_of(&account1);
1453
+ let addr2 = signer::address_of(&account2);
1454
+ let addr3 = signer::address_of(&account3);
1455
+ let addr4 = signer::address_of(&account4);
1456
+
1457
+ create_non_weighted_multisig_account(
1458
+ &account1,
1459
+ string::utf8(b"multisig wallet"),
1460
+ vector[addr1, addr2, addr3],
1461
+ 2
1462
+ );
1463
+ let multisig_addr = get_multisig_address(
1464
+ &addr1, &string::utf8(b"multisig wallet")
1465
+ );
1466
+
1467
+ set_block_info(100, 100);
1468
+
1469
+ create_proposal(
1470
+ &account1,
1471
+ multisig_addr,
1472
+ vector[@initia_std],
1473
+ vector[string::utf8(b"multisig_v2")],
1474
+ vector[string::utf8(b"update_config")],
1475
+ vector[vector[]],
1476
+ vector[
1477
+ vector[
1478
+ std::bcs::to_bytes(&vector[addr1, addr2, addr4]),
1479
+ std::bcs::to_bytes(&3u64),
1480
+ std::bcs::to_bytes(&option::none<u64>()),
1481
+ std::bcs::to_bytes(&option::none<u64>())
1482
+ ]
1483
+ ],
1484
+ option::some(99)
1485
+ );
1486
+
1487
+ // borrow proposal from multisig wallet
1488
+ let multisig_wallet = borrow_global<MultisigWallet>(multisig_addr);
1489
+ let proposal = table::borrow(&multisig_wallet.proposals, 1);
1490
+
1491
+ let expected_votes = simple_map::create<Member, bool>();
1492
+ simple_map::add(
1493
+ &mut expected_votes,
1494
+ get_member_by_address(multisig_wallet.members, addr1),
1495
+ true
1496
+ );
1497
+
1498
+ assert!(
1499
+ proposal.proposer == get_member_by_address(multisig_wallet.members, addr1),
1500
+ 1
1501
+ );
1502
+ assert!(proposal.proposed_height == 100, 1);
1503
+ assert!(proposal.proposed_timestamp == 100, 1);
1504
+ assert!(
1505
+ *option::borrow(&proposal.expiry_timestamp) == 199,
1506
+ 1
1507
+ );
1508
+ assert!(proposal.status == 0, 1);
1509
+ assert!(proposal.is_json == false, 1);
1510
+
1511
+ let execute_message = vector::borrow(&proposal.execute_messages, 0);
1512
+ assert!(vector::length(&execute_message.json_args) == 0, 1);
1513
+ assert!(
1514
+ &execute_message.args
1515
+ == &vector[
1516
+ std::bcs::to_bytes(&vector[addr1, addr2, addr4]),
1517
+ std::bcs::to_bytes(&3u64),
1518
+ std::bcs::to_bytes(&option::none<u64>()),
1519
+ std::bcs::to_bytes(&option::none<u64>())
1520
+ ],
1521
+ 1
1522
+ );
1523
+
1524
+ assert!(vector::length(&execute_message.type_args) == 0, 1);
1525
+ assert!(execute_message.module_address == @initia_std, 1);
1526
+ assert!(
1527
+ execute_message.module_name == string::utf8(b"multisig_v2"),
1528
+ 1
1529
+ );
1530
+ assert!(
1531
+ execute_message.function_name == string::utf8(b"update_config"),
1532
+ 1
1533
+ );
1534
+ assert!(
1535
+ proposal.threshold == multisig_wallet.threshold,
1536
+ 1
1537
+ );
1538
+ assert!(proposal.total_weight == 3, 1);
1539
+ assert!(
1540
+ yes_vote_score(&proposal.votes, &multisig_wallet.members) == 1,
1541
+ 1
1542
+ );
1543
+ }
1544
+
1545
+ // test proposal_to_proposal_response for weight multisig wallet
1546
+ #[test(
1547
+ account1 = @0x101, account2 = @0x102, account3 = @0x103, account4 = @0x104
1548
+ )]
1549
+ fun proposal_to_proposal_response_weighted(
1550
+ account1: signer,
1551
+ account2: signer,
1552
+ account3: signer,
1553
+ account4: signer
1554
+ ) acquires MultisigWallet {
1555
+ // create multisig wallet
1556
+ let addr1 = signer::address_of(&account1);
1557
+ let addr2 = signer::address_of(&account2);
1558
+ let addr3 = signer::address_of(&account3);
1559
+ let addr4 = signer::address_of(&account4);
1560
+
1561
+ create_weighted_multisig_account(
1562
+ &account1,
1563
+ string::utf8(b"multisig wallet"),
1564
+ vector[string::utf8(b"admin"), string::utf8(b"member")],
1565
+ vector[2, 1],
1566
+ vector[addr1, addr2, addr3],
1567
+ vector[
1568
+ string::utf8(b"admin"),
1569
+ string::utf8(b"member"),
1570
+ string::utf8(b"member")
1571
+ ],
1572
+ 2
1573
+ );
1574
+ let multisig_addr = get_multisig_address(
1575
+ &addr1, &string::utf8(b"multisig wallet")
1576
+ );
1577
+
1578
+ set_block_info(100, 100);
1579
+
1580
+ create_proposal(
1581
+ &account1,
1582
+ multisig_addr,
1583
+ vector[@initia_std],
1584
+ vector[string::utf8(b"multisig_v2")],
1585
+ vector[string::utf8(b"update_config")],
1586
+ vector[vector[]],
1587
+ vector[
1588
+ vector[
1589
+ std::bcs::to_bytes(&vector[addr1, addr2, addr4]),
1590
+ std::bcs::to_bytes(&3u64),
1591
+ std::bcs::to_bytes(&option::none<u64>()),
1592
+ std::bcs::to_bytes(&option::none<u64>())
1593
+ ]
1594
+ ],
1595
+ option::some(99)
1596
+ );
1597
+
1598
+ let multisig_wallet = borrow_global<MultisigWallet>(multisig_addr);
1599
+ let proposal = table::borrow(&multisig_wallet.proposals, 1);
1600
+
1601
+ let proposal_response =
1602
+ proposal_to_proposal_response(multisig_wallet, multisig_addr, 1, proposal);
1603
+
1604
+ let expected_proposal_response = ProposalResponse {
1605
+ multisig_addr,
1606
+ proposal_id: 1,
1607
+ proposer: get_member_by_address(multisig_wallet.members, addr1),
1608
+ proposed_height: 100,
1609
+ proposed_timestamp: 100,
1610
+ expiry_timestamp: option::some(199),
1611
+ votes: proposal.votes,
1612
+ threshold: 2,
1613
+ total_weight: 4,
1614
+ yes_vote_score: 2,
1615
+ status: string::utf8(b"voting"),
1616
+ is_json: false,
1617
+ execute_messages: vector[
1618
+ ExecuteMessage {
1619
+ module_address: @initia_std,
1620
+ module_name: string::utf8(b"multisig_v2"),
1621
+ function_name: string::utf8(b"update_config"),
1622
+ type_args: vector[],
1623
+ args: vector[
1624
+ std::bcs::to_bytes(&vector[addr1, addr2, addr4]),
1625
+ std::bcs::to_bytes(&3u64),
1626
+ std::bcs::to_bytes(&option::none<u64>()),
1627
+ std::bcs::to_bytes(&option::none<u64>())
1628
+ ],
1629
+ json_args: vector[]
1630
+ }
1631
+ ]
1632
+ };
1633
+
1634
+ assert!(
1635
+ proposal_response == expected_proposal_response,
1636
+ 1
1637
+ );
1638
+ }
1639
+
1640
+ #[test(account1 = @0x101, account2 = @0x102, account3 = @0x103)]
1641
+ fun proposal_with_json(
1642
+ account1: signer, account2: signer, account3: signer
1643
+ ) acquires MultisigWallet {
1644
+ // create multisig wallet
1645
+ let addr1 = signer::address_of(&account1);
1646
+ let addr2 = signer::address_of(&account2);
1647
+ let addr3 = signer::address_of(&account3);
1648
+
1649
+ create_non_weighted_multisig_account(
1650
+ &account1,
1651
+ string::utf8(b"multisig wallet"),
1652
+ vector[addr1, addr2, addr3],
1653
+ 2
1654
+ );
1655
+ let multisig_addr = get_multisig_address(
1656
+ &addr1, &string::utf8(b"multisig wallet")
1657
+ );
1658
+
1659
+ create_proposal_with_json(
1660
+ &account1,
1661
+ multisig_addr,
1662
+ vector[@initia_std],
1663
+ vector[string::utf8(b"multisig_v2")],
1664
+ vector[string::utf8(b"update_config")],
1665
+ vector[vector[]],
1666
+ vector[
1667
+ vector[
1668
+ string::utf8(b"[\"0x101\", \"0x102\", \"0x104\"]"),
1669
+ string::utf8(b"\"3\""),
1670
+ string::utf8(b""),
1671
+ string::utf8(b"")
1672
+ ]
1673
+ ],
1674
+ option::some(99)
1675
+ );
1676
+
1677
+ let proposal = get_proposal(multisig_addr, 1);
1678
+ let execute_message = vector::borrow(&proposal.execute_messages, 0);
1679
+
1680
+ assert!(execute_message.module_address == @initia_std, 0);
1681
+ assert!(
1682
+ execute_message.module_name == string::utf8(b"multisig_v2"),
1683
+ 1
1684
+ );
1685
+ assert!(
1686
+ execute_message.function_name == string::utf8(b"update_config"),
1687
+ 2
1688
+ );
1689
+ assert!(execute_message.type_args == vector[], 3);
1690
+ assert!(
1691
+ execute_message.json_args
1692
+ == vector[
1693
+ string::utf8(b"[\"0x101\", \"0x102\", \"0x104\"]"),
1694
+ string::utf8(b"\"3\""),
1695
+ string::utf8(b""),
1696
+ string::utf8(b"")
1697
+ ],
1698
+ 4
1699
+ );
1700
+ assert!(execute_message.args == vector[], 5);
1701
+ }
1702
+
1703
+ #[test(
1704
+ account1 = @0x101, account2 = @0x102, account3 = @0x103, account4 = @0x104
1705
+ )]
1706
+ #[expected_failure(abort_code = 0x50002, location = Self)]
1707
+ fun vote_by_other(
1708
+ account1: signer,
1709
+ account2: signer,
1710
+ account3: signer,
1711
+ account4: signer
1712
+ ) acquires MultisigWallet {
1713
+ // create multisig wallet
1714
+ let addr1 = signer::address_of(&account1);
1715
+ let addr2 = signer::address_of(&account2);
1716
+ let addr3 = signer::address_of(&account3);
1717
+ let addr4 = signer::address_of(&account4);
1718
+
1719
+ create_non_weighted_multisig_account(
1720
+ &account1,
1721
+ string::utf8(b"multisig wallet"),
1722
+ vector[addr1, addr2, addr3],
1723
+ 2
1724
+ );
1725
+
1726
+ let multisig_addr = get_multisig_address(
1727
+ &addr1, &string::utf8(b"multisig wallet")
1728
+ );
1729
+
1730
+ set_block_info(100, 100);
1731
+ create_proposal(
1732
+ &account1,
1733
+ multisig_addr,
1734
+ vector[@initia_std],
1735
+ vector[string::utf8(b"multisig_v2")],
1736
+ vector[string::utf8(b"update_config")],
1737
+ vector[vector[]],
1738
+ vector[
1739
+ vector[
1740
+ std::bcs::to_bytes(&vector[addr1, addr2, addr4]),
1741
+ std::bcs::to_bytes(&3u64),
1742
+ std::bcs::to_bytes(&option::none<u64>()),
1743
+ std::bcs::to_bytes(&option::none<u64>())
1744
+ ]
1745
+ ],
1746
+ option::some(99)
1747
+ );
1748
+
1749
+ vote_proposal(&account4, multisig_addr, 1, true);
1750
+ }
1751
+
1752
+ #[test(
1753
+ account1 = @0x101, account2 = @0x102, account3 = @0x103, account4 = @0x104
1754
+ )]
1755
+ #[expected_failure(abort_code = 0x30004, location = Self)]
1756
+ fun vote_after_proposal_expired(
1757
+ account1: signer,
1758
+ account2: signer,
1759
+ account3: signer,
1760
+ account4: signer
1761
+ ) acquires MultisigWallet {
1762
+ // create multisig wallet
1763
+ let addr1 = signer::address_of(&account1);
1764
+ let addr2 = signer::address_of(&account2);
1765
+ let addr3 = signer::address_of(&account3);
1766
+ let addr4 = signer::address_of(&account4);
1767
+
1768
+ create_non_weighted_multisig_account(
1769
+ &account1,
1770
+ string::utf8(b"multisig wallet"),
1771
+ vector[addr1, addr2, addr3],
1772
+ 2
1773
+ );
1774
+ let multisig_addr = get_multisig_address(
1775
+ &addr1, &string::utf8(b"multisig wallet")
1776
+ );
1777
+
1778
+ set_block_info(100, 100);
1779
+ create_proposal(
1780
+ &account1,
1781
+ multisig_addr,
1782
+ vector[@initia_std],
1783
+ vector[string::utf8(b"multisig_v2")],
1784
+ vector[string::utf8(b"update_config")],
1785
+ vector[vector[]],
1786
+ vector[
1787
+ vector[
1788
+ std::bcs::to_bytes(&vector[addr1, addr2, addr4]),
1789
+ std::bcs::to_bytes(&3u64),
1790
+ std::bcs::to_bytes(&option::none<u64>()),
1791
+ std::bcs::to_bytes(&option::none<u64>())
1792
+ ]
1793
+ ],
1794
+ option::some(99)
1795
+ );
1796
+
1797
+ set_block_info(100, 199);
1798
+ vote_proposal(&account2, multisig_addr, 1, true);
1799
+ }
1800
+
1801
+ #[test(
1802
+ account1 = @0x101, account2 = @0x102, account3 = @0x103, account4 = @0x104
1803
+ )]
1804
+ fun vote_proposal_of_non_weighted_multisig_successfully(
1805
+ account1: signer,
1806
+ account2: signer,
1807
+ account3: signer,
1808
+ account4: signer
1809
+ ) acquires MultisigWallet {
1810
+ // create multisig wallet
1811
+ let addr1 = signer::address_of(&account1);
1812
+ let addr2 = signer::address_of(&account2);
1813
+ let addr3 = signer::address_of(&account3);
1814
+ let addr4 = signer::address_of(&account4);
1815
+
1816
+ create_non_weighted_multisig_account(
1817
+ &account1,
1818
+ string::utf8(b"multisig wallet"),
1819
+ vector[addr1, addr2, addr3],
1820
+ 2
1821
+ );
1822
+ let multisig_addr = get_multisig_address(
1823
+ &addr1, &string::utf8(b"multisig wallet")
1824
+ );
1825
+
1826
+ set_block_info(100, 100);
1827
+ create_proposal(
1828
+ &account1,
1829
+ multisig_addr,
1830
+ vector[@initia_std],
1831
+ vector[string::utf8(b"multisig_v2")],
1832
+ vector[string::utf8(b"update_config")],
1833
+ vector[vector[]],
1834
+ vector[
1835
+ vector[
1836
+ std::bcs::to_bytes(&vector[addr1, addr2, addr4]),
1837
+ std::bcs::to_bytes(&3u64),
1838
+ std::bcs::to_bytes(&option::none<u64>()),
1839
+ std::bcs::to_bytes(&option::none<u64>())
1840
+ ]
1841
+ ],
1842
+ option::some(99)
1843
+ );
1844
+
1845
+ vote_proposal(&account1, multisig_addr, 1, true);
1846
+ vote_proposal(&account2, multisig_addr, 1, false);
1847
+ vote_proposal(&account3, multisig_addr, 1, true);
1848
+
1849
+ let multisig_wallet = borrow_global<MultisigWallet>(multisig_addr);
1850
+ let proposal = table::borrow(&multisig_wallet.proposals, 1);
1851
+ let proposal_response =
1852
+ proposal_to_proposal_response(multisig_wallet, multisig_addr, 1, proposal);
1853
+
1854
+ let expected_votes =
1855
+ create_votes_map(
1856
+ multisig_wallet.members,
1857
+ vector[true, false, true]
1858
+ );
1859
+
1860
+ assert!(proposal_response.votes == expected_votes, 1);
1861
+
1862
+ assert!(proposal_response.yes_vote_score == 2, 1);
1863
+
1864
+ assert!(proposal_response.total_weight == 3, 1);
1865
+ }
1866
+
1867
+ #[test(
1868
+ account1 = @0x101, account2 = @0x102, account3 = @0x103, account4 = @0x104
1869
+ )]
1870
+ fun vote_proposal_of_weighted_multisig_successfully(
1871
+ account1: signer,
1872
+ account2: signer,
1873
+ account3: signer,
1874
+ account4: signer
1875
+ ) acquires MultisigWallet {
1876
+ // create multisig wallet
1877
+ let addr1 = signer::address_of(&account1);
1878
+ let addr2 = signer::address_of(&account2);
1879
+ let addr3 = signer::address_of(&account3);
1880
+ let addr4 = signer::address_of(&account4);
1881
+
1882
+ create_weighted_multisig_account(
1883
+ &account1,
1884
+ string::utf8(b"multisig wallet"),
1885
+ vector[string::utf8(b"admin"), string::utf8(b"member")],
1886
+ vector[2, 1],
1887
+ vector[addr1, addr2, addr3],
1888
+ vector[
1889
+ string::utf8(b"admin"),
1890
+ string::utf8(b"member"),
1891
+ string::utf8(b"member")
1892
+ ],
1893
+ 2
1894
+ );
1895
+ let multisig_addr = get_multisig_address(
1896
+ &addr1, &string::utf8(b"multisig wallet")
1897
+ );
1898
+
1899
+ set_block_info(100, 100);
1900
+ create_proposal(
1901
+ &account1,
1902
+ multisig_addr,
1903
+ vector[@initia_std],
1904
+ vector[string::utf8(b"multisig_v2")],
1905
+ vector[string::utf8(b"update_config")],
1906
+ vector[vector[]],
1907
+ vector[
1908
+ vector[
1909
+ std::bcs::to_bytes(&vector[addr1, addr2, addr4]),
1910
+ std::bcs::to_bytes(&3u64),
1911
+ std::bcs::to_bytes(&option::none<u64>()),
1912
+ std::bcs::to_bytes(&option::none<u64>())
1913
+ ]
1914
+ ],
1915
+ option::some(99)
1916
+ );
1917
+
1918
+ vote_proposal(&account1, multisig_addr, 1, true);
1919
+ vote_proposal(&account2, multisig_addr, 1, false);
1920
+ vote_proposal(&account3, multisig_addr, 1, true);
1921
+
1922
+ let multisig_wallet = borrow_global<MultisigWallet>(multisig_addr);
1923
+ let proposal = table::borrow(&multisig_wallet.proposals, 1);
1924
+ let proposal_response =
1925
+ proposal_to_proposal_response(multisig_wallet, multisig_addr, 1, proposal);
1926
+
1927
+ let expected_votes =
1928
+ create_votes_map(
1929
+ multisig_wallet.members,
1930
+ vector[true, false, true]
1931
+ );
1932
+
1933
+ assert!(proposal_response.votes == expected_votes, 1);
1934
+
1935
+ assert!(proposal_response.yes_vote_score == 3, 1);
1936
+
1937
+ assert!(proposal_response.total_weight == 4, 1);
1938
+ }
1939
+
1940
+ #[test(
1941
+ account1 = @0x101, account2 = @0x102, account3 = @0x103, account4 = @0x104
1942
+ )]
1943
+ #[expected_failure(abort_code = 0x50002, location = Self)]
1944
+ fun execute_by_others(
1945
+ account1: signer,
1946
+ account2: signer,
1947
+ account3: signer,
1948
+ account4: signer
1949
+ ) acquires MultisigWallet {
1950
+ // create multisig wallet
1951
+ let addr1 = signer::address_of(&account1);
1952
+ let addr2 = signer::address_of(&account2);
1953
+ let addr3 = signer::address_of(&account3);
1954
+ let addr4 = signer::address_of(&account4);
1955
+
1956
+ create_non_weighted_multisig_account(
1957
+ &account1,
1958
+ string::utf8(b"multisig wallet"),
1959
+ vector[addr1, addr2, addr3],
1960
+ 2
1961
+ );
1962
+ let multisig_addr = get_multisig_address(
1963
+ &addr1, &string::utf8(b"multisig wallet")
1964
+ );
1965
+
1966
+ create_proposal(
1967
+ &account1,
1968
+ multisig_addr,
1969
+ vector[@initia_std],
1970
+ vector[string::utf8(b"multisig_v2")],
1971
+ vector[string::utf8(b"update_config")],
1972
+ vector[vector[]],
1973
+ vector[
1974
+ vector[
1975
+ std::bcs::to_bytes(&vector[addr1, addr2, addr4]),
1976
+ std::bcs::to_bytes(&3u64),
1977
+ std::bcs::to_bytes(&option::none<u64>()),
1978
+ std::bcs::to_bytes(&option::none<u64>())
1979
+ ]
1980
+ ],
1981
+ option::some(99)
1982
+ );
1983
+
1984
+ vote_proposal(&account1, multisig_addr, 1, true);
1985
+ vote_proposal(&account2, multisig_addr, 1, false);
1986
+ vote_proposal(&account3, multisig_addr, 1, false);
1987
+
1988
+ execute_proposal(&account4, multisig_addr, 1);
1989
+ }
1990
+
1991
+ #[test(
1992
+ account1 = @0x101, account2 = @0x102, account3 = @0x103, account4 = @0x104
1993
+ )]
1994
+ #[expected_failure(abort_code = 0x10006, location = Self)]
1995
+ fun execute_on_a_non_existing_proposal(
1996
+ account1: signer,
1997
+ account2: signer,
1998
+ account3: signer,
1999
+ account4: signer
2000
+ ) acquires MultisigWallet {
2001
+ // create multisig wallet
2002
+ let addr1 = signer::address_of(&account1);
2003
+ let addr2 = signer::address_of(&account2);
2004
+ let addr3 = signer::address_of(&account3);
2005
+ let addr4 = signer::address_of(&account4);
2006
+
2007
+ create_non_weighted_multisig_account(
2008
+ &account1,
2009
+ string::utf8(b"multisig wallet"),
2010
+ vector[addr1, addr2, addr3],
2011
+ 2
2012
+ );
2013
+ let multisig_addr = get_multisig_address(
2014
+ &addr1, &string::utf8(b"multisig wallet")
2015
+ );
2016
+
2017
+ create_proposal(
2018
+ &account1,
2019
+ multisig_addr,
2020
+ vector[@initia_std],
2021
+ vector[string::utf8(b"multisig_v2")],
2022
+ vector[string::utf8(b"update_config")],
2023
+ vector[vector[]],
2024
+ vector[
2025
+ vector[
2026
+ std::bcs::to_bytes(&vector[addr1, addr2, addr4]),
2027
+ std::bcs::to_bytes(&3u64),
2028
+ std::bcs::to_bytes(&option::none<u64>()),
2029
+ std::bcs::to_bytes(&option::none<u64>())
2030
+ ]
2031
+ ],
2032
+ option::some(99)
2033
+ );
2034
+
2035
+ execute_proposal(&account1, multisig_addr, 2);
2036
+ }
2037
+
2038
+ #[test(
2039
+ account1 = @0x101, account2 = @0x102, account3 = @0x103, account4 = @0x104
2040
+ )]
2041
+ #[expected_failure(abort_code = 0x30005, location = Self)]
2042
+ fun non_weighted_multisig_execute_not_pass(
2043
+ account1: signer,
2044
+ account2: signer,
2045
+ account3: signer,
2046
+ account4: signer
2047
+ ) acquires MultisigWallet {
2048
+ // create multisig wallet
2049
+ let addr1 = signer::address_of(&account1);
2050
+ let addr2 = signer::address_of(&account2);
2051
+ let addr3 = signer::address_of(&account3);
2052
+ let addr4 = signer::address_of(&account4);
2053
+
2054
+ create_non_weighted_multisig_account(
2055
+ &account1,
2056
+ string::utf8(b"multisig wallet"),
2057
+ vector[addr1, addr2, addr3],
2058
+ 2
2059
+ );
2060
+ let multisig_addr = get_multisig_address(
2061
+ &addr1, &string::utf8(b"multisig wallet")
2062
+ );
2063
+
2064
+ create_proposal(
2065
+ &account1,
2066
+ multisig_addr,
2067
+ vector[@initia_std],
2068
+ vector[string::utf8(b"multisig_v2")],
2069
+ vector[string::utf8(b"update_config")],
2070
+ vector[vector[]],
2071
+ vector[
2072
+ vector[
2073
+ std::bcs::to_bytes(&vector[addr1, addr2, addr4]),
2074
+ std::bcs::to_bytes(&3u64),
2075
+ std::bcs::to_bytes(&option::none<u64>()),
2076
+ std::bcs::to_bytes(&option::none<u64>())
2077
+ ]
2078
+ ],
2079
+ option::some(99)
2080
+ );
2081
+
2082
+ vote_proposal(&account1, multisig_addr, 1, true);
2083
+ vote_proposal(&account2, multisig_addr, 1, false);
2084
+ vote_proposal(&account3, multisig_addr, 1, false);
2085
+
2086
+ execute_proposal(&account1, multisig_addr, 1);
2087
+ }
2088
+
2089
+ #[test(
2090
+ account1 = @0x101, account2 = @0x102, account3 = @0x103, account4 = @0x104
2091
+ )]
2092
+ #[expected_failure(abort_code = 0x30005, location = Self)]
2093
+ fun weighted_multisig_execute_not_pass(
2094
+ account1: signer,
2095
+ account2: signer,
2096
+ account3: signer,
2097
+ account4: signer
2098
+ ) acquires MultisigWallet {
2099
+ // create multisig wallet
2100
+ let addr1 = signer::address_of(&account1);
2101
+ let addr2 = signer::address_of(&account2);
2102
+ let addr3 = signer::address_of(&account3);
2103
+ let addr4 = signer::address_of(&account4);
2104
+
2105
+ create_weighted_multisig_account(
2106
+ &account1,
2107
+ string::utf8(b"multisig wallet"),
2108
+ vector[string::utf8(b"admin"), string::utf8(b"member")],
2109
+ vector[3, 2],
2110
+ vector[addr1, addr2, addr3],
2111
+ vector[
2112
+ string::utf8(b"admin"),
2113
+ string::utf8(b"member"),
2114
+ string::utf8(b"member")
2115
+ ],
2116
+ 6
2117
+ );
2118
+
2119
+ let multisig_addr = get_multisig_address(
2120
+ &addr1, &string::utf8(b"multisig wallet")
2121
+ );
2122
+
2123
+ create_proposal(
2124
+ &account1,
2125
+ multisig_addr,
2126
+ vector[@initia_std],
2127
+ vector[string::utf8(b"multisig_v2")],
2128
+ vector[string::utf8(b"update_config")],
2129
+ vector[vector[]],
2130
+ vector[
2131
+ vector[
2132
+ std::bcs::to_bytes(&vector[addr1, addr2, addr4]),
2133
+ std::bcs::to_bytes(&3u64),
2134
+ std::bcs::to_bytes(&option::none<u64>()),
2135
+ std::bcs::to_bytes(&option::none<u64>())
2136
+ ]
2137
+ ],
2138
+ option::some(99)
2139
+ );
2140
+
2141
+ vote_proposal(&account1, multisig_addr, 1, true);
2142
+ vote_proposal(&account2, multisig_addr, 1, false);
2143
+ vote_proposal(&account3, multisig_addr, 1, true);
2144
+
2145
+ execute_proposal(&account1, multisig_addr, 1);
2146
+ }
2147
+
2148
+ #[test(
2149
+ account1 = @0x101, account2 = @0x102, account3 = @0x103, account4 = @0x104
2150
+ )]
2151
+ fun execute_pass_successfully(
2152
+ account1: signer,
2153
+ account2: signer,
2154
+ account3: signer,
2155
+ account4: signer
2156
+ ) acquires MultisigWallet {
2157
+ // create multisig wallet
2158
+ let addr1 = signer::address_of(&account1);
2159
+ let addr2 = signer::address_of(&account2);
2160
+ let addr3 = signer::address_of(&account3);
2161
+ let addr4 = signer::address_of(&account4);
2162
+
2163
+ create_weighted_multisig_account(
2164
+ &account1,
2165
+ string::utf8(b"multisig wallet"),
2166
+ vector[string::utf8(b"admin"), string::utf8(b"member")],
2167
+ vector[3, 2],
2168
+ vector[addr1, addr2, addr3],
2169
+ vector[
2170
+ string::utf8(b"admin"),
2171
+ string::utf8(b"member"),
2172
+ string::utf8(b"member")
2173
+ ],
2174
+ 5
2175
+ );
2176
+
2177
+ let multisig_addr = get_multisig_address(
2178
+ &addr1, &string::utf8(b"multisig wallet")
2179
+ );
2180
+
2181
+ create_proposal(
2182
+ &account1,
2183
+ multisig_addr,
2184
+ vector[@initia_std],
2185
+ vector[string::utf8(b"multisig_v2")],
2186
+ vector[string::utf8(b"update_config")],
2187
+ vector[vector[]],
2188
+ vector[
2189
+ vector[
2190
+ std::bcs::to_bytes(&vector[addr1, addr2, addr4]),
2191
+ std::bcs::to_bytes(&3u64),
2192
+ std::bcs::to_bytes(&option::none<u64>()),
2193
+ std::bcs::to_bytes(&option::none<u64>())
2194
+ ]
2195
+ ],
2196
+ option::some(99)
2197
+ );
2198
+
2199
+ vote_proposal(&account1, multisig_addr, 1, true);
2200
+ vote_proposal(&account2, multisig_addr, 1, false);
2201
+ vote_proposal(&account3, multisig_addr, 1, true);
2202
+
2203
+ execute_proposal(&account1, multisig_addr, 1);
2204
+ }
2205
+
2206
+ #[test(account1 = @0x101, account2 = @0x102, account3 = @0x103)]
2207
+ #[expected_failure(abort_code = 0x10001, location = simple_map)]
2208
+ fun update_config_duplicate_members(
2209
+ account1: signer, account2: signer, account3: signer
2210
+ ) acquires MultisigWallet {
2211
+ // create multisig wallet
2212
+ let addr1 = signer::address_of(&account1);
2213
+ let addr2 = signer::address_of(&account2);
2214
+ let addr3 = signer::address_of(&account3);
2215
+
2216
+ create_non_weighted_multisig_account(
2217
+ &account1,
2218
+ string::utf8(b"multisig wallet"),
2219
+ vector[addr1, addr2, addr3],
2220
+ 2
2221
+ );
2222
+ let multisig_addr = get_multisig_address(
2223
+ &addr1, &string::utf8(b"multisig wallet")
2224
+ );
2225
+ let multisig_wallet = borrow_global<MultisigWallet>(multisig_addr);
2226
+ let multisig_signer =
2227
+ &object::generate_signer_for_extending(&multisig_wallet.extend_ref);
2228
+
2229
+ update_config(
2230
+ multisig_signer,
2231
+ vector[addr1, addr2, addr3, addr3],
2232
+ option::none(),
2233
+ option::none(),
2234
+ option::none(),
2235
+ 3
2236
+ );
2237
+ }
2238
+
2239
+ #[test(account1 = @0x101, account2 = @0x102, account3 = @0x103)]
2240
+ #[expected_failure(abort_code = 0x10001, location = Self)]
2241
+ fun update_config_non_weighted_invalid_threshold(
2242
+ account1: signer, account2: signer, account3: signer
2243
+ ) acquires MultisigWallet {
2244
+ // create multisig wallet
2245
+ let addr1 = signer::address_of(&account1);
2246
+ let addr2 = signer::address_of(&account2);
2247
+ let addr3 = signer::address_of(&account3);
2248
+
2249
+ create_non_weighted_multisig_account(
2250
+ &account1,
2251
+ string::utf8(b"multisig wallet"),
2252
+ vector[addr1, addr2, addr3],
2253
+ 4
2254
+ );
2255
+ let multisig_addr = get_multisig_address(
2256
+ &addr1, &string::utf8(b"multisig wallet")
2257
+ );
2258
+ let multisig_wallet = borrow_global<MultisigWallet>(multisig_addr);
2259
+ let multisig_signer =
2260
+ &object::generate_signer_for_extending(&multisig_wallet.extend_ref);
2261
+
2262
+ update_config(
2263
+ multisig_signer,
2264
+ vector[addr1, addr2, addr3, addr3],
2265
+ option::none(),
2266
+ option::none(),
2267
+ option::none(),
2268
+ 3
2269
+ );
2270
+ }
2271
+
2272
+ #[test(account1 = @0x101, account2 = @0x102, account3 = @0x103)]
2273
+ fun update_config_non_weighted_successfully(
2274
+ account1: signer, account2: signer, account3: signer
2275
+ ) acquires MultisigWallet {
2276
+ // create multisig wallet
2277
+ let addr1 = signer::address_of(&account1);
2278
+ let addr2 = signer::address_of(&account2);
2279
+ let addr3 = signer::address_of(&account3);
2280
+
2281
+ create_non_weighted_multisig_account(
2282
+ &account1,
2283
+ string::utf8(b"multisig wallet"),
2284
+ vector[addr1, addr2, addr3],
2285
+ 2
2286
+ );
2287
+
2288
+ let multisig_addr = get_multisig_address(
2289
+ &addr1, &string::utf8(b"multisig wallet")
2290
+ );
2291
+
2292
+ set_block_info(100, 100);
2293
+
2294
+ // proposal 1 : active proposal with votes from addr1, addr2, addr3
2295
+ create_proposal(
2296
+ &account1,
2297
+ multisig_addr,
2298
+ vector[@initia_std],
2299
+ vector[string::utf8(b"multisig_v2")],
2300
+ vector[string::utf8(b"update_config")],
2301
+ vector[vector[]],
2302
+ vector[
2303
+ vector[
2304
+ std::bcs::to_bytes(&vector[addr1, addr2, addr3]), std::bcs::to_bytes(
2305
+ &3u64
2306
+ ), std::bcs::to_bytes(&option::none<u64>()), std::bcs::to_bytes(
2307
+ &option::none<u64>()
2308
+ ), std::bcs::to_bytes(&option::none<u64>())
2309
+ ]
2310
+ ],
2311
+ option::some(99)
2312
+ );
2313
+
2314
+ // vote on proposal 1 without execution
2315
+ vote_proposal(&account1, multisig_addr, 1, true);
2316
+ vote_proposal(&account2, multisig_addr, 1, false);
2317
+ vote_proposal(&account3, multisig_addr, 1, true);
2318
+
2319
+ // proposal 2 : expired proposal with votes from addr1, addr2, addr3
2320
+ create_proposal(
2321
+ &account1,
2322
+ multisig_addr,
2323
+ vector[@initia_std],
2324
+ vector[string::utf8(b"multisig_v2")],
2325
+ vector[string::utf8(b"update_config")],
2326
+ vector[vector[]],
2327
+ vector[
2328
+ vector[
2329
+ std::bcs::to_bytes(&vector[addr1, addr2, addr3]),
2330
+ std::bcs::to_bytes(&3u64),
2331
+ std::bcs::to_bytes(&option::none<u64>()),
2332
+ std::bcs::to_bytes(&option::none<u64>())
2333
+ ]
2334
+ ],
2335
+ option::some(1)
2336
+ );
2337
+
2338
+ // vote on proposal 2 without execution
2339
+ vote_proposal(&account1, multisig_addr, 2, false);
2340
+ vote_proposal(&account2, multisig_addr, 2, false);
2341
+ vote_proposal(&account3, multisig_addr, 2, true);
2342
+
2343
+ // proposal 2 is now expired
2344
+ set_block_info(100, 110);
2345
+
2346
+ // proposal 3 : executed proposal with votes from addr1, addr2, addr3
2347
+ create_proposal(
2348
+ &account1,
2349
+ multisig_addr,
2350
+ vector[@initia_std],
2351
+ vector[string::utf8(b"multisig_v2")],
2352
+ vector[string::utf8(b"update_config")],
2353
+ vector[vector[]],
2354
+ vector[
2355
+ vector[
2356
+ std::bcs::to_bytes(&vector[addr1, addr2, addr3]),
2357
+ std::bcs::to_bytes(&3u64),
2358
+ std::bcs::to_bytes(&option::none<u64>()),
2359
+ std::bcs::to_bytes(&option::none<u64>())
2360
+ ]
2361
+ ],
2362
+ option::some(99)
2363
+ );
2364
+
2365
+ // vote on proposal 3 with execution
2366
+ vote_proposal(&account1, multisig_addr, 3, true);
2367
+ vote_proposal(&account2, multisig_addr, 3, false);
2368
+ vote_proposal(&account3, multisig_addr, 3, true);
2369
+ execute_proposal(&account1, multisig_addr, 3);
2370
+
2371
+ // update_config
2372
+ let multisig_wallet = borrow_global<MultisigWallet>(multisig_addr);
2373
+ let multisig_signer =
2374
+ &object::generate_signer_for_extending(&multisig_wallet.extend_ref);
2375
+ update_config(
2376
+ multisig_signer,
2377
+ vector[addr2, addr3],
2378
+ option::none(),
2379
+ option::none(),
2380
+ option::none(),
2381
+ 1
2382
+ );
2383
+
2384
+ // check if multisig wallet is updated
2385
+ let updated_multisig_wallet = borrow_global<MultisigWallet>(multisig_addr);
2386
+ assert!(
2387
+ updated_multisig_wallet.members
2388
+ == vector::map(
2389
+ vector[addr2, addr3],
2390
+ |addr| Member { address: addr, tier: option::none() }
2391
+ ),
2392
+ 1
2393
+ );
2394
+ assert!(updated_multisig_wallet.threshold == 1, 1);
2395
+
2396
+ // proposal 1 details changed accordingly
2397
+ let updated_proposal1 = get_proposal(multisig_addr, 1);
2398
+ assert!(updated_proposal1.threshold == 1, 1);
2399
+ assert!(updated_proposal1.total_weight == 2, 1);
2400
+ assert!(
2401
+ !simple_map::contains_key(
2402
+ &updated_proposal1.votes, &Member { address: addr1, tier: option::none() }
2403
+ ),
2404
+ 1
2405
+ );
2406
+ assert!(
2407
+ simple_map::contains_key(
2408
+ &updated_proposal1.votes, &Member { address: addr2, tier: option::none() }
2409
+ ),
2410
+ 1
2411
+ );
2412
+ assert!(
2413
+ simple_map::contains_key(
2414
+ &updated_proposal1.votes, &Member { address: addr3, tier: option::none() }
2415
+ ),
2416
+ 1
2417
+ );
2418
+
2419
+ // proposal 2 (expired) details remain unchanged
2420
+ let updated_proposal2 = get_proposal(multisig_addr, 2);
2421
+ assert!(updated_proposal2.threshold == 2, 1);
2422
+ assert!(updated_proposal2.total_weight == 3, 1);
2423
+ assert!(
2424
+ simple_map::contains_key(
2425
+ &updated_proposal2.votes, &Member { address: addr1, tier: option::none() }
2426
+ ),
2427
+ 1
2428
+ );
2429
+ assert!(
2430
+ simple_map::contains_key(
2431
+ &updated_proposal2.votes, &Member { address: addr2, tier: option::none() }
2432
+ ),
2433
+ 1
2434
+ );
2435
+ assert!(
2436
+ simple_map::contains_key(
2437
+ &updated_proposal2.votes, &Member { address: addr3, tier: option::none() }
2438
+ ),
2439
+ 1
2440
+ );
2441
+
2442
+ // proposal 3 (executed) details remain unchanged
2443
+ let updated_proposal3 = get_proposal(multisig_addr, 3);
2444
+ assert!(updated_proposal3.threshold == 2, 1);
2445
+ assert!(updated_proposal3.total_weight == 3, 1);
2446
+ assert!(
2447
+ simple_map::contains_key(
2448
+ &updated_proposal3.votes, &Member { address: addr1, tier: option::none() }
2449
+ ),
2450
+ 1
2451
+ );
2452
+ assert!(
2453
+ simple_map::contains_key(
2454
+ &updated_proposal3.votes, &Member { address: addr2, tier: option::none() }
2455
+ ),
2456
+ 1
2457
+ );
2458
+ assert!(
2459
+ simple_map::contains_key(
2460
+ &updated_proposal3.votes, &Member { address: addr3, tier: option::none() }
2461
+ ),
2462
+ 1
2463
+ );
2464
+ }
2465
+ }