0g-chain/contracts
Robert Pirtle 6da31bd662
feat: add contract for ERC20KavaWrappedNativeCoin (#1594)
* setup empty hardhat project for evm contract dev

* setup eslint

* setup prettier

* setup solhint

* ignore contracts dir in docker

* add ERC20KavaWrappedNativeCoin contract

* add unit tests for ERC20KavaWrappedNativeCoin

* use solidity 0.8.18

* configure solc with optimization and evm target

* compile ERC20KavaWrappedNativeCoin for evmutil

* setup script for deploying directly to a network

* fix burn test for ERC20KavaWrappedNativeCoin

Co-authored-by: drklee3 <derrick@dlee.dev>

---------

Co-authored-by: drklee3 <derrick@dlee.dev>
2023-05-19 16:39:50 -07:00
..
contracts feat: add contract for ERC20KavaWrappedNativeCoin (#1594) 2023-05-19 16:39:50 -07:00
scripts feat: add contract for ERC20KavaWrappedNativeCoin (#1594) 2023-05-19 16:39:50 -07:00
test feat: add contract for ERC20KavaWrappedNativeCoin (#1594) 2023-05-19 16:39:50 -07:00
.eslintignore feat: add contract for ERC20KavaWrappedNativeCoin (#1594) 2023-05-19 16:39:50 -07:00
.eslintrc.cjs feat: add contract for ERC20KavaWrappedNativeCoin (#1594) 2023-05-19 16:39:50 -07:00
.gitignore feat: add contract for ERC20KavaWrappedNativeCoin (#1594) 2023-05-19 16:39:50 -07:00
.prettierignore feat: add contract for ERC20KavaWrappedNativeCoin (#1594) 2023-05-19 16:39:50 -07:00
.solhint.json feat: add contract for ERC20KavaWrappedNativeCoin (#1594) 2023-05-19 16:39:50 -07:00
.solhintignore feat: add contract for ERC20KavaWrappedNativeCoin (#1594) 2023-05-19 16:39:50 -07:00
hardhat.config.ts feat: add contract for ERC20KavaWrappedNativeCoin (#1594) 2023-05-19 16:39:50 -07:00
package-lock.json feat: add contract for ERC20KavaWrappedNativeCoin (#1594) 2023-05-19 16:39:50 -07:00
package.json feat: add contract for ERC20KavaWrappedNativeCoin (#1594) 2023-05-19 16:39:50 -07:00
README.md feat: add contract for ERC20KavaWrappedNativeCoin (#1594) 2023-05-19 16:39:50 -07:00
tsconfig.json feat: add contract for ERC20KavaWrappedNativeCoin (#1594) 2023-05-19 16:39:50 -07:00

Kava EVM contracts

Contracts for the Kava EVM used by the Kava blockchain. Includes an ERC20 contract for wrapping native cosmos sdk.Coins.

Setup

npm install

Test

npm test

Development

# Watch contract + tests
npm run dev

# Watch tests only
npm run test-watch

Deploying contracts to test networks

A deploy script is included in this hardhat project to deploy a contract directly to a network. To deploy the contracts to different networks:

npx hardhat run --network <network-name> scripts/deploy.ts

Configuration for various <network-name>s above are setup in the hardhat config.

Production compiling & Ethermint JSON

Ethermint uses its own json format that includes the ABI and bytecode in a single file. The bytecode should have no 0x prefix and should be under the property name bin. This structure is built from the compiled code with npm ethermint-json.

The following compiles the contract, builds the ethermint json and copies the file to the evmutil:

npm build