Getting started with the contracts

All contract code can be viewed in the contracts repo. Deployment addresses (including testnet deployments) can be viewed in the deployments repo.
To setup a local development environment:
  1. 1.
    Clone the contracts repo (git clone [email protected]:railgun-privacy/contract.git)
  2. 2.
    Install dependencies (cd contract && npm install)
  3. 3.
    Run a local development network in a new terminal window (cd contract && npx hardhat node)
  4. 4.
    Deploy contracts to development network (npx hardhat deploy:test --network localhost)
After running the deploy:test hardhat script you should see something like the following printed to your terminal:
"delegator": "0x5FC8d32690cc91D4c39d9d3abcBD16989F875707",
"governorRewardsImplementation": "",
"governorRewardsProxy": "",
"implementation": "0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e",
"proxy": "0x610178dA211FEF7D417bC0e6FeD39F05609AD788",
"proxyAdmin": "0x2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6",
"rail": "0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0",
"staking": "0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9",
"testERC20": "0x202CCe504e04bEd6fC0521238dDf04Bc9E8E15aB",
"testERC721": "0xf4B146FbA71F41E0592668ffbF264F1D186b2Ca8",
"treasuryImplementation": "0xa513E6E4b8f2a923D98304ec87F64353C4D5C853",
"treasuryProxy": "0x8A791620dd6260079BF849Dc5567aDC3F2FdC318",
"voting": "0x0165878A594ca255338adfa4d48449f69242Eb8F",
"weth9": "0x8198f5d8F8CfFE8f9C413d98a0A55aEB8ab9FbB7",
"relayAdapt": "0x0355B7B8cb128fA5692729Ab3AAa199C1753f726"
You will primarily be interacting with the proxy contract which is a EIP1967 Transparent Upgradeable Proxy for the implementation contract. Functions on the proxy are only accessible when called by theproxyAdmin contract so function selector clashes are not an issue.