Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(abi)!: add a readme and some quality of life code changes to abi #219

Open
wants to merge 16 commits into
base: main
Choose a base branch
from

Conversation

Foivos
Copy link
Collaborator

@Foivos Foivos commented Nov 29, 2024

@Foivos Foivos requested review from npty and a team as code owners November 29, 2024 13:21
Copy link
Contributor

github-actions bot commented Nov 29, 2024

Code Coverage Summary

Click to see the summary
Coverage report for module ./move/abi/

+-------------------------+
| Move Coverage Summary   |
+-------------------------+
Module 00000000000000000000000000000000000000000000000000000000000000a0::abi
>>> % Module coverage: 100.00
+-------------------------+
| % Move Coverage: 100.00  |
+-------------------------+

Coverage report for module ./move/axelar_gateway/

+-------------------------+
| Move Coverage Summary   |
+-------------------------+
Module 00000000000000000000000000000000000000000000000000000000000000a1::weighted_signer
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a1::bytes32
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a1::weighted_signers
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a1::proof
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a1::message
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a1::events
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a1::auth
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a1::channel
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a1::owner_cap
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a1::message_ticket
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a1::message_status
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a1::gateway_v0
>>> % Module coverage: 99.22
Module 00000000000000000000000000000000000000000000000000000000000000a1::gateway
>>> % Module coverage: 100.00
+-------------------------+
| % Move Coverage: 99.79  |
+-------------------------+


 NO tests found for module ./move/example/. Skipped.

Coverage report for module ./move/gas_service/

+-------------------------+
| Move Coverage Summary   |
+-------------------------+
Module 00000000000000000000000000000000000000000000000000000000000000a2::events
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a2::gas_service_v0
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a2::gas_service
>>> % Module coverage: 100.00
+-------------------------+
| % Move Coverage: 100.00  |
+-------------------------+

Coverage report for module ./move/governance/

+-------------------------+
| Move Coverage Summary   |
+-------------------------+
Module 00000000000000000000000000000000000000000000000000000000000000a3::governance
>>> % Module coverage: 100.00
+-------------------------+
| % Move Coverage: 100.00  |
+-------------------------+


 NO tests found for module ./move/interchain_token/. Skipped.

Coverage report for module ./move/its/

+-------------------------+
| Move Coverage Summary   |
+-------------------------+
Module 00000000000000000000000000000000000000000000000000000000000000a5::flow_limit
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a5::coin_management
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a5::coin_info
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a5::token_id
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a5::events
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a5::address_tracker
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a5::coin_data
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a5::utils
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a5::unregistered_coin_data
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a5::trusted_addresses
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a5::interchain_transfer_ticket
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a5::its_v0
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a5::owner_cap
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a5::its
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a5::discovery
>>> % Module coverage: 100.00
+-------------------------+
| % Move Coverage: 100.00  |
+-------------------------+

Coverage report for module ./move/operators/

+-------------------------+
| Move Coverage Summary   |
+-------------------------+
Module 00000000000000000000000000000000000000000000000000000000000000a4::operators
>>> % Module coverage: 96.58
+-------------------------+
| % Move Coverage: 96.58  |
+-------------------------+

Coverage report for module ./move/relayer_discovery/

+-------------------------+
| Move Coverage Summary   |
+-------------------------+
Module 00000000000000000000000000000000000000000000000000000000000000aa::transaction
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000aa::events
>>> % Module coverage: 55.56
Module 00000000000000000000000000000000000000000000000000000000000000aa::relayer_discovery_v0
>>> % Module coverage: 86.49
Module 00000000000000000000000000000000000000000000000000000000000000aa::owner_cap
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000aa::discovery
>>> % Module coverage: 70.80
+-------------------------+
| % Move Coverage: 84.92  |
+-------------------------+

Coverage report for module ./move/squid/

+-------------------------+
| Move Coverage Summary   |
+-------------------------+
Module 00000000000000000000000000000000000000000000000000000000000000a6::coin_bag
>>> % Module coverage: 95.72
Module 00000000000000000000000000000000000000000000000000000000000000a6::swap_type
>>> % Module coverage: 38.89
Module 00000000000000000000000000000000000000000000000000000000000000a6::swap_info
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a6::squid_v0
>>> % Module coverage: 91.67
Module 00000000000000000000000000000000000000000000000000000000000000a6::owner_cap
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a6::squid
>>> % Module coverage: 87.14
Module 00000000000000000000000000000000000000000000000000000000000000a6::deepbook_v3
>>> % Module coverage: 47.56
Module 00000000000000000000000000000000000000000000000000000000000000a6::transfers
>>> % Module coverage: 0.00
Module 00000000000000000000000000000000000000000000000000000000000000a6::discovery
>>> % Module coverage: 0.00
+-------------------------+
| % Move Coverage: 44.47  |
+-------------------------+

Coverage report for module ./move/utils/

+-------------------------+
| Move Coverage Summary   |
+-------------------------+
Module 00000000000000000000000000000000000000000000000000000000000000a7::utils
>>> % Module coverage: NaN
+-------------------------+
| % Move Coverage: NaN  |
+-------------------------+

Coverage report for module ./move/version_control/

+-------------------------+
| Move Coverage Summary   |
+-------------------------+
Module 00000000000000000000000000000000000000000000000000000000000000b0::version_control
>>> % Module coverage: 100.00
+-------------------------+
| % Move Coverage: 100.00  |
+-------------------------+

