Files
nym/clients/validator/examples/set_contract_upload_permissions.py
T

36 lines
989 B
Python
Executable File

#!/usr/bin/python
import json
import os
# This script alters the genesis file so that only user account "dave"
# can upload smart contracts.
home_dir = os.path.expanduser('~')
genesis_filename = home_dir + "/.nymd/config/genesis.json"
dave_address_filename = "./accounts/dave.address"
with open(dave_address_filename, "r") as dave_address_file:
dave_address = dave_address_file.readline()
genesis_file = open(genesis_filename, "r")
genesis_json = json.load(genesis_file)
genesis_file.close()
wasm_params = genesis_json['app_state']['wasm']['params']
wasm_uploads = wasm_params['code_upload_access']
# Set wasm upload capability
wasm_uploads['permission'] = "OnlyAddress"
wasm_uploads['address'] = dave_address.rstrip()
# Set wasm instantiate capability
wasm_params['instantiate_default_permission'] = "OnlyAddress"
print(wasm_params)
print(wasm_uploads)
print(genesis_json)
genesis_file = open(genesis_filename, "w")
json.dump(genesis_json, genesis_file)
genesis_file.close()