From b4ee1bbb138daff492526c96509b477e2e49a2a5 Mon Sep 17 00:00:00 2001 From: Uday Patil Date: Fri, 30 Jun 2023 10:54:04 -0500 Subject: [PATCH] add tokenfactory and acl integration tests (#945) * add tokenfactory and acl integration tests * add acl module to gitub ci * refactor python script to use argparse --- .github/workflows/integration-test.yml | 6 ++ .../accesscontrol_register_test.yaml | 43 +++++++++++++ .../contracts/bad_parallelism_template.json | 41 +++++++++++++ .../contracts/contract_dep_generator.py | 44 +++++++++++++ .../contracts/counter_parallel.wasm | Bin 0 -> 136159 bytes .../contracts/parallelism_template.json | 58 ++++++++++++++++++ integration_test/scripts/runner.py | 2 +- .../create_tokenfactory_test.yaml | 41 +++++++++++-- 8 files changed, 229 insertions(+), 6 deletions(-) create mode 100644 integration_test/acl_module/accesscontrol_register_test.yaml create mode 100644 integration_test/contracts/bad_parallelism_template.json create mode 100644 integration_test/contracts/contract_dep_generator.py create mode 100644 integration_test/contracts/counter_parallel.wasm create mode 100644 integration_test/contracts/parallelism_template.json diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index 529bd35cc..ce8f17fa3 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -85,6 +85,12 @@ jobs: "python3 integration_test/scripts/runner.py integration_test/bank_module/send_funds_test.yaml", ] }, + { + name: "Accesscontrol Module", + scripts: [ + "python3 integration_test/scripts/runner.py integration_test/acl_module/accesscontrol_register_test.yaml", + ] + }, ] steps: - uses: actions/checkout@v3 diff --git a/integration_test/acl_module/accesscontrol_register_test.yaml b/integration_test/acl_module/accesscontrol_register_test.yaml new file mode 100644 index 000000000..062524c2a --- /dev/null +++ b/integration_test/acl_module/accesscontrol_register_test.yaml @@ -0,0 +1,43 @@ +- name: Test registering accesscontrol dependencies + inputs: + # Get admin + - cmd: printf "12345678\n" | seid keys list --output json | jq ".[] | select (.name==\"admin\")" | jq -r .address + env: ADMIN_ADDR + # store code - get code ID + - cmd: printf "12345678\n" | seid tx wasm store integration_test/contracts/counter_parallel.wasm --from admin -b block -y --gas 5000000 --fees 5sei --output json | jq -r ".logs[].events[].attributes[] | select(.key == \"code_id\").value" + env: COUNTER_CODE_ID + # instantiate contract - get contract address + - cmd: "printf \"12345678\\n\" | seid tx wasm instantiate $COUNTER_CODE_ID \"{\\\"count\\\": 0}\" --label counter --admin $ADMIN_ADDR --from admin -b block -y --gas 5000000 --fees 5sei | grep -A 1 -m 1 \"key: _contract_address\" | sed -n \"s/.*value: //p\" | xargs" + env: COUNTER_ADDRESS + # assign filepath to env + - cmd: echo "integration_test/contracts/good_deps.json" + env: GOOD_DEPS_FILEPATH + # set up parallel dependencies + - cmd: python3 integration_test/contracts/contract_dep_generator.py build_counter_deps --base-filepath integration_test/contracts/parallelism_template.json --output-filepath $GOOD_DEPS_FILEPATH --code-id $COUNTER_CODE_ID --contract-address $COUNTER_ADDRESS + # assign filepath to env + - cmd: echo "integration_test/contracts/bad_deps.json" + env: BAD_DEPS_FILEPATH + # set up bad parallel dependencies + - cmd: python3 integration_test/contracts/contract_dep_generator.py build_counter_deps --base-filepath integration_test/contracts/bad_parallelism_template.json --output-filepath $BAD_DEPS_FILEPATH --code-id $COUNTER_CODE_ID --contract-address $COUNTER_ADDRESS + # register bad deps with chain + - cmd: printf "12345678\n" | seid tx accesscontrol register-wasm-dependency-mapping $BAD_DEPS_FILEPATH --from admin -b block -y --fees 2000usei + # make a counter contract tx to reset the mapping + - cmd: "printf \"12345678\\n\" | seid tx wasm execute $COUNTER_ADDRESS \"{\\\"increment\\\":{}}\" --from admin -b block -y --gas 1000000 --fees 1sei" + # query dep mapping after reset to ensure it was reset + - cmd: seid q accesscontrol wasm-dependency-mapping $COUNTER_ADDRESS --output json | jq -r ".wasm_dependency_mapping.reset_reason" + env: RESET_REASON + # register good deps with chain + - cmd: printf "12345678\n" | seid tx accesscontrol register-wasm-dependency-mapping $GOOD_DEPS_FILEPATH --from admin -b block -y --fees 2000usei + # make a counter contract tx to ensure it won't reset + - cmd: "printf \"12345678\\n\" | seid tx wasm execute $COUNTER_ADDRESS \"{\\\"increment\\\":{}}\" --from admin -b block -y --gas 1000000 --fees 1sei" + # query reset reason with good deps - should be empty + - cmd: seid q accesscontrol wasm-dependency-mapping $COUNTER_ADDRESS --output json | jq -r ".wasm_dependency_mapping.reset_reason" + env: RESET_REASON_2 + verifiers: + # reset reason should have a value after resetting the bad one + - type: eval + expr: RESET_REASON == "incorrectly specified dependency access list" + # second reset reason should be empty + - type: eval + expr: RESET_REASON_2 == "" + diff --git a/integration_test/contracts/bad_parallelism_template.json b/integration_test/contracts/bad_parallelism_template.json new file mode 100644 index 000000000..ba0cfacf2 --- /dev/null +++ b/integration_test/contracts/bad_parallelism_template.json @@ -0,0 +1,41 @@ +{ + "wasm_dependency_mapping": { + "contract_address": "{contract_address}", + "base_access_ops": [ + { + "operation": { + "access_type": "READ", + "resource_type": "KV_WASM_CONTRACT_STORE", + "identifier_template": "03%s" + }, + "selector_type": "CONTRACT_ADDRESS", + "selector": "{contract_address}" + }, + { + "operation": { + "access_type": "READ", + "resource_type": "KV_WASM_CODE", + "identifier_template": "{contract_code_id}" + }, + "selector_type": "NONE" + }, + { + "operation": { + "access_type": "READ", + "resource_type": "KV_WASM_CONTRACT_ADDRESS", + "identifier_template": "02%s" + }, + "selector_type": "CONTRACT_ADDRESS", + "selector": "{contract_address}" + }, + { + "operation": { + "access_type": "COMMIT", + "resource_type": "ANY", + "identifier_template": "*" + }, + "selector_type": "NONE" + } + ] + } +} \ No newline at end of file diff --git a/integration_test/contracts/contract_dep_generator.py b/integration_test/contracts/contract_dep_generator.py new file mode 100644 index 000000000..e26414a3e --- /dev/null +++ b/integration_test/contracts/contract_dep_generator.py @@ -0,0 +1,44 @@ +import json +import sys +import argparse +from functools import partial + +def build_counter_deps(base_filepath, output_filepath, code_id, contract_address): + with open(base_filepath, 'r') as file: + proposal = json.load(file) + proposal["wasm_dependency_mapping"]["contract_address"] = contract_address + for access_op in proposal["wasm_dependency_mapping"]["base_access_ops"]: + selector_type = access_op["selector_type"] + resource_type = access_op["operation"]["resource_type"] + id_template = access_op["operation"]["identifier_template"] + selector = access_op.get("selector") + if selector_type == "CONTRACT_ADDRESS": + if "contract_address" in selector: + access_op["selector"] = contract_address + elif resource_type == "KV_WASM_CODE": + if "contract_code_id" in id_template: + access_op["operation"]["identifier_template"] = f"01{int(code_id):016x}" + elif resource_type == "KV_WASM_PINNED_CODE_INDEX": + if "contract_code_id" in id_template: + access_op["operation"]["identifier_template"] = f"07{int(code_id):016x}" + with open(output_filepath, 'w') as output_file: + json.dump(proposal, output_file, indent=4) + +def main(): + parser = argparse.ArgumentParser(description="This is a parser to generate a parallel dependency json file from a template") + parser.add_argument('Action', type=str, help="The action to perform (eg. build_counter_deps)") + parser.add_argument('--base-filepath', dest="base_filepath", type=str, help="The json template filepath") + parser.add_argument('--output-filepath', dest="output_filepath", type=str, help="The json dependency output filepath") + parser.add_argument('--code-id', type=int, dest="code_id", help="The code id for which to generate dependencies") + parser.add_argument('--contract-address', dest="contract_address", type=str, help="The contract address for which to generate dependencies") + args = parser.parse_args() + actions = { + "build_counter_deps": partial(build_counter_deps, args.base_filepath, args.output_filepath, args.code_id, args.contract_address), + } + if args.Action not in actions: + print("Invalid Action") + actions[args.Action]() + + +if __name__ == "__main__": + main() diff --git a/integration_test/contracts/counter_parallel.wasm b/integration_test/contracts/counter_parallel.wasm new file mode 100644 index 0000000000000000000000000000000000000000..7160fb3f8316cd7542d0000fd6efc91a593f29f3 GIT binary patch literal 136159 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 yl>5mplxgLVfVx_hlBsjBMP=r#2%i