Click to see the extended report
Coverage report for module ./move/abi/

+-------------------------+
| Move Coverage Summary   |
+-------------------------+
Module 00000000000000000000000000000000000000000000000000000000000000a0::abi
	fun append_bytes
		total: 46
		covered: 46
		% coverage: 100.00
	fun append_u256
		total: 10
		covered: 10
		% coverage: 100.00
	fun decode_bytes
		total: 46
		covered: 46
		% coverage: 100.00
	fun into_bytes
		total: 4
		covered: 4
		% coverage: 100.00
	fun new_reader
		total: 5
		covered: 5
		% coverage: 100.00
	fun new_writer
		total: 32
		covered: 32
		% coverage: 100.00
	fun read_bytes
		total: 27
		covered: 27
		% coverage: 100.00
	fun read_u256
		total: 40
		covered: 40
		% coverage: 100.00
	fun read_u8
		total: 4
		covered: 4
		% coverage: 100.00
	fun read_vector_bytes
		total: 71
		covered: 71
		% coverage: 100.00
	fun read_vector_u256
		total: 59
		covered: 59
		% coverage: 100.00
	fun skip_slot
		total: 9
		covered: 9
		% coverage: 100.00
	fun write_bytes
		total: 19
		covered: 19
		% coverage: 100.00
	fun write_u256
		total: 45
		covered: 45
		% coverage: 100.00
	fun write_u8
		total: 5
		covered: 5
		% coverage: 100.00
	fun write_vector_bytes
		total: 45
		covered: 45
		% coverage: 100.00
	fun write_vector_u256
		total: 37
		covered: 37
		% coverage: 100.00
>>> % Module coverage: 100.00
+-------------------------+
| % Move Coverage: 100.00  |
+-------------------------+

Coverage report for module ./move/axelar_gateway/

+-------------------------+
| Move Coverage Summary   |
+-------------------------+
Module 00000000000000000000000000000000000000000000000000000000000000a1::weighted_signer
	fun default
		total: 10
		covered: 10
		% coverage: 100.00
	fun lt
		total: 54
		covered: 54
		% coverage: 100.00
	fun new
		total: 12
		covered: 12
		% coverage: 100.00
	fun peel
		total: 10
		covered: 10
		% coverage: 100.00
	fun pub_key
		total: 4
		covered: 4
		% coverage: 100.00
	fun validate
		total: 10
		covered: 10
		% coverage: 100.00
	fun weight
		total: 4
		covered: 4
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a1::bytes32
	fun default
		total: 3
		covered: 3
		% coverage: 100.00
	fun from_address
		total: 3
		covered: 3
		% coverage: 100.00
	fun from_bytes
		total: 4
		covered: 4
		% coverage: 100.00
	fun length
		total: 2
		covered: 2
		% coverage: 100.00
	fun new
		total: 3
		covered: 3
		% coverage: 100.00
	fun peel
		total: 4
		covered: 4
		% coverage: 100.00
	fun to_bytes
		total: 5
		covered: 5
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a1::weighted_signers
	fun hash
		total: 7
		covered: 7
		% coverage: 100.00
	fun nonce
		total: 4
		covered: 4
		% coverage: 100.00
	fun peel
		total: 48
		covered: 48
		% coverage: 100.00
	fun signers
		total: 3
		covered: 3
		% coverage: 100.00
	fun threshold
		total: 4
		covered: 4
		% coverage: 100.00
	fun total_weight
		total: 33
		covered: 33
		% coverage: 100.00
	fun validate
		total: 5
		covered: 5
		% coverage: 100.00
	fun validate_signers
		total: 59
		covered: 59
		% coverage: 100.00
	fun validate_threshold
		total: 24
		covered: 24
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a1::proof
	fun find_weight_by_pub_key_from
		total: 49
		covered: 49
		% coverage: 100.00
	fun new_signature
		total: 11
		covered: 11
		% coverage: 100.00
	fun peel
		total: 45
		covered: 45
		% coverage: 100.00
	fun peel_signature
		total: 4
		covered: 4
		% coverage: 100.00
	fun recover_pub_key
		total: 6
		covered: 6
		% coverage: 100.00
	fun signatures
		total: 3
		covered: 3
		% coverage: 100.00
	fun signers
		total: 3
		covered: 3
		% coverage: 100.00
	fun validate
		total: 83
		covered: 83
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a1::message
	fun command_id
		total: 8
		covered: 8
		% coverage: 100.00
	fun hash
		total: 7
		covered: 7
		% coverage: 100.00
	fun message_to_command_id
		total: 14
		covered: 14
		% coverage: 100.00
	fun new
		total: 7
		covered: 7
		% coverage: 100.00
	fun peel
		total: 25
		covered: 25
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a1::events
	fun channel_created
		total: 4
		covered: 4
		% coverage: 100.00
	fun channel_destroyed
		total: 4
		covered: 4
		% coverage: 100.00
	fun contract_call
		total: 8
		covered: 8
		% coverage: 100.00
	fun message_approved
		total: 4
		covered: 4
		% coverage: 100.00
	fun message_executed
		total: 4
		covered: 4
		% coverage: 100.00
	fun signers_rotated
		total: 6
		covered: 6
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a1::auth
	fun new
		total: 9
		covered: 9
		% coverage: 100.00
	fun rotate_signers
		total: 29
		covered: 29
		% coverage: 100.00
	fun setup
		total: 16
		covered: 16
		% coverage: 100.00
	fun update_rotation_timestamp
		total: 31
		covered: 31
		% coverage: 100.00
	fun validate_proof
		total: 55
		covered: 55
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a1::channel
	fun consume_approved_message
		total: 20
		covered: 20
		% coverage: 100.00
	fun create_approved_message
		total: 7
		covered: 7
		% coverage: 100.00
	fun destroy
		total: 9
		covered: 9
		% coverage: 100.00
	fun id
		total: 3
		covered: 3
		% coverage: 100.00
	fun new
		total: 9
		covered: 9
		% coverage: 100.00
	fun to_address
		total: 3
		covered: 3
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a1::owner_cap
	fun create
		total: 4
		covered: 4
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a1::message_ticket
	fun destination_address
		total: 4
		covered: 4
		% coverage: 100.00
	fun destination_chain
		total: 4
		covered: 4
		% coverage: 100.00
	fun destroy
		total: 3
		covered: 3
		% coverage: 100.00
	fun new
		total: 7
		covered: 7
		% coverage: 100.00
	fun payload
		total: 4
		covered: 4
		% coverage: 100.00
	fun source_id
		total: 4
		covered: 4
		% coverage: 100.00
	fun version
		total: 4
		covered: 4
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a1::message_status
	fun approved
		total: 3
		covered: 3
		% coverage: 100.00
	fun executed
		total: 2
		covered: 2
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a1::gateway_v0
	fun allow_function
		total: 6
		covered: 6
		% coverage: 100.00
	fun approve_message
		total: 21
		covered: 21
		% coverage: 100.00
	fun approve_messages
		total: 53
		covered: 53
		% coverage: 100.00
	fun as_u8
		total: 21
		covered: 21
		% coverage: 100.00
	fun borrow
		total: 5
		covered: 5
		% coverage: 100.00
	fun borrow_mut
		total: 5
		covered: 5
		% coverage: 100.00
	fun data_hash
		total: 11
		covered: 11
		% coverage: 100.00
	fun disallow_function
		total: 6
		covered: 6
		% coverage: 100.00
	fun is_message_approved
		total: 19
		covered: 19
		% coverage: 100.00
	fun is_message_executed
		total: 11
		covered: 11
		% coverage: 100.00
	fun new
		total: 6
		covered: 6
		% coverage: 100.00
	fun peel_messages
		total: 62
		covered: 62
		% coverage: 100.00
	fun rotate_signers
		total: 89
		covered: 86
		% coverage: 96.63
	fun send_message
		total: 23
		covered: 23
		% coverage: 100.00
	fun take_approved_message
		total: 44
		covered: 44
		% coverage: 100.00
	fun version_control
		total: 3
		covered: 3
		% coverage: 100.00
