Fix function abi schema to be a dict

pull/3002/head
James Campbell 2022-11-08 14:23:46 +00:00
parent 53f6c9c08c
commit 3bbbc7b262
4 changed files with 12 additions and 6 deletions

View File

@ -221,7 +221,7 @@ class ContractCondition(RPCCondition):
SKIP_VALUES = (None,)
standard_contract_type = fields.Str(required=False)
contract_address = fields.Str(required=True)
function_abi = fields.Str(required=False)
function_abi = fields.Dict(required=False)
@post_load
def make(self, data, **kwargs):
@ -267,7 +267,7 @@ class ContractCondition(RPCCondition):
"""Gets an unbound contract function to evaluate for this condition"""
try:
contract = self.w3.eth.contract(
address=self.contract_address, abi=self.function_abi
address=self.contract_address, abi=[self.function_abi]
)
contract_function = getattr(contract.functions, self.method)
return contract_function

View File

@ -181,7 +181,9 @@ def subscription_manager_is_active_policy_condition(test_registry, agency):
)
condition = ContractCondition(
contract_address=subscription_manager.contract.address,
function_abi=[subscription_manager.contract.find_functions_by_name('isPolicyActive')[0].abi],
function_abi=subscription_manager.contract.find_functions_by_name(
"isPolicyActive"
)[0].abi,
method="isPolicyActive",
chain=TESTERCHAIN_CHAIN_ID,
return_value_test=ReturnValueTest("==", True),
@ -199,7 +201,9 @@ def subscription_manager_get_policy_zeroized_policy_struct_condition(
)
condition = ContractCondition(
contract_address=subscription_manager.contract.address,
function_abi=[subscription_manager.contract.find_functions_by_name('getPolicy')[0].abi],
function_abi=subscription_manager.contract.find_functions_by_name("getPolicy")[
0
].abi,
method="getPolicy",
chain=TESTERCHAIN_CHAIN_ID,
return_value_test=ReturnValueTest("==", ":expectedPolicyStruct"),

View File

@ -1,7 +1,7 @@
{
"TStaking": {
"contractAddress": "0x01B67b1194C75264d06F808A921228a95C765dd7",
"chain": "ethereum",
"chain": 80001,
"method": "stakes",
"functionAbi": {
"inputs": [

View File

@ -38,7 +38,9 @@ with open(VECTORS_FILE, 'r') as file:
@pytest.fixture(autouse=True)
def mock_condition_blockchains(mocker):
"""adds testerchain to permitted conditional chains"""
mocker.patch.object(nucypher.policy.conditions.evm, '_CONDITION_CHAINS', tuple([131277322940537]))
mocker.patch.object(
nucypher.policy.conditions.evm, "_CONDITION_CHAINS", tuple([80001])
)
@pytest.fixture()