In Development
Current Project Status:
- Testnet contracts on Goerli
- Modular via .env files
- Using node web3js for abi encoding web3py for contract deploying and interacting and a little bit of cpp for basic framework generation commands.
Note: If you encounter a bug while using python-dotenv you can upgrade to the latest python currently 3.11
If you get another bug related web3 package ethereum/web3.py#2704 you can follow these steps: vim ~/.local/lib/python3.11/site-packages/parsimonious/expressions.py
and change getargspec import line to say: from inspect import getfullargspec
These two bugs are like a sandwich between python versions placing our framework in the middle of it, so far so good though.
GoerliScan="https://api-goerli.etherscan.io/api"
Verifying contracts only works on Goerli atm due to logic that selects the chain, will extend to all available chains
After .env variables are set up, run new_frame ContractName
and replace ContractName
with the name of your contract.
This will attempt to make a new folder within the current Directory named after your ContractName
as long as you are not signed in as super user / root it will warn you if it tries to overwrite a folder. BE CAREFUL not to overwrite anything you need using this command, reccomended not to use it in super user / root for this reason.
NOTE: If you have constructor parameters use the flag -CA
followed by the number of parameters, and then one argument for each parameter. You must provide these in a way that will convert to proper python format. For example String: \"String\"
Bool: True
or False
. Addresses must be provided like strings, note they use escape character \
to maintain the quotation marks while being processed as an argument.
NOTE: If you have multiple contract files that you need to compile all together, use the -M
flag. You can use -M
or -CA
iterchangably provided you give all the correct follow-up parameters if using -CA
this format should follow for future arguments. The -M
flag will now automatically fill the config.json for solidity-flattener for you and deploy.py will flatten right before the compilation!
cd
to the newly created folder named after the ContractName
argument you just chose.
Write your contract in the /contracts
folder. Note that we have not tested contracts using libraries yet only multi and single file contracts.
Finally run deploy.sh
(python3 py/deploy.py
)