>>> % Module coverage: 99.22
Module 00000000000000000000000000000000000000000000000000000000000000a1::gateway
	fun allow_function
		total: 16
		covered: 16
		% coverage: 100.00
	fun approve_messages
		total: 16
		covered: 16
		% coverage: 100.00
	fun disallow_function
		total: 16
		covered: 16
		% coverage: 100.00
	fun init
		total: 7
		covered: 7
		% coverage: 100.00
	fun is_message_approved
		total: 18
		covered: 18
		% coverage: 100.00
	fun is_message_executed
		total: 15
		covered: 15
		% coverage: 100.00
	fun prepare_message
		total: 8
		covered: 8
		% coverage: 100.00
	fun rotate_signers
		total: 18
		covered: 18
		% coverage: 100.00
	fun send_message
		total: 15
		covered: 15
		% coverage: 100.00
	fun setup
		total: 56
		covered: 56
		% coverage: 100.00
	fun take_approved_message
		total: 19
		covered: 19
		% coverage: 100.00
	fun version_control
		total: 30
		covered: 30
		% coverage: 100.00
>>> % Module coverage: 100.00
+-------------------------+
| % Move Coverage: 99.79  |
+-------------------------+


 NO tests found for module ./move/example/. Skipped.

Coverage report for module ./move/gas_service/

+-------------------------+
| Move Coverage Summary   |
+-------------------------+
Module 00000000000000000000000000000000000000000000000000000000000000a2::events
	fun gas_added
		total: 7
		covered: 7
		% coverage: 100.00
	fun gas_collected
		total: 5
		covered: 5
		% coverage: 100.00
	fun gas_paid
		total: 10
		covered: 10
		% coverage: 100.00
	fun refunded
		total: 6
		covered: 6
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a2::gas_service_v0
	fun add_gas
		total: 12
		covered: 12
		% coverage: 100.00
	fun allow_function
		total: 6
		covered: 6
		% coverage: 100.00
	fun collect_gas
		total: 10
		covered: 10
		% coverage: 100.00
	fun disallow_function
		total: 6
		covered: 6
		% coverage: 100.00
	fun new
		total: 4
		covered: 4
		% coverage: 100.00
	fun pay_gas
		total: 25
		covered: 25
		% coverage: 100.00
	fun put
		total: 5
		covered: 5
		% coverage: 100.00
	fun refund
		total: 11
		covered: 11
		% coverage: 100.00
	fun take
		total: 6
		covered: 6
		% coverage: 100.00
	fun version_control
		total: 3
		covered: 3
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a2::gas_service
	fun add_gas
		total: 18
		covered: 18
		% coverage: 100.00
	fun allow_function
		total: 16
		covered: 16
		% coverage: 100.00
	fun collect_gas
		total: 17
		covered: 17
		% coverage: 100.00
	fun disallow_function
		total: 16
		covered: 16
		% coverage: 100.00
	fun init
		total: 17
		covered: 17
		% coverage: 100.00
	fun pay_gas
		total: 18
		covered: 18
		% coverage: 100.00
	fun refund
		total: 18
		covered: 18
		% coverage: 100.00
	fun version_control
		total: 30
		covered: 30
		% coverage: 100.00
