purpose
the purpose of this document is to capture working notes regarding the update of auto proxy logic in the FIO Protocol for use when bundled fees are collected. The goal is to review all code locations using bundled fees and verify that auto proxy is being handled correctly, if not then correct the logic for the action.
tests:
I created a new file to test all auto proxy endpoints in the protocol.
https://github.com/fioprotocol/fio.test/pull/353
to get a summary of endpoints using bundled fee use (as of June 5 2023)
../fio/build/bin/clio -u https://fio.greymass.com get table fio.fee fio.fee fiofees --limit 100 | grep -A1 -B3 '\"type\": 1' "fee_id": 4,
testing and code review findings --
tests have been created for the following endpoints. each is failing to auto proxy as expected.
"end_point": "add_pub_address",
"end_point_hash": "0x1769ecaf35c00341b5a2e1760114648e",
"type": 1,
"suf_amount": 964599209,
--
--
"fee_id": 6,
"end_point": "new_funds_request",
"end_point_hash": "0x652eeb294ac3454d0319f95e5d71679c", "type": 1,
"suf_amount": 1929198418,
--
--
"fee_id": 7,
"end_point": "reject_funds_request",
"end_point_hash": "0x95320a9f2b3013b157c4cc3c7dc1612c",
"type": 1,
"suf_amount": 964599209,
--
--
"fee_id": 8cancel_funds_request",
"end_point": "record_obt_data",
"end_point_hash": "0x4a524f85f49f809090c195750203dd5a",
"type": 1,
"suf_amount": 1929198418,
--
--
"fee_id": 14,
"end_point": "proxy_vote",
"end_point_hash": "0x53ba630283fb57c2c238136d9ea00d1e",
"type": 1,
"suf_amount": 964599209,
--
--
"fee_id": 15,
"end_point": "vote_producer",
"end_point_hash": "0x769963bf068859b4fa4e1f3c60bcd404",
"type": 1,
"suf_amount": 845093513,
--
--
"fee_id": 28,
"end_point": "cancel_funds_request",
"end_point_hash": "0xccf30403f40dd6e11322a09571578ef8",
"type": 1,
"suf_amount": 1154331069,
--
--
"fee_id": 29,
"end_point": "remove_pub_address",
"end_point_hash": "0x59dd4dcc3ceb7e2104d427a5d1fdb97b",
"type": 1,
"suf_amount": 1154331069,
--
--
"fee_id": 30,
"end_point": "remove_all_pub_addresses",
"end_point_hash": "0x84c4df3967c4da69ffb000ad5b83cce5",
"type": 1,
"suf_amount": 1132534662,
--
--
"fee_id": 35,
" "end_point": "burn_fio_address",
"end_point_hash": "0x12180cfe364247aec025ac7c4ba544d1",
"type": 1,
"suf_amount": 755023108,
--
--
"fee_id": 38,
" "end_point": "add_nft",
"end_point_hash": "0x05b56b78f8c9e5911e557b64d2f0490c",
"type": 1,
"suf_amount": 321768535,
--
--
"fee_id": 39,
"end_point": "remove_nft",
"end_point_hash": "0x0f9cc4e24d451bb1a733add19fc02538",
"type": 1,
"suf_amount": 294360000,
--
--
"fee_id": 40,
"end_point": "remove_all_nfts",
"end_point_hash": "0x0d982286f2061da63989fd86873bf29f",
"type": 1,
"suf_amount": 294360000,
--
--
"fee_id": 41,
"end_point": "stake_fio_tokens",
"end_point_hash": "0x83c48bde1205347001e4ddd44c571f78",
"type": 1,
"suf_amount": 3000000000,
--
--
"fee_id": 42,
"end_point": "unstake_fio_tokens",
"end_point_hash": "0x85248efc2886d68989b010f21cb2f480",
"type": 1,
"suf_amount": 3000000000,
testing and code review findings --
"end_point": "add_pub_address"
initial testing results – the following items have is_auto_proxy not set.
"end_point": "new_funds_request"
set up proxy, request_sender, request_receiver accounts
request sender sends request to request receiver using TPID.
check auto proxy set.
"end_point": "reject_funds_request"
request receiver rejects request from request sender using TPID
check auto proxy set
"end_point": "cancel_funds_request",
"end_point": "record_obt_data",
payer calls record obt using tpid, see that after its auto proxytesting in the existing tests, and will not be tested further.
"end_point": "proxy_vote", this call should clear is_auto proxy. ALREADY TESTED and passing IN tpid.js!! will not test
"end_point": "vote_producer", this call should clear is_auto_proxy. ALREADY TESTED and passing IN tpid.js will not test.
"end_point": "remove_pub_address",
"end_point": "remove_all_pub_addresses",
"end_point": "burn_fio_address",
"end_point": "add_nft",
"end_point": "remove_nft",
"end_point": "remove_all_nfts",
"end_point": "stake_fio_tokens", ALREADY TESTED and passing in staking-regression.js will not test
"end_point": "unstake_fio_tokens", ALREADY TESTED and passing in staking-regression.js will not test.