From b00ea5d3fb1cc4f65db5db905c3b8b0240fbaee9 Mon Sep 17 00:00:00 2001 From: Steven Lin Date: Mon, 20 Jan 2025 11:20:20 +0100 Subject: [PATCH 1/6] feat: added createRewardVault method --- src/handle_finalize.c | 1 + src/handle_init_contract.c | 1 + src/handle_provide_parameter.c | 18 ++++++++++++++++++ src/handle_query_contract_id.c | 4 ++++ src/handle_query_contract_ui.c | 10 +++++++++- src/plugin.h | 4 +++- 6 files changed, 36 insertions(+), 2 deletions(-) diff --git a/src/handle_finalize.c b/src/handle_finalize.c index 3e256493..039c4a59 100644 --- a/src/handle_finalize.c +++ b/src/handle_finalize.c @@ -6,6 +6,7 @@ void handle_finalize(ethPluginFinalize_t *msg) { msg->uiType = ETH_UI_TYPE_GENERIC; switch (context->selectorIndex) { + case CREATE_REWARD_VAULT: case DELEGATE: msg->numScreens = 1; break; diff --git a/src/handle_init_contract.c b/src/handle_init_contract.c index 970661dd..cc1523ea 100644 --- a/src/handle_init_contract.c +++ b/src/handle_init_contract.c @@ -41,6 +41,7 @@ void handle_init_contract(ethPluginInitContract_t *msg) { // EDIT THIS: Adapt the `cases`, and set the `next_param` to be the first parameter you expect // to parse. switch (context->selectorIndex) { + case CREATE_REWARD_VAULT: case DELEGATE: context->next_param = BENEFICIARY; break; diff --git a/src/handle_provide_parameter.c b/src/handle_provide_parameter.c index 12c70d6d..d635d72c 100644 --- a/src/handle_provide_parameter.c +++ b/src/handle_provide_parameter.c @@ -15,6 +15,21 @@ static void handle_delegate(ethPluginProvideParameter_t *msg, context_t *context } } +static void handle_create_reward_vault(ethPluginProvideParameter_t *msg, context_t *context) { + switch (context->next_param) { + case BENEFICIARY: + copy_address(context->beneficiary, msg->parameter, sizeof(context->beneficiary)); + context->next_param = NONE; + break; + case NONE: + break; + default: + PRINTF("Param not supported: %d\n", context->next_param); + msg->result = ETH_PLUGIN_RESULT_ERROR; + break; + } +} + void handle_provide_parameter(ethPluginProvideParameter_t *msg) { context_t *context = (context_t *) msg->pluginContext; // We use `%.*H`: it's a utility function to print bytes. You first give @@ -29,6 +44,9 @@ void handle_provide_parameter(ethPluginProvideParameter_t *msg) { // EDIT THIS: adapt the cases and the names of the functions. switch (context->selectorIndex) { + case CREATE_REWARD_VAULT: + handle_create_reward_vault(msg, context); + break; case DELEGATE: handle_delegate(msg, context); break; diff --git a/src/handle_query_contract_id.c b/src/handle_query_contract_id.c index fee87ab9..f5608c9b 100644 --- a/src/handle_query_contract_id.c +++ b/src/handle_query_contract_id.c @@ -11,6 +11,10 @@ void handle_query_contract_id(ethQueryContractID_t *msg) { // EDIT THIS: Adapt the cases by modifying the strings you pass to `strlcpy`. switch (context->selectorIndex) { + case CREATE_REWARD_VAULT: + strlcpy(msg->version, "Create Reward Vault", msg->versionLength); + msg->result = ETH_PLUGIN_RESULT_OK; + break; case DELEGATE: strlcpy(msg->version, "Delegate", msg->versionLength); msg->result = ETH_PLUGIN_RESULT_OK; diff --git a/src/handle_query_contract_ui.c b/src/handle_query_contract_ui.c index 74118a4b..af0ffb26 100644 --- a/src/handle_query_contract_ui.c +++ b/src/handle_query_contract_ui.c @@ -46,7 +46,14 @@ // Set UI for "Beneficiary" screen. // EDIT THIS: Adapt / remove this function to your needs. static bool set_beneficiary_ui(ethQueryContractUI_t *msg, context_t *context) { - strlcpy(msg->title, "Beneficiary", msg->titleLength); + switch (context->selectorIndex) { + case CREATE_REWARD_VAULT: + strlcpy(msg->title, "Address", msg->titleLength); + break; + case DELEGATE: + strlcpy(msg->title, "Beneficiary", msg->titleLength); + break; + } // Prefix the address with `0x`. msg->msg[0] = '0'; @@ -77,6 +84,7 @@ void handle_query_contract_ui(ethQueryContractUI_t *msg) { // EDIT THIS: Adapt the cases for the screens you'd like to display. switch (context->selectorIndex) { + case CREATE_REWARD_VAULT: case DELEGATE: switch (msg->screenIndex) { case 0: diff --git a/src/plugin.h b/src/plugin.h index 7ea21988..a6456844 100644 --- a/src/plugin.h +++ b/src/plugin.h @@ -25,7 +25,9 @@ // A Xmacro below will create for you: // - an enum named selector_t with every NAME // - a map named SELECTORS associating each NAME with it's value -#define SELECTORS_LIST(X) X(DELEGATE, 0x5c19a95c) +#define SELECTORS_LIST(X) \ + X(DELEGATE, 0x5c19a95c) \ + X(CREATE_REWARD_VAULT, 0x577ee5c7) // Xmacro helpers to define the enum and map // Do not modify ! From 6a1d94abb1ca2ec18549487712356391879ef06a Mon Sep 17 00:00:00 2001 From: Steven Lin Date: Mon, 20 Jan 2025 11:25:33 +0100 Subject: [PATCH 2/6] test: added test case for createRewardvault (unstable) --- ...c674a7cbbffcf7c01925d5bcb85ea0367.abi.json | 938 ++++++++++++++++++ tests/test_create_reward_vault.py | 73 ++ 2 files changed, 1011 insertions(+) create mode 100644 tests/abis/0xe2257f3c674a7cbbffcf7c01925d5bcb85ea0367.abi.json create mode 100644 tests/test_create_reward_vault.py diff --git a/tests/abis/0xe2257f3c674a7cbbffcf7c01925d5bcb85ea0367.abi.json b/tests/abis/0xe2257f3c674a7cbbffcf7c01925d5bcb85ea0367.abi.json new file mode 100644 index 00000000..da23b050 --- /dev/null +++ b/tests/abis/0xe2257f3c674a7cbbffcf7c01925d5bcb85ea0367.abi.json @@ -0,0 +1,938 @@ +[ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } + ], + "name": "AccessControlUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + } + ], + "name": "AddressEmptyCode", + "type": "error" + }, + { + "inputs": [], + "name": "AlreadyInitialized", + "type": "error" + }, + { + "inputs": [], + "name": "AmountLessThanMinIncentiveRate", + "type": "error" + }, + { + "inputs": [], + "name": "CannotRecoverIncentiveToken", + "type": "error" + }, + { + "inputs": [], + "name": "CannotRecoverRewardToken", + "type": "error" + }, + { + "inputs": [], + "name": "CannotRecoverStakingToken", + "type": "error" + }, + { + "inputs": [], + "name": "DepositNotMultipleOfGwei", + "type": "error" + }, + { + "inputs": [], + "name": "DepositValueTooHigh", + "type": "error" + }, + { + "inputs": [], + "name": "DonateAmountLessThanPayoutAmount", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "ERC1967InvalidImplementation", + "type": "error" + }, + { + "inputs": [], + "name": "ERC1967NonPayable", + "type": "error" + }, + { + "inputs": [], + "name": "FailedCall", + "type": "error" + }, + { + "inputs": [], + "name": "IncentiveRateTooHigh", + "type": "error" + }, + { + "inputs": [], + "name": "IndexOutOfRange", + "type": "error" + }, + { + "inputs": [], + "name": "InsolventReward", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientDelegateStake", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientDeposit", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientSelfStake", + "type": "error" + }, + { + "inputs": [], + "name": "InsufficientStake", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidActivateBoostDelay", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidBaseRate", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidBoostMultiplier", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidCredentialsLength", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidDropBoostDelay", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidMaxIncentiveTokensCount", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidMinBoostedRewardRate", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidProof", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidPubKeyLength", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidRewardAllocationWeights", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidRewardConvexity", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidRewardRate", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidRewardVaultAddress", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidSignatureLength", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidStartBlock", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidateDefaultRewardAllocation", + "type": "error" + }, + { + "inputs": [], + "name": "InvariantCheckFailed", + "type": "error" + }, + { + "inputs": [], + "name": "MaxNumWeightsPerRewardAllocationIsZero", + "type": "error" + }, + { + "inputs": [], + "name": "MinIncentiveRateIsZero", + "type": "error" + }, + { + "inputs": [], + "name": "NotAContract", + "type": "error" + }, + { + "inputs": [], + "name": "NotApprovedSender", + "type": "error" + }, + { + "inputs": [], + "name": "NotBGT", + "type": "error" + }, + { + "inputs": [], + "name": "NotBlockRewardController", + "type": "error" + }, + { + "inputs": [], + "name": "NotDelegate", + "type": "error" + }, + { + "inputs": [], + "name": "NotDistributor", + "type": "error" + }, + { + "inputs": [], + "name": "NotEnoughBalance", + "type": "error" + }, + { + "inputs": [], + "name": "NotEnoughBoostedBalance", + "type": "error" + }, + { + "inputs": [], + "name": "NotEnoughTime", + "type": "error" + }, + { + "inputs": [], + "name": "NotFactoryVault", + "type": "error" + }, + { + "inputs": [], + "name": "NotFeeCollector", + "type": "error" + }, + { + "inputs": [], + "name": "NotGovernance", + "type": "error" + }, + { + "inputs": [], + "name": "NotIncentiveManager", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "inputs": [], + "name": "NotNewOperator", + "type": "error" + }, + { + "inputs": [], + "name": "NotOperator", + "type": "error" + }, + { + "inputs": [], + "name": "NotRootFollower", + "type": "error" + }, + { + "inputs": [], + "name": "NotWhitelistedVault", + "type": "error" + }, + { + "inputs": [], + "name": "OperatorAlreadySet", + "type": "error" + }, + { + "inputs": [], + "name": "PayoutAmountIsZero", + "type": "error" + }, + { + "inputs": [], + "name": "RewardAllocationAlreadyQueued", + "type": "error" + }, + { + "inputs": [], + "name": "RewardAllocationBlockDelayTooLarge", + "type": "error" + }, + { + "inputs": [], + "name": "RewardCycleNotEnded", + "type": "error" + }, + { + "inputs": [], + "name": "RewardsDurationIsZero", + "type": "error" + }, + { + "inputs": [], + "name": "StakeAmountIsZero", + "type": "error" + }, + { + "inputs": [], + "name": "TimestampAlreadyProcessed", + "type": "error" + }, + { + "inputs": [], + "name": "TokenAlreadyWhitelistedOrLimitReached", + "type": "error" + }, + { + "inputs": [], + "name": "TokenNotWhitelisted", + "type": "error" + }, + { + "inputs": [], + "name": "TooManyWeights", + "type": "error" + }, + { + "inputs": [], + "name": "TotalSupplyOverflow", + "type": "error" + }, + { + "inputs": [], + "name": "UUPSUnauthorizedCallContext", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "slot", + "type": "bytes32" + } + ], + "name": "UUPSUnsupportedProxiableUUID", + "type": "error" + }, + { + "inputs": [], + "name": "VaultAlreadyExists", + "type": "error" + }, + { + "inputs": [], + "name": "WithdrawAmountIsZero", + "type": "error" + }, + { + "inputs": [], + "name": "ZeroAddress", + "type": "error" + }, + { + "inputs": [], + "name": "ZeroOperatorOnFirstDeposit", + "type": "error" + }, + { + "inputs": [], + "name": "ZeroPercentageWeight", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "oldVaultImpl", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newVaultImpl", + "type": "address" + } + ], + "name": "UpdateRewardVaultImplementation", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "stakingToken", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "vault", + "type": "address" + } + ], + "name": "VaultCreated", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "UPGRADE_INTERFACE_VERSION", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "VAULT_MANAGER_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "allVaults", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "allVaultsLength", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "beaconDepositContract", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "bgt", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "stakingToken", + "type": "address" + } + ], + "name": "createRewardVault", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "distributor", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "stakingToken", + "type": "address" + } + ], + "name": "getVault", + "outputs": [ + { + "internalType": "address", + "name": "vault", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_bgt", + "type": "address" + }, + { + "internalType": "address", + "name": "_distributor", + "type": "address" + }, + { + "internalType": "address", + "name": "_beaconDepositContract", + "type": "address" + }, + { + "internalType": "address", + "name": "_governance", + "type": "address" + }, + { + "internalType": "address", + "name": "_vaultImpl", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "stakingToken", + "type": "address" + } + ], + "name": "predictRewardVaultAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "proxiableUUID", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "callerConfirmation", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_vaultImpl", + "type": "address" + } + ], + "name": "setRewardVaultImplementation", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newImplementation", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "upgradeToAndCall", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "vaultImpl", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ] \ No newline at end of file diff --git a/tests/test_create_reward_vault.py b/tests/test_create_reward_vault.py new file mode 100644 index 00000000..ad841a69 --- /dev/null +++ b/tests/test_create_reward_vault.py @@ -0,0 +1,73 @@ +from pathlib import Path +import json +import os + +from web3 import Web3 +from eth_typing import ChainId + +from ledger_app_clients.ethereum.client import EthAppClient +import ledger_app_clients.ethereum.response_parser as ResponseParser +from ledger_app_clients.ethereum.utils import get_selector_from_data, recover_transaction +from ragger.navigator import NavInsID + +from .utils import get_appname_from_makefile, DERIVATION_PATH + + +ROOT_SCREENSHOT_PATH = Path(__file__).parent +ABIS_FOLDER = "%s/abis" % (os.path.dirname(__file__)) + +PLUGIN_NAME = get_appname_from_makefile() + + +with open("%s/0xe2257f3c674a7cbbffcf7c01925d5bcb85ea0367.abi.json" % (ABIS_FOLDER)) as file: + contract = Web3().eth.contract( + abi=json.load(file), + # Get address from filename + address=bytes.fromhex(os.path.basename(file.name).split(".")[0].split("x")[-1]) + ) + + +# EDIT THIS: build your own test +def test_create_reward_vault(backend, firmware, navigator, test_name, wallet_addr): + client = EthAppClient(backend) + + data = contract.encodeABI("createRewardVault", [ + bytes.fromhex("0xe0b93a409fee110Cd9122F34f89471B5Cb01466b") + ]) + + # first setup the external plugin + client.set_external_plugin(PLUGIN_NAME, + contract.address, + # Extract function selector from the encoded data + get_selector_from_data(data)) + + tx_params = { + "nonce": 20, + "maxFeePerGas": Web3.to_wei(145, "gwei"), + "maxPriorityFeePerGas": Web3.to_wei(1.5, "gwei"), + "gas": 173290, + "to": contract.address, + "value": 0, + "chainId": ChainId.ETH, + "data": data + } + # send the transaction + with client.sign(DERIVATION_PATH, tx_params): + # Validate the on-screen request by performing the navigation appropriate for this device + if firmware.is_nano: + navigator.navigate_until_text_and_compare(NavInsID.RIGHT_CLICK, + [NavInsID.BOTH_CLICK], + "Accept", + ROOT_SCREENSHOT_PATH, + test_name) + else: + navigator.navigate_until_text_and_compare(NavInsID.SWIPE_CENTER_TO_LEFT, + [NavInsID.USE_CASE_REVIEW_CONFIRM, + NavInsID.USE_CASE_STATUS_DISMISS], + "Hold to sign", + ROOT_SCREENSHOT_PATH, + test_name) + # verify signature + vrs = ResponseParser.signature(client.response().data) + addr = recover_transaction(tx_params, vrs) + assert addr == wallet_addr.get() From ad822d23423a27431a5623b4caab148ab0a0f0e6 Mon Sep 17 00:00:00 2001 From: Steven Lin Date: Mon, 20 Jan 2025 11:56:35 +0100 Subject: [PATCH 3/6] test: added snapshots for all devices stable test --- src/handle_query_contract_ui.c | 6 ++++-- src/plugin.h | 4 ++-- .../flex/test_create_reward_vault/00000.png | Bin 0 -> 12779 bytes .../flex/test_create_reward_vault/00001.png | Bin 0 -> 15859 bytes .../flex/test_create_reward_vault/00002.png | Bin 0 -> 13211 bytes .../flex/test_create_reward_vault/00003.png | Bin 0 -> 6357 bytes .../flex/test_create_reward_vault/00004.png | Bin 0 -> 12445 bytes .../nanosp/test_create_reward_vault/00000.png | Bin 0 -> 414 bytes .../nanosp/test_create_reward_vault/00001.png | Bin 0 -> 488 bytes .../nanosp/test_create_reward_vault/00002.png | Bin 0 -> 778 bytes .../nanosp/test_create_reward_vault/00003.png | Bin 0 -> 457 bytes .../nanosp/test_create_reward_vault/00004.png | Bin 0 -> 472 bytes .../nanosp/test_create_reward_vault/00005.png | Bin 0 -> 382 bytes .../nanox/test_create_reward_vault/00000.png | Bin 0 -> 414 bytes .../nanox/test_create_reward_vault/00001.png | Bin 0 -> 488 bytes .../nanox/test_create_reward_vault/00002.png | Bin 0 -> 778 bytes .../nanox/test_create_reward_vault/00003.png | Bin 0 -> 457 bytes .../nanox/test_create_reward_vault/00004.png | Bin 0 -> 472 bytes .../nanox/test_create_reward_vault/00005.png | Bin 0 -> 382 bytes .../stax/test_create_reward_vault/00000.png | Bin 0 -> 11719 bytes .../stax/test_create_reward_vault/00001.png | Bin 0 -> 14479 bytes .../stax/test_create_reward_vault/00002.png | Bin 0 -> 12133 bytes .../stax/test_create_reward_vault/00003.png | Bin 0 -> 6218 bytes .../stax/test_create_reward_vault/00004.png | Bin 0 -> 10991 bytes tests/test_create_reward_vault.py | 4 ++-- tests/test_delegate.py | 2 +- 26 files changed, 9 insertions(+), 7 deletions(-) create mode 100644 tests/snapshots/flex/test_create_reward_vault/00000.png create mode 100644 tests/snapshots/flex/test_create_reward_vault/00001.png create mode 100644 tests/snapshots/flex/test_create_reward_vault/00002.png create mode 100644 tests/snapshots/flex/test_create_reward_vault/00003.png create mode 100644 tests/snapshots/flex/test_create_reward_vault/00004.png create mode 100644 tests/snapshots/nanosp/test_create_reward_vault/00000.png create mode 100644 tests/snapshots/nanosp/test_create_reward_vault/00001.png create mode 100644 tests/snapshots/nanosp/test_create_reward_vault/00002.png create mode 100644 tests/snapshots/nanosp/test_create_reward_vault/00003.png create mode 100644 tests/snapshots/nanosp/test_create_reward_vault/00004.png create mode 100644 tests/snapshots/nanosp/test_create_reward_vault/00005.png create mode 100644 tests/snapshots/nanox/test_create_reward_vault/00000.png create mode 100644 tests/snapshots/nanox/test_create_reward_vault/00001.png create mode 100644 tests/snapshots/nanox/test_create_reward_vault/00002.png create mode 100644 tests/snapshots/nanox/test_create_reward_vault/00003.png create mode 100644 tests/snapshots/nanox/test_create_reward_vault/00004.png create mode 100644 tests/snapshots/nanox/test_create_reward_vault/00005.png create mode 100644 tests/snapshots/stax/test_create_reward_vault/00000.png create mode 100644 tests/snapshots/stax/test_create_reward_vault/00001.png create mode 100644 tests/snapshots/stax/test_create_reward_vault/00002.png create mode 100644 tests/snapshots/stax/test_create_reward_vault/00003.png create mode 100644 tests/snapshots/stax/test_create_reward_vault/00004.png diff --git a/src/handle_query_contract_ui.c b/src/handle_query_contract_ui.c index af0ffb26..2617ded4 100644 --- a/src/handle_query_contract_ui.c +++ b/src/handle_query_contract_ui.c @@ -44,7 +44,6 @@ } */ // Set UI for "Beneficiary" screen. -// EDIT THIS: Adapt / remove this function to your needs. static bool set_beneficiary_ui(ethQueryContractUI_t *msg, context_t *context) { switch (context->selectorIndex) { case CREATE_REWARD_VAULT: @@ -53,6 +52,9 @@ static bool set_beneficiary_ui(ethQueryContractUI_t *msg, context_t *context) { case DELEGATE: strlcpy(msg->title, "Beneficiary", msg->titleLength); break; + default: + PRINTF("Received an invalid selectorIndex\n"); + break; } // Prefix the address with `0x`. @@ -96,7 +98,7 @@ void handle_query_contract_ui(ethQueryContractUI_t *msg) { } break; default: - PRINTF("Received an invalid screenIndex\n"); + PRINTF("Received an invalid selectorIndex\n"); break; } msg->result = ret ? ETH_PLUGIN_RESULT_OK : ETH_PLUGIN_RESULT_ERROR; diff --git a/src/plugin.h b/src/plugin.h index a6456844..ada0f04c 100644 --- a/src/plugin.h +++ b/src/plugin.h @@ -26,8 +26,8 @@ // - an enum named selector_t with every NAME // - a map named SELECTORS associating each NAME with it's value #define SELECTORS_LIST(X) \ - X(DELEGATE, 0x5c19a95c) \ - X(CREATE_REWARD_VAULT, 0x577ee5c7) + X(CREATE_REWARD_VAULT, 0x577ee5c7) \ + X(DELEGATE, 0x5c19a95c) // Xmacro helpers to define the enum and map // Do not modify ! diff --git a/tests/snapshots/flex/test_create_reward_vault/00000.png b/tests/snapshots/flex/test_create_reward_vault/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..42c2bf87dba8489abb33d93353a59ce915cbe7e2 GIT binary patch literal 12779 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 g`=4)Y$1;N)l83$ugT4Vjx?wUgvba@yPx# literal 0 HcmV?d00001 diff --git a/tests/snapshots/flex/test_create_reward_vault/00003.png b/tests/snapshots/flex/test_create_reward_vault/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..be51a9d5595cf5ea25f8f90b684306d30395f329 GIT binary patch literal 6357 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 UPsf12D=dzNgdJ`>c;@PV1L0-a-2eap literal 0 HcmV?d00001 diff --git a/tests/snapshots/flex/test_create_reward_vault/00004.png b/tests/snapshots/flex/test_create_reward_vault/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..dabe7afea35d5f2c73b04e4e20993035bd748cb3 GIT binary patch literal 12445 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 literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanosp/test_create_reward_vault/00002.png b/tests/snapshots/nanosp/test_create_reward_vault/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..fccac64d4057d4950eaecc4a345735460caf9f1e GIT binary patch literal 778 zcmV+l1NHogP)=bTj^j8E{E}1u z?fA}iptMl_o0u-~lkLC|b3V+wq1Jkq*IGp#yd;a{J3s_f+zlc$W}z_B>X?BRZFR~0 zJmL-z!2;KQ%t9aW(Tv_n{vJ>+*i>srnFT#}@5!8iHu63doH<=rM%JlQ=b8DZl=79> zx1STteR8y&j#l*ZH(^2uA%u|6Wd0Z$J1&Y=qo;da?fe0DC(I&e-N0~SX7@bl#-vK! z%2yXmi4EyRt3conoU@7UXxcT{*RmGW7G1ykkd?c-x<#v^)>jijmrPCXIZ>j$1^oxB zZ4l%7DM1_>rK5JWuWX)yeG85QI%R1U4;jlwmM1`n?mT^H}!V$R0U5 zw#k^QdsI#2S-oas_QM%w7kl=AJ27*}0|9-L6Cj$I2}jUxhHc|=(iFY{ib5aV>2%w7 zJa<|lU7sc906nw0uO>c(VUQX9+b}}S=-&+IAQNVxOeR6*99)VH@7hawt^YWR;L>wv zEBBuQefe`q`!uyI$C`H4Z|IC7&QxghRZqtb*vix(LEjuxBO{~k0+vTW-vu3iICZW* zk(z6Nb+o1_lUIhb)OIdKjBeHIFf)n%tSWG5H%%dzddIYHx)3KW#(|TeM`f<%lU{;f z)p<;jYVV5Cio)w11t$RPcpCizEF4_^oI2^4%F^{N{5l$mKEg)%^ByI2$?|*x%r}2v z;sf>0fMv(er5B}3AaNM!po9=Y2qEM_jLvad9_`jUGDmG=OVB#S!1ipq{e z3YH|2|36{m%;L*uF+p_N={@96Kv<0#)klus=@L-m5r5R)ORZJwed#NG#Jf&_cp>ws zw7x`s3X1VAUx-f0pMa5|SVBAG=rhft=1g=-2qAJZ2~eSuq0K^q#K_4vz{f$7%=w006*pU+bq#DIFhTjJ=lI zV-Ak9-fQ;)JpG}#XFE3_r4(bV4sZBd#Kv;c34hInC#InGo(SjJ@9jtaPBlU~l-O8ZUB3t0HlRu-?a2+DNWD8t z{@lx5)$EJ+U~>wxhxo0H5re2ic31uh4@^O2s>#F$wH~r+oa4)4r0{G12(`b z`n%LAXmDjNDKZ!6%UixIXNFD^YyW>avQ%*ymXY;IwZ5~TjR;DRiT*M|sEPh!?7>cC zp`9**%pOcdcmV(a000000000000000fN6dJclAj7vBj#a00000NkvXXu0mjfw_4RP literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanosp/test_create_reward_vault/00004.png b/tests/snapshots/nanosp/test_create_reward_vault/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..570ce28d53e82ac396ba25c370110058f3a638f9 GIT binary patch literal 472 zcmV;}0Vn>6P)Nkl`l1;k+@4An6g^M6kcbtxu@7*hfO000000DuchDWw$aQJnB& zJ%BsK3VrpQ1hnYqoNY&PO0WdV>i`7cs)e_@w@x()p@w=B24`klR6(CLpxqtlZO|2 zIWjpO-F~*EHtLqUMt)Wc_@bMv^h#{CUFW0M(vJ1P=5N1GhWcHM(-Xu*&bc@D4_o$^ z7Y|pL)I@*DzttR=&yLH#^{|TW)8Sp0qphw%epiuSUG#WHS~ht|j~;`U4>BXmdi9@& zuz>%00000G5i7^TsbXePb2LB O0000sAjk5Y(@*V#~rbuHu`7A_H&AxgwHf8y4cdKvg$JbB4n%ez%sZ31aBYd&Oo@(7)_WJ(Znl2o8^PD` zFE`_Y-IS+Kdq0Q2-7r_C=}F(5ev`U`H~)QH|9$1FHE$YjoVax+e0xei%S`SAGlOm! zp7{T3NA-mVOYb&rdU8MdyIHo@@7cE*uj@I+Zu{2i)KMSV-E~ovpO}&+|8}fC)JNq`>?#dJ%s{^>GN_4usXQirk{^@^BA?p!El9&T9q~zMsh2=YdLB`_ONiP zKy6XlUGFZ>Cn7mP3u*P)$S_nA57`Ei&OINUxR!xngcBtM0001ByRXgtrIhN!7~_ie zXPTXlTY5f|13?lVsu|&@A^2C0V4g& zp_nf*ajk&*R0*!TGq2S{I+74)G9WKEvF^;N(TlohO{F#;x!=2NL7|)YV!LoPd*|8> z&TK)o%ZdLEkI?&0J_CxfJTo0%2e>ZmTnhjIfX|RB|D&UzJ`msezU>Y6d1N{!Td2b} z-0TN?@0V3fj#7mF=GiJbnl;FLXch)0zth(7b?r>QHfyV`vAMbqe+#I3044b0-y6&k zn~SBhro8cHn0TT8&UZcEyZ5~;$$+8Ze%g;WPqj+_ms=hx=_S_qdt*D literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanox/test_create_reward_vault/00002.png b/tests/snapshots/nanox/test_create_reward_vault/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..fccac64d4057d4950eaecc4a345735460caf9f1e GIT binary patch literal 778 zcmV+l1NHogP)=bTj^j8E{E}1u z?fA}iptMl_o0u-~lkLC|b3V+wq1Jkq*IGp#yd;a{J3s_f+zlc$W}z_B>X?BRZFR~0 zJmL-z!2;KQ%t9aW(Tv_n{vJ>+*i>srnFT#}@5!8iHu63doH<=rM%JlQ=b8DZl=79> zx1STteR8y&j#l*ZH(^2uA%u|6Wd0Z$J1&Y=qo;da?fe0DC(I&e-N0~SX7@bl#-vK! z%2yXmi4EyRt3conoU@7UXxcT{*RmGW7G1ykkd?c-x<#v^)>jijmrPCXIZ>j$1^oxB zZ4l%7DM1_>rK5JWuWX)yeG85QI%R1U4;jlwmM1`n?mT^H}!V$R0U5 zw#k^QdsI#2S-oas_QM%w7kl=AJ27*}0|9-L6Cj$I2}jUxhHc|=(iFY{ib5aV>2%w7 zJa<|lU7sc906nw0uO>c(VUQX9+b}}S=-&+IAQNVxOeR6*99)VH@7hawt^YWR;L>wv zEBBuQefe`q`!uyI$C`H4Z|IC7&QxghRZqtb*vix(LEjuxBO{~k0+vTW-vu3iICZW* zk(z6Nb+o1_lUIhb)OIdKjBeHIFf)n%tSWG5H%%dzddIYHx)3KW#(|TeM`f<%lU{;f z)p<;jYVV5Cio)w11t$RPcpCizEF4_^oI2^4%F^{N{5l$mKEg)%^ByI2$?|*x%r}2v z;sf>0fMv(er5B}3AaNM!po9=Y2qEM_jLvad9_`jUGDmG=OVB#S!1ipq{e z3YH|2|36{m%;L*uF+p_N={@96Kv<0#)klus=@L-m5r5R)ORZJwed#NG#Jf&_cp>ws zw7x`s3X1VAUx-f0pMa5|SVBAG=rhft=1g=-2qAJZ2~eSuq0K^q#K_4vz{f$7%=w006*pU+bq#DIFhTjJ=lI zV-Ak9-fQ;)JpG}#XFE3_r4(bV4sZBd#Kv;c34hInC#InGo(SjJ@9jtaPBlU~l-O8ZUB3t0HlRu-?a2+DNWD8t z{@lx5)$EJ+U~>wxhxo0H5re2ic31uh4@^O2s>#F$wH~r+oa4)4r0{G12(`b z`n%LAXmDjNDKZ!6%UixIXNFD^YyW>avQ%*ymXY;IwZ5~TjR;DRiT*M|sEPh!?7>cC zp`9**%pOcdcmV(a000000000000000fN6dJclAj7vBj#a00000NkvXXu0mjfw_4RP literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanox/test_create_reward_vault/00004.png b/tests/snapshots/nanox/test_create_reward_vault/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..570ce28d53e82ac396ba25c370110058f3a638f9 GIT binary patch literal 472 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 Q0c{o|{rh*SZ#zZ(2M0Y#ZU6uP literal 0 HcmV?d00001 diff --git a/tests/snapshots/stax/test_create_reward_vault/00001.png b/tests/snapshots/stax/test_create_reward_vault/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..ffffcf3840f239108c391e84da342d05c7e144d7 GIT binary patch literal 14479 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 $jF+WBU`+m7*Dj4}GrIk-45Qty?OldiFncoFBcF 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 literal 0 HcmV?d00001 diff --git a/tests/snapshots/stax/test_create_reward_vault/00002.png b/tests/snapshots/stax/test_create_reward_vault/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..7300dc4b546fadfae1bfcb642c19e29ac28f6b88 GIT binary patch literal 12133 zcmeHtdpy(c|F=p-5tWh>9VkU|J`NvAMIp*z&Z;?V4mr)4=&(={A*U%hWNa8C#->&| z40GJDSaOPO7Q<+b``zdJxc|NXxF7fZ_}!2D@!MbX_TJvt>)Lf)&(kaUru9|vJxBKl z2?>c?T)S*1B(yDENND>Tk?p`01DlpgA)$*Z7MD$LM;5Th*}142(q&%JX}a4Cgbjqn zOwHOP)r7@O&H5xy2#ajH^gvSK5mFuow=#-Ne%gku=F%oET(XsF+$r_zkh!g-@IIlc zi7jxmkdT^G;?94>x9@#$RQRxvwup)lRMJUk=tPasdsEMCHy^fbf3xeqZ}{(d_!m}3<|xK73$wabx$d$6rT{u zR{dHvpk-8O9fj02Sq5>UTLT;EV~k4F@6An}tyTsH!z47m>U%h=p1*a$?Lkwabvb!v zVAT(tjUQi(1R*IteBhR5jPmjL4IX{3fkR$du&iO)RC8d!1vTdc^m(YzCqB4W)0nG~px=a`gs@h37{e;#GcS(8%TxfD{MwNlz5)uG$Ht~1aH!HKUmhab z2?EX|WX(lcWJDr;Y|`g8;)yw$U#Z0W4>I_mM;V*)};(WX1E-SX8y=q zo zdQJBQ5?6U47}fRXcEZo}zIql`rH8Yiunc0b;b_u_HNKz?!iM9i=ce=~IK1k^wWN4r z5Zl@yEmTi-AHs|_Qcq_$jQU5<{$VZn>*QnZ{=%vx#K-3;$~b;Pq2lA?S==2BT2^?S z8DH#Y4DR~i%G_Kz@ukXuj>7_Hr3N~8IiI$TzxwCVn8`Aot&>u$Le5ZlSrkm+c28P3 zN?f1)9yPHMYn`EBkufF_;wVizxdPwefB!w+9q|9GJ z!0bGnQDZ0lYx}xc;wt?J_4}V=qiXjuBXHMZd@5)9ISIVVSz%mZ`P%rVzKLr)=Cnu5 zTLOo+cF=2W!}-QjjHFDff%lW1)>frG8y(?pF`Cbn-?r-i)^!LVMmkka6n`6{Dy}g2C~FPUyFO@D@z2uF)YUw4WkS zsFXSS;Oo}XhNu0NgGA0D^L~TI{fed+SdEGDM{YU~DU3r^= zNz47PdfA5d4SB%}oIOi)J7%6H>EhBMVwUZ@)w{fJ{^TDn`grfW%o&NIC1dsZtMKH4IYmdPn1^| zS@aTRllQtEBZs?jihTC|>N+sPKug3pl>}5#<&PqU>&JmZhP@GsL7h*VBG25}?%PNg zZ+bkuuL_xLL}6~pxK1zDA@*i@LA)RJKMKX@%e@GeB`;o}U)oOQf@JOwX`lICabVv! zr-Mg7TxRefT~yrn-ph0kmX~%DMj4T^CWAr7l(@|OdJ=M>421&bh|bQl8Gk968=DNy zE~LykYiC2wIWFe6&vSF`?*dsfPi|+Ld{WagnKetZ{B6j6(){EDo!ve8OxBd_^qj$9 z6e~R`$T~I|2?BOWu~P3`D0}+Vv#^-jN0rB=1M}Ju0#+-@LtmkOcj_7^Xl;D}QHOJJ z$}2<9o$JC59dep2lWY&}o#QH$7a=mqxMdEo4f`CL&YzP1yN+t7*D8`zCp;roqO*OS z$DpUfjW#Vk?d`+$WTzQM5i$BU4RSHY!Lp6L4&zosa7wB6UT?Aog^N|;Z*FEQ<|RE> z_5yyo`2Ne2=`ly-k76(LEsF2y`F}4ala9`@QwnjcduNY=4-|-xW3-w z#=|{3J^sGOo6F@68hm^jf7MZx{e1W+H01G8n1NL|H@o#SRg|?iFM&NuJpCuDEkw56 zxNpQ?rzhqoG@?ix)K^0pjgO2=5E4-w3*SuBYndogDbr zHUk(0W6UGm!yaevQI9G}`%h=>sY^3n4LBQ{^309I>7|;7e=1%s;uz5RwcVzDtQ)|# z8H%pt#sw(XwigY6h9HtuUKP*mv2JpMhOCe8yf`WQJS*2fjF0&Fh=xM z`nphpa?K)-pT48j+gV^79sjh@Qpe)G{tjj%JG&FpP7doiX_0~HS^`n_{j6{(Prz#x zscB*!6>p)g(+X7uxG@IkcMKDKU7^NV@Yd{7d$2352g{0Xg|p>MB|9Fx@tISh9C=!- zBxa^57mhLnA;XP}U=k?{(NAtjM|}^f%f44XCT#AX4h?!jXjyrylrna;`qfS3_5PMi zrz~iP9#;>cK)!Folb8G3HojjZ%#v$3!eMT_IGS(wRDrjg;;-MU%P3SywkwU@RBv#S zUw@lY=k?st(l;Suovl|rwD3Xk)B0edc7ApB#f{xK@s=M!#}5$9z}X1WB%hCm)jx`x zNlnygQx>Um{1UA4Fgmc&g+1S_;XEu>U&{asc?$0nJ$o}|8qVx7((ujC|MI}GkCgWh zJNf&J$?U}ti`4qoRP4X=Qomo*l*$3r+Y4rDW$^SL4eokDb%6_+EIj+Zc zk2}tehb@1@l%{gG`bpc}u>fBDJ>GKHAeYDnh1OWRwd-+IPl6mkF_x1gqkgje$pWz< zIqKbyR6Uqyr%gJjJ-T5geiu}NS?dX#{-4jD)l+yi@lIf^5E_kTR(xFcKNppN{mT%D z>$fZZVzf48XO`pp2Guc8pC!_J=1ihL}lx2Mcn2>D*c^hoM!*PB#aJHmybE zSAW+rN*jwPLJgNY)NGAXEiyodoQx9bRf%I_9^k9nnW7dMBQ{1n(8Y~%>MOPf?Sx2% z!nu@FWUO<0@BvgKj97|V|_WLGWpcjD81s9CJJz`r)a_rmun5mNs z0cR*+uhWb6iB>VL8euV)V}g&L1>XBOPvv*-clz|m+R1vjDqFUyYZB)a^DcF02EFPD9~)!jm-|Dx{^R$i zpy3^R#%BC<-i|5H?%tK%nMAc3J*0jSGj%&rQLf=D4{Yn1Yso>m8umZ=yg`y_K;EdO z2h;4F6XpWSj%(%91o1D5--q{l@65MfsabPBXII%sHKWDf@%GIQY_#F)mNmTDk2AQp z)2aq;pBG06_w*dqp8%cLlGl#tcBC%d-444zI?CeR2|r#*Pe_P7_BmaqYyTZvDKza) zEF;J$%GN%s$#Os&+S}bnK%ScJd$+YcQ;A3>tp-Adz}G!TFA&aNj%DPWli$n`EAV=O z2^tNZ@Yj);8|-#yIz*0tIGO5x(e8!rFbR&&QcIcoaM)>i$LWKw6WwMvwpq7tf|?x= z3L#q(^joX*de)M{2b@A=Jwv{wv8WfVCx9oAPfpe$15WM5raIdXd)JM!;f-`ObrwX) zXUA2h4!H-s?J<7UROA5nymd??F}Es8n78Q6-uifKDfDL)QuN$lfYw&J8F9?fVIbsi zW40XipR#@ve?>0nb2+^5eb)GEIKEJ@UZN&e%I?wvD9?SpZr2ivXHLG7!dR@`$+8`g zqQ$J>Nx!^Zrk)Gvs0UlXw^Mk*^YTx;*zfy<9hfrDWSrCXz(iH>+Pngx}tp?PFhN912-@sx|pl=l1hxQlIQcQRNue|)0bGTJVrow6FuHb`70IOFIg z`uz^K?1xhmA!&Ph_UJfH#xdV7_Jv$PJc6fIyBVmn_9jU1Ma;Zkm(913rfF_*@lllS!iDLFV_A?Pvw(zgow zs%52{-!pkX5@kvp_|3Ro(x^HV>t?NB_#BzHQJuS$&UWWoqVrfkp_i&}m&r5-23X+w*ADd<2Pxtb5xVr4_R?{Aoy|Wm2aaLNUAU5 zQo*zWK4P5Sh#V;zo07|KT%|fg*@NZKpvafeE!A@VxX_ol{N4Gw)!O;YpU%gzN$`Wv zv?tZ2b8X(Eb-%6K#h<*R^{Wz@&2VzXa~0-My)gr=6)#w9(Z+UiAfcDIR}t59i@CVV z^u$#bZcvdV?M%=1Isyn~eJ{VQ{>`p*_%{QeCUG?NDNNakZz*MND+P$Xb1&Rb|DNh@ z6V4KD9zl!GaZ~T8xz8$x6P2A@UY-z1Ykw!x=4Vpkd)af?dt$Jm9X-WK;5-i7A`2NR;(SC9XQIkM`-&UfWK80<>9g=`lWopa)no$uPHl{Cf_^i$6uOn%A1XH zr=ZWGwFj$O_nR*)Q=`>b_JMJc4_m2jE(xyaeI6e%2g{Iiqc3*I?014o56>HYlNk?5 zDfVqGS!@o>hPWjTv*=W6;5Aq*0t_&vrGJX3F?|^de(vEJ@$S>+ zxvPx@#Y%Z+cbA$0{COF@iFhOK_dJsi4B>Nfx3suS;faXsP9>k1H{-sUls;sg%oVNs zy>Kt&@q=nLYsd=&%)?+`w9q?PxJYP(7mbb3jBK3&;oa_m1zcHmdT_R=iqH`+bJ9_v zH}d}*24CBecZ{5ej#V?-9!IXqnGUa32teN`-pJe9l+X{><(Vy-OOYU|Tv{40ZzK8L z>uiC+166=h6lHCCA){k|rb1sx#4qS$BKIR66hT_2J);T&^b%Ltn$LK>4Y>Sn zW7>(oT9iXJcMmoWdTV@3%6xf8+tT-Lkt&K8F}dyOR3wo>CQ2Z7Bx)zK;Vv7ZQ;+8jOf$3+&xKQH)Z4E^q%3yx$oWhxUIvO1B7DcW3$=TAnmeXvLVaaV{m0CToun7 z(i|oAjEBGXogmO~r%WYRh;5j)H3OHed{%SHkaHuh@)4R|I(MOka(JMd*nrIp@)(kI zIz3wbhdmHGRXhGB#{Il*iX;hpy_30&m1Xwg&go;$XWX&ECHqB5lx4j2;h|6#xS7+*a87NI6>z}$853036{iK%b5xHmsI^NXWNmn=NfVE$I9VJTFM_chXR`g zhhRK)SW%ktG^s5Q$}fJ>c9c{7el;!#?MZ*RNZ>>SK(4qqT=Zp#!dOM%9fBD6gZ2jpyceHn`@qV3gJs5vuAc<<#z8tlSqNoO=$ zCyXQz#{+vrn**aXMF&C=-|Ln^L|4_GJGbp2SM8{UnFC}tn$DcFVzo1z_U>kc~d)>4L)zHC5}cq zb)1~2jhh5k#t0uyK~C`rH%9Yzaz1QBSLW0+IFPf+Q|oX%ZcQ5y5TuR9GaS+(i$Sfl zyPEea7;VjL^+gw(L(6er+RTKh^b4CqB}yqbyjw#edh3+!?1uvzVMf_2AWHbSwiw>g z_Sz9)D*p9&jJQdI*O9!_FR7;u`3BB8h|^zStP|;c%uIJ$_Z%FbyTtqY=Uv-XsRMgY z)gZk&jc7yS#V zT7x1A|G`zmjp*u82x_Pq{A0Hu`c^Ie0@}1M`hk8);GkBkt7;B;X0?tswI_M!ey6*y z1t{kE3_*Ph($L)dZch93E7#s2YtQS0VRfT`dDl-PH;47~Vd&Hrz{>-m77+DvSgXux zZTHKb&%H41S&$|=8(M_4KFggVvUW^NZxhS!`5LAOo%fTd(|FONagRN{uvs_nnKpYb z_8;~jX|gZes8^~&g)E5oAgl0GtG5n3Q&q_Rq+g{T%P^69v3xX1%Zf-KOv`zSiVSuE ze5at?oIoJRS>HM)!{Nstc{1?g>C`%tsVrtTpVXNZuQ^lK2`lgPt`jBQY_^7gCjxc# zO@@!|rn9M1=d1=foFM)E?%AbAthVl7hu-Z?{&FAI>nrdYispPFMJR@i?;U`2p!GlT z1ejxi^83PmMzJna9`26DfVz4*XNi=<72rk*@*wU*@Z;D>SnqARw6^Slw6nTDbQ9)! zjDDxSLS2zNDs65Hz?t;;^!~kQ>D`~yS{R(E-x|xZle7LLHDE1o;q6MO%~|bg&y*@_@H28y~l2jYB*IoPBKS(g4Yy2|xm>v3qTmO4;(637cao;>;Afzp2m zYyY3*hhMj3+mojv=kEx$-Q5b6Ju8w_nz~KsMesF||C8zIW@Fekp%yZYMkD#fCnWeN zb>0?H`5r1}@qV+q3Pco9`KNWi{_1@P<_*>DdvE%GdJiq+j@?OZ+kQLRbkMTf1GIgwQ$<#J*6XHp;lnjo&JS32gKq=Zj+^@_dMm2|_oX)1AK*&m zw{3U0?B|>;v&ZH?K{54GIM1>r=8%Yr=ON=0=+7>WkN%S$t8nf%JN}5PH2cqehu6Hu zm6yu0fRX;qn6LltSj>uSNA3SNc7E_B_CC+@1|jL+G`fmd{5RCgR^9n4W8UM^%d(0; zck$!ahD(wVa97}bGiEM|5^qEa-9XGmVVKr-CE9?f${_<7Gqn_HT$H1_Pj*g1RwAXk zy84`l<9_pgP8eX}RFDbn}_}67EI|w`%8RMyIXA^bo5kEvq2lxQAzsIF~D> z#4>nsCMm_GPTE=#7f;6SMW}w zDijKEA?)oTV1u+N{w5s18n=}dRpyshR*~y<OuPkqQH95MCay( z%VSSA-aDK+1np-J@?Xa#qXbV;QP(RqlX;{VHIkho3RD8Z0W3*L((h1ENIW z3slQPeSv`_Wl0HO@!(N-Xs?OD;F{F|oj>zKTM#8{UWp81!> zikWSs&P8>a;1((MOhCqW2Lon9naLsZm-FJ{FGTUyK(zohJ&ScWTbPF9OZ^u9CUAim zf`0L5u^YRLx>cV0&FFDJ3Mz6HR{oTBxxOKgLEXj3;e7_tX>qJD-`+uEfVVPKAaj<}T^w9c+#W_sV>FqJ>#{4T(wpslU6+X0DGOsi_- z?WEp&o znd8hmNpDuQvR$W++3Db|pS(hsgV5Kta-{SX3aq#_nCz=PkpsaB>y%?V$T1}_g+!y9 zZuJ9~n;GSn z8lejs(?}X~x0*}*nt`k-p)sNaIcZDakYAa_x3Rzf%q?%43p~$p%9&a^(q3C-Yj5wZ zlsy-v@w)={ne+i0g`|0$543j8pWSi5`2~NdG^=j5@)61Ckh&m-_Jcps7T$?v#TwHr zU9wBXP6HW?&GE+<2-Mf#NNNMG9nu!sH27<`_$~>jR92tj_cMXuj`P<$o#W~QF?p&+ z{lcW|E;+>Vh)HSmDGNVmeWsWS|Jzj?n~$+t)3S9&HvC_GYiT|qgu8D3|Av-IDGDtt z?ziR71UbMD6_?bOxcs?(7MR_mH@M})kCgFW+pso5yk~Pdh8yXbcwnZuvLTNb!9ank z$ThVX+!^CE<^ zHCLNoLC*P90D-de*+|q2?;P}KXBYR6m##RI2LU&$R6F~5=DxLqfOTxz3jo4OW@x`h zjS|&vIoJ=kNPH#4%$_@Qq6_P9R1+QN2Aw|O#WXEyivB4^4vu-l32el>s)mRuY08J3 z5_>%iEu!8$_Ekps<3_Bp+zYrw@m88-Q#T_Tk&-*N6shG?#cqEqCO_|fto5W>H?&eS z(5-m{Hp$=Ih)pZL1_VoAd=fim)%6#fx7>O@vl3dK6GtP`KBeS#XB+|bh}pE zit-HSV;M!z>FM--(J5-FPx2YrndEoX-RP{S=4{!o*2Y_aBIr#r(F(X~ch%F&)VsX6 zqJ`w+L!CynRvIgO#%DpI^kfM{zrB7U=!;he(ylg|xdeS-|6=5|$X$!hOBh z>UZ3#hucz(*N6Cq4$sX#5ix6e@EE6DLA#@>-VYw`G z=hoq?aO_0A-Ac`Oy)F0GzV04B|HM3;WL7`;ELlYBJXQ0+X3ZjZm0)}t@#t@})&u+X z*P7rUxBUQ4r%H5GMO1J9kEi3bf4H#fUxa2BYt_x3(*fW+t+_i7-S!vTQ#4?`#Rr_) zEGs&ya`#$zZe!w>yYq;V!2h6?Jyqs=)`%O@qTkOQ5N9@x-v208irD$HCIdsoetCn~ z`M%cQ5hk7te5$Kk-UasbJb>lrdk(rVlmEU;X}#D$J#3%UwtYx*aydE#tywO%eeb#~ z?t@H*hqBH4qre|d&7XWlzIy#%?J`?0n$ioFz33(;6v;|Rn-Vsy2~+>28Z28Ex1_G8 zApBoUPAA!2*eVos-tPNBNvFtatO{TOd)J+;yL}zt8dIg$mv(QjR3U>XIjUde75(h( z?ZMdqM$Z4}Mx#(5iphzJ9%mIKc*_O81n?wk%6&H)FOI^!LfL@hkMG;v9-MUIX|ZqY z{v}YRL)ug%vN7Yg&ERdg2@PN`;z@1c=ef>xjwLYg|fH3qcA zlRTG=ZVq&XyZJRr(BgWr&+Enk`P`@MZ{Ff`^;WbDY=tO{MZfsP(c zyMFu_M!5z=QQicwA-Xj$ZTN%c2?9sje2LFL_GGd|(Y*Z7-&Uwbx>Z-Gana08GPh-F zNvY{Xku_{x{o^0Vv4Ev+XGc%{v?;;VUvX}c(ZL{NS-&e@4lYbt2khGlM9#V0qHg-8 zt!=#tFU#Tv9n+S$H=V;8b-!U#SKGMRmaP^rIuS70ol^WW0_X^{@B)}pJT$%nY7X!d zT!4xXp5^y9Gn5kkSjS-J4RBkSt7ER0dj#S)Y*+54I?g51xOJo#Tmv74a zJJkH1GM!S_Q|k|<=lSS{pkW)G#dMNx(=W&DQrDJjCJh31SCt;TG~LnG-E(7Y5!(|~ z8&BugJIO;Fku3u<!BJ}KPI)%qbFnL^R1stoTFn|cS$lBiK=FVV)u+YSNfo0&q0ebf%k4-4-F&{VNk{j zORU&Zd$2BT%4wHD76i=SR;ix+?a#GMz2Wf5{Sf{w2Wh7>d;c|@LwBPO5;fullMz;) z=q4M&F5qVdkb(&mFBOhWIx!O1sNt(g;m%&XW#xGNzMJC}wHqIPP_hHg&8GL|LTtc} zo}Ev(Z8SEC|GKXiHhvrE;dMM1jZk#ur{Uf*gR6DxI2BDDVx)C5=C4KdJt9ygFN`^yk*A8Wo z?Sr^l%FFydKvM%QzT%vg)eP#+mY^6I3`Qvjvccs7J0Cd*h`DF=HF(FeR(I8$!TEX= zpXgmT)~#V*X2A~wtXYxWl*Rp)?(Ky!>!{> zxA`5x1uEnl@uLaVOK~O^2Sx*&ixAqs@V&%I4tmKkrp>|L9@tZB!aRPQxXClFiRisT z5|%aB*m3$n_rXNjcJ+v(Jj&a(z9X85F*DC;gcT-`a;riA!fT+K7^gICP*<=lKNq}w z{zZ39y! z;ZbMRYRjYTr#pn z<{*>K&I2N*5hfy^F=9%{m?9}5DG~`GilKri->Pfxe_`+aL+j$=dU@Bo*84nbJ@@_G z>*3~)p&{m9T7PL`Vq$*mXy7RmlP_+Yn5_C^-70X$H>`tfVq&%VSm5`O`M;~gO6L^n4#nF|w+JYcn9%~cd*d1uXJ>Z9Y&FAXa%u_VShIX@o~kVvk% z$CV8Z4oX<~rR5bgbLHpFnyY4(<@+N9DireF&;wcahzezIXE&`$GiuIcQtzJIZDxu5jh7-Xzgk#rWkDF6%55Eak75Y#i!;nLf^i6E7li z8DfOrj^8~<{KWBV18KPm;$Q}SZ`rY$ALYQGsa*8KgqneO(uddWzialH8VX+r%%{aM z<)!jDU48l`Un2RN=hQQIZ|??Hu-WW!ct^FPWl{H;NBQ#2QCGW?T1RYn!)WF-is5xW z>rT?ZV~Ls}&RAaLzfAKOP4{BL)$lM6s}0d)L8edo>rQb7Lp;r_x=spgPE#x_5oq^A zYs-2kr}=^mdM$9m_u}iOSerdD25vqiqtWb%NX1LZX|u@uj)^YXsJGqgC*`&xqmQppR@*PDG4V>ru_*t-s3LMg}3 zwOV`M>N&gXP5nAcqg6>y@eeS0Nrir0P`JmFRMo;#PfriuX0@auX#hcswF_qca7d}O4ylWKUcD#g{lXIGu2pB|x#p&CHK9=6n%Mq?$KqfAS^vk0;04LmWH(y7Ve*flrQqh2MUDM*#){kuc$1N(b^$7&F~Ajp*Tj?PZpyH|^Eos*Xl#ix-nST^>Z zyB7j@VP|h2=Hg2esW`LdmMyqLU3!5v$><07eOt$lqs37)PV2*#k4r-c<)v?6n;R1; zkFIGSB<7+Uq6zYiRXcyJdGu+F#oX-oVY%^?xV0x@u4uVt!_?szcKc+c95fc*2&W-X zIg~g`^x4Y$PTq#>D_XK=``la01<5{_0{0oBve|Yn0bhNG9aN zj}|d_U>Q?BG*QEAUy7a&3lNneLz{6lc0>`?_l}`C_L7<^z_F0&?3QaEy+jJrhG~+= zn1Wzn`(&3+aJ+^1mSr4%QQS1Y@#Plh90aSkUABKQ-)M^z`B$DZ9q8u)1yhO%x8& zHSu!|?>;XDFj&@M&1L6uF0h5&y5nM+d>iOPF|Z$gc?PUmTwI))ndwib2$eXNM7^+) zehcsvFQq0L5Qh!Si~PvEGxFR8ugcT3U)v;VuG=lZP9gl2oyEbO(FAuJLia8>9B#4E zpXyXtEmVTBp|ug)g0SOt9c!ktpC(X+T$$#@)jMmWHW1i;B~_%L=KT1AY)OyG@x2y3 zr+ba~3fXe}xoA{1pX+|Gd||5(tD{JrHz z-!l8`uv*8(?TuSj{qHKHqP!6`;Exq@NLDH|yBc@Hh|!w3wum#3`Ktk6R67Qof!yIp zXXoZ}$O7x)U_jzzLXJIn^i~{ID1#POr_n`;e!rdI$>)Sfq>s(Y&@nC;sK~iY7h$zO zPrnHX9oiT5r$bpUtVDKd=ZP51OIm@_2mqC=Tt(wA!cP(!nX%rx~2W92T(gH{&J<@2hwk(>6n+#mG+Sz3d za&gxmSyC>SE0vzrsdbo)9D!V^MS~6cAMZ9?Hv3O2V1t^T;L5$*SM3PkNEU!thbgu|2%h@q(mtZYszoz<~pwU|lGJq4#LY3A)q2>|s|TAkr;wWCG3BhoHe zjAJE!6bCH^q%M%ab`qMBJ*O4-Kq^#f8UOk`BB|_tJU~CLO4gKTQ6Q`=>22ce)ixFG%5ejR5KDDBtFUnnK2m}FM-`uyOUYr580|*6TD7oZ^m^4cqx*tvqlk@3v7I0}j( zPHC-Yp+bzu1tIaBrm{3{YNIi-Ie>k!3qf2die$R?vkb)~ueiS#Df+b!XP?yB&CFZ{ z@9DD#(9r)W_IjrO#TRp77(bft9+_27Z=4=VU3wA8>g*g|=<>wP{x*!{9zx2pA2sQxvFXAUTp$ z!ST}?MCX8V!#>^>oR2Uel>Pn66qVCFhT-T#9tXI1^It?{{MK9R&=80A)edQcs@%KU z5$z4o@Y*M#(P5*DPEp14?<7xzc%*Rsm%~)Q#&N^f4`mG#I;E0ZCPHu}?+$q7eZr+XD^X`%$pFIo|Kx#W@%Y<@;%FQE^cBV)N$)VWKa zV%imiV3Kbk4c)6?sx1^z`C$^O}J=NaI7T}#*u z02r*e8AswD(!YI{`aaiJ=3f%p&Afr0JDJgzS>5m@DO->$ux}8lItz>q5!#o;MAFZU z!hUM}9taSlc?`e|&`O>KOcF5R2Kes&Nrz(k5Q^c#_f?=6#mShJbk6+Moy)r^bRwBGu9o&e-o z-KW-|8mavl5&kz5TO2MU97x%{f#P%10?+>74%LpZVg-+QR8p37TG8p2soT*hQUyRD zHcYlT*S0n|2K%b7?Dj_W%!dyic7Xh6qezAB3V!|v3t1K8rTNl(*IY?O0;!I@lLn`9 z*E>nV3)Y>`sr5EwkU7K|3sY0|0c37O4SB#0JMa&uc9u#1 zyF>7iD-1Mu4DyVF{!yxmH+Bd6fpX88gG~?I_YGM+*d!{j&EiC28k7z7zZ+Rxd2$ShLm8fPk^(Wy3L?sB}8Dzmmeg zH=gN3;)4U&PY3J!jSV=oU^mIvgt_uHpuMu*KQZlkRdM3ei`S@YYfo+@uzPL_Pj{i2I0q7`E<*Uk1v+QHxly>@bs#JM{^pMJ0%{^F4@mc_{ccai8o$-s1ppJfw?=ql6f^T}{@T z=Sc^A@UjZ^dp;(>*hZ;((3jKJr}Tx>{B$W=-YHr40lviOzq`>mE!#WDlsjG%Rn1NV zw0Y;}=R2kjt+m}5k#W$;`{-%Uz2w&QgRG{Y<~JE1PgpDL9>vv|J=coBalf{<7MyLW ze8(Sj?mqazqh1}>{N|gF6@YJl0D45C_HJ4oVaJVLp|AMczAleC+!o1_Q0=E9p`jGq z*=Yxrn!m*|p&@I#L4}W^-(h446w;VySCn@yT-Pc~w+DsWO(YEpLbie$VbtNzb;8f3 j(a(kA{|{wz1GMs(WvgB32{rhSz~op^XkgRfq$~dhBj0hX literal 0 HcmV?d00001 diff --git a/tests/snapshots/stax/test_create_reward_vault/00004.png b/tests/snapshots/stax/test_create_reward_vault/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..339db1b45cb46ceed041751e09147f0574884fa8 GIT binary patch literal 10991 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 literal 0 HcmV?d00001 diff --git a/tests/test_create_reward_vault.py b/tests/test_create_reward_vault.py index ad841a69..bb6ce7bf 100644 --- a/tests/test_create_reward_vault.py +++ b/tests/test_create_reward_vault.py @@ -31,8 +31,8 @@ def test_create_reward_vault(backend, firmware, navigator, test_name, wallet_addr): client = EthAppClient(backend) - data = contract.encodeABI("createRewardVault", [ - bytes.fromhex("0xe0b93a409fee110Cd9122F34f89471B5Cb01466b") + data = contract.encode_abi("createRewardVault", [ + bytes.fromhex("e0b93a409fee110Cd9122F34f89471B5Cb01466b") ]) # first setup the external plugin diff --git a/tests/test_delegate.py b/tests/test_delegate.py index f2722b6a..46731298 100644 --- a/tests/test_delegate.py +++ b/tests/test_delegate.py @@ -31,7 +31,7 @@ def test_delegate(backend, firmware, navigator, test_name, wallet_addr): client = EthAppClient(backend) - data = contract.encodeABI("delegate", [ + data = contract.encode_abi("delegate", [ bytes.fromhex("0be5debae3edfedd42f420247847d2a6f0fa598f") ]) From 8678ecd3f9dca3690448909ac2d50f74616f3f3f Mon Sep 17 00:00:00 2001 From: Steven Lin Date: Mon, 20 Jan 2025 13:04:44 +0100 Subject: [PATCH 4/6] fix : fix lint error --- src/plugin.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugin.h b/src/plugin.h index ada0f04c..c9e80238 100644 --- a/src/plugin.h +++ b/src/plugin.h @@ -25,7 +25,7 @@ // A Xmacro below will create for you: // - an enum named selector_t with every NAME // - a map named SELECTORS associating each NAME with it's value -#define SELECTORS_LIST(X) \ +#define SELECTORS_LIST(X) \ X(CREATE_REWARD_VAULT, 0x577ee5c7) \ X(DELEGATE, 0x5c19a95c) From 8f4c1594f7b6842e1633bb498898460a46c975f0 Mon Sep 17 00:00:00 2001 From: Steven Lin Date: Tue, 21 Jan 2025 12:44:27 +0100 Subject: [PATCH 5/6] fix: removed duplicate code --- src/handle_provide_parameter.c | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/src/handle_provide_parameter.c b/src/handle_provide_parameter.c index d635d72c..26a81052 100644 --- a/src/handle_provide_parameter.c +++ b/src/handle_provide_parameter.c @@ -1,21 +1,6 @@ #include "plugin.h" -static void handle_delegate(ethPluginProvideParameter_t *msg, context_t *context) { - switch (context->next_param) { - case BENEFICIARY: - copy_address(context->beneficiary, msg->parameter, sizeof(context->beneficiary)); - context->next_param = NONE; - break; - case NONE: - break; - default: - PRINTF("Param not supported: %d\n", context->next_param); - msg->result = ETH_PLUGIN_RESULT_ERROR; - break; - } -} - -static void handle_create_reward_vault(ethPluginProvideParameter_t *msg, context_t *context) { +static void handle_beneficiary(ethPluginProvideParameter_t *msg, context_t *context) { switch (context->next_param) { case BENEFICIARY: copy_address(context->beneficiary, msg->parameter, sizeof(context->beneficiary)); @@ -39,16 +24,15 @@ void handle_provide_parameter(ethPluginProvideParameter_t *msg) { msg->parameterOffset, PARAMETER_LENGTH, msg->parameter); - msg->result = ETH_PLUGIN_RESULT_OK; // EDIT THIS: adapt the cases and the names of the functions. switch (context->selectorIndex) { case CREATE_REWARD_VAULT: - handle_create_reward_vault(msg, context); + handle_beneficiary(msg, context); break; case DELEGATE: - handle_delegate(msg, context); + handle_beneficiary(msg, context); break; default: PRINTF("Selector Index not supported: %d\n", context->selectorIndex); From 90450673a80520d991eab3aa0ba9cbbbce13073e Mon Sep 17 00:00:00 2001 From: Steven Lin Date: Tue, 21 Jan 2025 12:46:21 +0100 Subject: [PATCH 6/6] fix: removed unecessary code --- src/handle_provide_parameter.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/handle_provide_parameter.c b/src/handle_provide_parameter.c index 26a81052..54c6989f 100644 --- a/src/handle_provide_parameter.c +++ b/src/handle_provide_parameter.c @@ -29,8 +29,6 @@ void handle_provide_parameter(ethPluginProvideParameter_t *msg) { // EDIT THIS: adapt the cases and the names of the functions. switch (context->selectorIndex) { case CREATE_REWARD_VAULT: - handle_beneficiary(msg, context); - break; case DELEGATE: handle_beneficiary(msg, context); break;