>>> % Module coverage: 100.00
+-------------------------+
| % Move Coverage: 100.00  |
+-------------------------+

Coverage report for module ./move/governance/

+-------------------------+
| Move Coverage Summary   |
+-------------------------+
Module 00000000000000000000000000000000000000000000000000000000000000a3::governance
	fun authorize_upgrade
		total: 53
		covered: 53
		% coverage: 100.00
	fun commit_upgrade
		total: 8
		covered: 8
		% coverage: 100.00
	fun is_cap_new
		total: 9
		covered: 9
		% coverage: 100.00
	fun is_governance
		total: 17
		covered: 17
		% coverage: 100.00
	fun new
		total: 34
		covered: 34
		% coverage: 100.00
	fun take_upgrade_cap
		total: 9
		covered: 9
		% coverage: 100.00
>>> % Module coverage: 100.00
+-------------------------+
| % Move Coverage: 100.00  |
+-------------------------+


 NO tests found for module ./move/interchain_token/. Skipped.

Coverage report for module ./move/its/

+-------------------------+
| Move Coverage Summary   |
+-------------------------+
Module 00000000000000000000000000000000000000000000000000000000000000a5::flow_limit
	fun add_flow_in
		total: 45
		covered: 45
		% coverage: 100.00
	fun add_flow_out
		total: 45
		covered: 45
		% coverage: 100.00
	fun new
		total: 6
		covered: 6
		% coverage: 100.00
	fun set_flow_limit
		total: 5
		covered: 5
		% coverage: 100.00
	fun update_epoch
		total: 27
		covered: 27
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a5::coin_management
	fun add_distributor
		total: 14
		covered: 14
		% coverage: 100.00
	fun add_operator
		total: 5
		covered: 5
		% coverage: 100.00
	fun burn
		total: 8
		covered: 8
		% coverage: 100.00
	fun give_coin
		total: 24
		covered: 24
		% coverage: 100.00
	fun has_capability
		total: 4
		covered: 4
		% coverage: 100.00
	fun is_distributor
		total: 6
		covered: 6
		% coverage: 100.00
	fun mint
		total: 7
		covered: 7
		% coverage: 100.00
	fun new_locked
		total: 9
		covered: 9
		% coverage: 100.00
	fun new_with_cap
		total: 9
		covered: 9
		% coverage: 100.00
	fun set_flow_limit
		total: 20
		covered: 20
		% coverage: 100.00
	fun take_balance
		total: 25
		covered: 25
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a5::coin_info
	fun decimals
		total: 4
		covered: 4
		% coverage: 100.00
	fun from_info
		total: 6
		covered: 6
		% coverage: 100.00
	fun from_metadata
		total: 10
		covered: 10
		% coverage: 100.00
	fun metadata
		total: 3
		covered: 3
		% coverage: 100.00
	fun name
		total: 4
		covered: 4
		% coverage: 100.00
	fun symbol
		total: 4
		covered: 4
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a5::token_id
	fun from_address
		total: 3
		covered: 3
		% coverage: 100.00
	fun from_coin_data
		total: 31
		covered: 31
		% coverage: 100.00
	fun from_info
		total: 37
		covered: 37
		% coverage: 100.00
	fun from_u256
		total: 4
		covered: 4
		% coverage: 100.00
	fun to_u256
		total: 5
		covered: 5
		% coverage: 100.00
	fun unregistered_token_id
		total: 13
		covered: 13
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a5::events
	fun coin_registered
		total: 4
		covered: 4
		% coverage: 100.00
	fun flow_limit_set
		total: 5
		covered: 5
		% coverage: 100.00
	fun interchain_token_deployment_started
		total: 8
		covered: 8
		% coverage: 100.00
	fun interchain_transfer
		total: 27
		covered: 27
		% coverage: 100.00
	fun interchain_transfer_received
		total: 15
		covered: 15
		% coverage: 100.00
	fun trusted_address_removed
		total: 4
		covered: 4
		% coverage: 100.00
	fun trusted_address_set
		total: 5
		covered: 5
		% coverage: 100.00
	fun unregistered_coin_received
		total: 6
		covered: 6
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a5::address_tracker
	fun is_trusted_address
		total: 20
		covered: 20
		% coverage: 100.00
	fun new
		total: 4
		covered: 4
		% coverage: 100.00
	fun remove_trusted_address
		total: 18
		covered: 18
		% coverage: 100.00
	fun set_trusted_address
		total: 41
		covered: 41
		% coverage: 100.00
	fun trusted_address
		total: 15
		covered: 15
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a5::coin_data
	fun coin_info
		total: 3
		covered: 3
		% coverage: 100.00
	fun coin_management_mut
		total: 3
		covered: 3
		% coverage: 100.00
	fun new
		total: 4
		covered: 4
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a5::utils
	fun decode_metadata
		total: 41
		covered: 41
		% coverage: 100.00
	fun is_lowercase
		total: 15
		covered: 15
		% coverage: 100.00
	fun is_number
		total: 15
		covered: 15
		% coverage: 100.00
	fun is_uppercase
		total: 15
		covered: 15
		% coverage: 100.00
	fun module_from_symbol
		total: 84
		covered: 84
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a5::unregistered_coin_data
	fun destroy
		total: 3
		covered: 3
		% coverage: 100.00
	fun new
		total: 4
		covered: 4
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a5::trusted_addresses
	fun destroy
		total: 3
		covered: 3
		% coverage: 100.00
	fun new
		total: 13
		covered: 13
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a5::interchain_transfer_ticket
	fun destroy
		total: 3
		covered: 3
		% coverage: 100.00
	fun new
		total: 9
		covered: 9
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a5::its_v0
	fun add_registered_coin
		total: 16
		covered: 16
		% coverage: 100.00
	fun add_registered_coin_type
		total: 6
		covered: 6
		% coverage: 100.00
	fun add_unregistered_coin
		total: 14
		covered: 14
		% coverage: 100.00
	fun add_unregistered_coin_type
		total: 6
		covered: 6
		% coverage: 100.00
	fun allow_function
		total: 6
		covered: 6
		% coverage: 100.00
	fun burn_as_distributor
		total: 22
		covered: 22
		% coverage: 100.00
	fun channel
		total: 3
		covered: 3
		% coverage: 100.00
	fun channel_address
		total: 4
		covered: 4
		% coverage: 100.00
	fun coin_data
		total: 15
		covered: 15
		% coverage: 100.00
	fun coin_info
		total: 5
		covered: 5
		% coverage: 100.00
	fun coin_management_mut
		total: 6
		covered: 6
		% coverage: 100.00
	fun decode_approved_message
		total: 67
		covered: 67
		% coverage: 100.00
	fun deploy_remote_interchain_token
		total: 48
		covered: 48
		% coverage: 100.00
	fun disallow_function
		total: 6
		covered: 6
		% coverage: 100.00
	fun give_unregistered_coin
		total: 65
		covered: 65
		% coverage: 100.00
	fun is_trusted_address
		total: 6
		covered: 6
		% coverage: 100.00
	fun mint_as_distributor
		total: 24
		covered: 24
		% coverage: 100.00
	fun mint_to_as_distributor
		total: 26
		covered: 26
		% coverage: 100.00
	fun new
		total: 33
		covered: 33
		% coverage: 100.00
	fun prepare_message
		total: 52
		covered: 52
		% coverage: 100.00
	fun read_amount
		total: 25
		covered: 25
		% coverage: 100.00
	fun receive_deploy_interchain_token
		total: 73
		covered: 73
		% coverage: 100.00
	fun receive_interchain_transfer
		total: 85
		covered: 85
		% coverage: 100.00
	fun receive_interchain_transfer_with_data
		total: 91
		covered: 91
		% coverage: 100.00
	fun register_coin
		total: 11
		covered: 11
		% coverage: 100.00
	fun registered_coin_type
		total: 15
		covered: 15
		% coverage: 100.00
	fun relayer_discovery_id
		total: 4
		covered: 4
		% coverage: 100.00
	fun remove_trusted_address
		total: 5
		covered: 5
		% coverage: 100.00
	fun remove_trusted_addresses
		total: 22
		covered: 22
		% coverage: 100.00
	fun remove_unregistered_coin
		total: 14
		covered: 14
		% coverage: 100.00
	fun remove_unregistered_coin_type
		total: 5
		covered: 5
		% coverage: 100.00
	fun send_interchain_transfer
		total: 65
		covered: 65
		% coverage: 100.00
	fun set_flow_limit
		total: 10
		covered: 10
		% coverage: 100.00
	fun set_relayer_discovery_id
		total: 6
		covered: 6
		% coverage: 100.00
	fun set_trusted_address
		total: 6
		covered: 6
		% coverage: 100.00
	fun set_trusted_addresses
		total: 44
		covered: 44
		% coverage: 100.00
	fun trusted_address
		total: 6
		covered: 6
		% coverage: 100.00
	fun unregistered_coin_type
		total: 19
		covered: 19
		% coverage: 100.00
	fun version_control
		total: 3
		covered: 3
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a5::owner_cap
	fun create
		total: 4
		covered: 4
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a5::its
	fun allow_function
		total: 16
		covered: 16
		% coverage: 100.00
	fun burn_as_distributor
		total: 17
		covered: 17
		% coverage: 100.00
	fun channel_address
		total: 4
		covered: 4
		% coverage: 100.00
	fun deploy_remote_interchain_token
		total: 15
		covered: 15
		% coverage: 100.00
	fun disallow_function
		total: 16
		covered: 16
		% coverage: 100.00
	fun give_unregistered_coin
		total: 16
		covered: 16
		% coverage: 100.00
	fun init
		total: 19
		covered: 19
		% coverage: 100.00
	fun mint_as_distributor
		total: 18
		covered: 18
		% coverage: 100.00
	fun mint_to_as_distributor
		total: 19
		covered: 19
		% coverage: 100.00
	fun package_value
		total: 4
		covered: 4
		% coverage: 100.00
	fun prepare_interchain_transfer
		total: 11
		covered: 11
		% coverage: 100.00
	fun receive_deploy_interchain_token
		total: 15
		covered: 15
		% coverage: 100.00
	fun receive_interchain_transfer
		total: 17
		covered: 17
		% coverage: 100.00
	fun receive_interchain_transfer_with_data
		total: 18
		covered: 18
		% coverage: 100.00
	fun register_coin
		total: 16
		covered: 16
		% coverage: 100.00
	fun register_transaction
		total: 24
		covered: 24
		% coverage: 100.00
	fun registered_coin_type
		total: 5
		covered: 5
		% coverage: 100.00
	fun remove_trusted_addresses
		total: 15
		covered: 15
		% coverage: 100.00
	fun send_interchain_transfer
		total: 17
		covered: 17
		% coverage: 100.00
	fun set_flow_limit
		total: 17
		covered: 17
		% coverage: 100.00
	fun set_trusted_addresses
		total: 15
		covered: 15
		% coverage: 100.00
	fun version_control
		total: 30
		covered: 30
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a5::discovery
	fun call_info
		total: 43
		covered: 43
		% coverage: 100.00
	fun deploy_interchain_token_tx
		total: 49
		covered: 49
		% coverage: 100.00
	fun interchain_transfer_info
		total: 33
		covered: 33
		% coverage: 100.00
	fun interchain_transfer_tx
		total: 91
		covered: 91
		% coverage: 100.00
	fun register_transaction
		total: 34
		covered: 34
		% coverage: 100.00
>>> % Module coverage: 100.00
+-------------------------+
| % Move Coverage: 100.00  |
+-------------------------+

Coverage report for module ./move/operators/

+-------------------------+
| Move Coverage Summary   |
+-------------------------+
Module 00000000000000000000000000000000000000000000000000000000000000a4::operators
	fun add_operator
		total: 13
		covered: 13
		% coverage: 100.00
	fun init
		total: 15
		covered: 15
		% coverage: 100.00
	fun loan_cap
		total: 38
		covered: 38
		% coverage: 100.00
	fun remove_cap
		total: 10
		covered: 10
		% coverage: 100.00
	fun remove_operator
		total: 8
		covered: 8
		% coverage: 100.00
	fun restore_cap
		total: 19
		covered: 15
		% coverage: 78.95
	fun store_cap
		total: 14
		covered: 14
		% coverage: 100.00
>>> % Module coverage: 96.58
+-------------------------+
| % Move Coverage: 96.58  |
+-------------------------+

Coverage report for module ./move/relayer_discovery/

+-------------------------+
| Move Coverage Summary   |
+-------------------------+
Module 00000000000000000000000000000000000000000000000000000000000000aa::transaction
	fun new_function
		total: 5
		covered: 5
		% coverage: 100.00
	fun new_function_from_bcs
		total: 10
		covered: 10
		% coverage: 100.00
	fun new_move_call
		total: 5
		covered: 5
		% coverage: 100.00
	fun new_move_call_from_bcs
		total: 45
		covered: 45
		% coverage: 100.00
	fun new_transaction
		total: 4
		covered: 4
		% coverage: 100.00
	fun new_transaction_from_bcs
		total: 41
		covered: 41
		% coverage: 100.00
	fun package_id
		total: 11
		covered: 11
		% coverage: 100.00
	fun peel_type
		total: 13
		covered: 13
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000aa::events
	fun transaction_registered
		total: 5
		covered: 5
		% coverage: 100.00
	fun transaction_removed
		total: 4
		covered: 0
		% coverage: 0.00
>>> % Module coverage: 55.56
Module 00000000000000000000000000000000000000000000000000000000000000aa::relayer_discovery_v0
	fun allow_function
		total: 6
		covered: 6
		% coverage: 100.00
	fun disallow_function
		total: 6
		covered: 6
		% coverage: 100.00
	fun get_transaction
		total: 16
		covered: 16
		% coverage: 100.00
	fun new
		total: 5
		covered: 5
		% coverage: 100.00
	fun remove_transaction
		total: 19
		covered: 9
		% coverage: 47.37
	fun set_transaction
		total: 19
		covered: 19
		% coverage: 100.00
	fun version_control
		total: 3
		covered: 3
		% coverage: 100.00
>>> % Module coverage: 86.49
Module 00000000000000000000000000000000000000000000000000000000000000aa::owner_cap
	fun create
		total: 4
		covered: 4
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000aa::discovery
	fun allow_function
		total: 16
		covered: 16
		% coverage: 100.00
	fun disallow_function
		total: 16
		covered: 16
		% coverage: 100.00
	fun get_transaction
		total: 14
		covered: 14
		% coverage: 100.00
	fun init
		total: 19
		covered: 0
		% coverage: 0.00
	fun register_transaction
		total: 21
		covered: 21
		% coverage: 100.00
	fun remove_transaction
		total: 21
		covered: 0
		% coverage: 0.00
	fun version_control
		total: 30
		covered: 30
		% coverage: 100.00
>>> % Module coverage: 70.80
+-------------------------+
| % Move Coverage: 84.92  |
+-------------------------+

Coverage report for module ./move/squid/

+-------------------------+
| Move Coverage Summary   |
+-------------------------+
Module 00000000000000000000000000000000000000000000000000000000000000a6::coin_bag
	fun balance
		total: 20
		covered: 20
		% coverage: 100.00
	fun balance_amount
		total: 20
		covered: 20
		% coverage: 100.00
	fun balance_key
		total: 11
		covered: 11
		% coverage: 100.00
	fun destroy
		total: 4
		covered: 4
		% coverage: 100.00
	fun estimate
		total: 19
		covered: 19
		% coverage: 100.00
	fun estimate_amount
		total: 20
		covered: 20
		% coverage: 100.00
	fun estimate_key
		total: 11
		covered: 11
		% coverage: 100.00
	fun exact_balance
		total: 32
		covered: 24
		% coverage: 75.00
	fun new
		total: 4
		covered: 4
		% coverage: 100.00
	fun store_balance
		total: 21
		covered: 21
		% coverage: 100.00
	fun store_estimate
		total: 25
		covered: 25
		% coverage: 100.00
>>> % Module coverage: 95.72
Module 00000000000000000000000000000000000000000000000000000000000000a6::swap_type
	fun deepbook_v3
		total: 2
		covered: 2
		% coverage: 100.00
	fun its_transfer
		total: 2
		covered: 0
		% coverage: 0.00
	fun peel
		total: 30
		covered: 12
		% coverage: 40.00
	fun sui_transfer
		total: 2
		covered: 0
		% coverage: 0.00
>>> % Module coverage: 38.89
Module 00000000000000000000000000000000000000000000000000000000000000a6::swap_info
	fun coin_bag
		total: 3
		covered: 3
		% coverage: 100.00
	fun data_estimating
		total: 75
		covered: 75
		% coverage: 100.00
	fun data_swapping
		total: 81
		covered: 81
		% coverage: 100.00
	fun destroy
		total: 8
		covered: 8
		% coverage: 100.00
	fun finalize
		total: 23
		covered: 23
		% coverage: 100.00
	fun new
		total: 18
		covered: 18
		% coverage: 100.00
	fun skip_swap
		total: 47
		covered: 47
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a6::squid_v0
	fun allow_function
		total: 6
		covered: 6
		% coverage: 100.00
	fun channel
		total: 3
		covered: 3
		% coverage: 100.00
	fun coin_bag_mut
		total: 3
		covered: 3
		% coverage: 100.00
	fun disallow_function
		total: 6
		covered: 6
		% coverage: 100.00
	fun give_deep
		total: 6
		covered: 0
		% coverage: 0.00
	fun new
		total: 7
		covered: 7
		% coverage: 100.00
	fun start_swap
		total: 27
		covered: 27
		% coverage: 100.00
	fun version_control
		total: 3
		covered: 3
		% coverage: 100.00
	fun withdraw
		total: 11
		covered: 11
		% coverage: 100.00
>>> % Module coverage: 91.67
Module 00000000000000000000000000000000000000000000000000000000000000a6::owner_cap
	fun create
		total: 4
		covered: 4
		% coverage: 100.00
>>> % Module coverage: 100.00
Module 00000000000000000000000000000000000000000000000000000000000000a6::squid
	fun allow_function
		total: 16
		covered: 16
		% coverage: 100.00
	fun disallow_function
		total: 16
		covered: 16
		% coverage: 100.00
	fun finalize
		total: 3
		covered: 0
		% coverage: 0.00
	fun give_deep
		total: 15
		covered: 0
		% coverage: 0.00
	fun init
		total: 17
		covered: 17
		% coverage: 100.00
	fun inner
		total: 3
		covered: 3
		% coverage: 100.00
	fun inner_mut
		total: 3
		covered: 3
		% coverage: 100.00
	fun new_version_control
		total: 30
		covered: 30
		% coverage: 100.00
	fun start_swap
		total: 19
		covered: 19
		% coverage: 100.00
	fun version
		total: 2
		covered: 2
		% coverage: 100.00
	fun withdraw
		total: 16
		covered: 16
		% coverage: 100.00
>>> % Module coverage: 87.14
Module 00000000000000000000000000000000000000000000000000000000000000a6::deepbook_v3
	fun estimate
		total: 200
		covered: 105
		% coverage: 52.50
	fun estimate_move_call
		total: 36
		covered: 0
		% coverage: 0.00
	fun mul_scaled
		total: 13
		covered: 13
		% coverage: 100.00
	fun peel_swap_data
		total: 20
		covered: 20
		% coverage: 100.00
	fun swap
		total: 308
		covered: 154
		% coverage: 50.00
	fun swap_move_call
		total: 37
		covered: 0
		% coverage: 0.00
>>> % Module coverage: 47.56
Module 00000000000000000000000000000000000000000000000000000000000000a6::transfers
	fun its_estimate
		total: 61
		covered: 0
		% coverage: 0.00
	fun its_estimate_move_call
		total: 16
		covered: 0
		% coverage: 0.00
	fun its_transfer
		total: 179
		covered: 0
		% coverage: 0.00
	fun its_transfer_move_call
		total: 20
		covered: 0
		% coverage: 0.00
	fun new_its_transfer_swap_data
		total: 19
		covered: 0
		% coverage: 0.00
	fun new_sui_transfer_swap_data
		total: 11
		covered: 0
		% coverage: 0.00
	fun sui_estimate
		total: 61
		covered: 0
		% coverage: 0.00
	fun sui_estimate_move_call
		total: 16
		covered: 0
		% coverage: 0.00
	fun sui_transfer
		total: 87
		covered: 0
		% coverage: 0.00
	fun sui_transfer_move_call
		total: 16
		covered: 0
		% coverage: 0.00
>>> % Module coverage: 0.00
Module 00000000000000000000000000000000000000000000000000000000000000a6::discovery
	fun finalize
		total: 11
		covered: 0
		% coverage: 0.00
	fun register_transaction
		total: 70
		covered: 0
		% coverage: 0.00
	fun start_swap
		total: 15
		covered: 0
		% coverage: 0.00
	fun transaction
		total: 206
		covered: 0
		% coverage: 0.00
>>> % Module coverage: 0.00
+-------------------------+
| % Move Coverage: 44.47  |
+-------------------------+

Coverage report for module ./move/utils/

+-------------------------+
| Move Coverage Summary   |
+-------------------------+
Module 00000000000000000000000000000000000000000000000000000000000000a7::utils
>>> % Module coverage: NaN
+-------------------------+
| % Move Coverage: NaN  |
+-------------------------+

Coverage report for module ./move/version_control/

+-------------------------+
| Move Coverage Summary   |
+-------------------------+
Module 00000000000000000000000000000000000000000000000000000000000000b0::version_control
	fun allow_function
		total: 20
		covered: 20
		% coverage: 100.00
	fun allowed_functions
		total: 3
		covered: 3
		% coverage: 100.00
	fun check
		total: 11
		covered: 11
		% coverage: 100.00
	fun disallow_function
		total: 19
		covered: 19
		% coverage: 100.00
	fun latest_version
		total: 6
		covered: 6
		% coverage: 100.00
	fun new
		total: 31
		covered: 31
		% coverage: 100.00
	fun push_back
		total: 6
		covered: 6
		% coverage: 100.00
>>> % Module coverage: 100.00
+-------------------------+
| % Move Coverage: 100.00  |
+-------------------------+

@Foivos Foivos changed the title feat(abi)!: Add a readme and some QOL code changes to abi feat(abi)!: Add a readme and some quality of life code changes to abi Nov 29, 2024
@Foivos Foivos changed the title feat(abi)!: Add a readme and some quality of life code changes to abi feat(abi)!: add a readme and some quality of life code changes to abi Dec 9, 2024
move/abi/sources/abi.move Outdated Show resolved Hide resolved
move/abi/sources/abi.move Outdated Show resolved Hide resolved
move/abi/sources/abi.move Outdated Show resolved Hide resolved
.changeset/four-cows-shout.md Outdated Show resolved Hide resolved
.changeset/four-cows-shout.md Outdated Show resolved Hide resolved
self.head = head;

var
}

public fun read_bytes_raw(self: &mut AbiReader): vector<u8> {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you add this in a separate PR? The code refactor and feature addition are independent. Code refactor can be reviewed and merged in quicker, while the new methods can require further review

move/abi/sources/abi.move Outdated Show resolved Hide resolved
public fun read_bytes_raw(self: &mut AbiReader): vector<u8> {
// Move position to the start of the bytes
let offset = self.read_u256() as u64;
let length = self.bytes.length() - offset;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is reading the full bytes until the end. What if you there are multiple encoded structs?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if it's only meant to support a single one, then it should consume the reader so it can't be used again

maybe it can return the new reader itself

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is not supposed to include only one, but there is no way for us to know up to what point the raw bytes are actually the struct the user needs. For example, assume someone encodes a struct {var1:u256, var2:u256} followed by some data: bytes. The encoded data will look like this: [offset1 = 64, offset2=128, var1, var2, data.length, data]. There is no way to know where the struct ends and where the data begins. If however the struct is the last variable length variable encoded, then it will take up all of the remaining bytes. This is why we return everything and expect the user to decode only as much as they need (knowing the format of the data is required, and it will tell the user where to stop.)

move/abi/sources/abi.move Outdated Show resolved Hide resolved
Comment on lines 363 to 371
writer.write_bytes_raw(struct_writer.into_bytes());

let bytes = writer.into_bytes();

let mut reader = new_reader(bytes);

let struct_bytes = reader.read_bytes_raw();

let mut struct_reader = new_reader(struct_bytes);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

write_bytes_raw(..) -> new_writer_wrapper(struct_writer)
something like this? new_writer_from_writer, new_writer_nested

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not always the case unfortunately: for structs another writer would be desirable, since the raw bytes are just some abi encoded bytes. For vectors on the other hand the raw bytes consist of the length, followed by some encoded bytes (where the encoding starts matters for offsets).

@milapsheth
Copy link
Member

add missing coverage as well

Coverage report for module ./move/abi/

+-------------------------+
| Move Coverage Summary   |
+-------------------------+
Module 00000000000000000000000000000000000000000000000000000000000000a0::abi
>>> % Module coverage: 96.82
+-------------------------+
| % Move Coverage: 96.82  |
+-------------------------+

@Foivos
Copy link
Collaborator Author

Foivos commented Dec 12, 2024

add missing coverage as well

Coverage report for module ./move/abi/

+-------------------------+
| Move Coverage Summary   |
+-------------------------+
Module 00000000000000000000000000000000000000000000000000000000000000a0::abi
>>> % Module coverage: 96.82
+-------------------------+
| % Move Coverage: 96.82  |
+-------------------------+

This was caused by changes you made, please add coverage yourself before merging.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants