https://github.com/0xheartcode/modified-staking-contract
Quick Repository to Look At
https://github.com/0xheartcode/modified-staking-contract
Last synced: 9 months ago
JSON representation
Quick Repository to Look At
- Host: GitHub
- URL: https://github.com/0xheartcode/modified-staking-contract
- Owner: 0xheartcode
- Created: 2024-06-10T16:17:15.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-06-11T18:40:08.000Z (about 2 years ago)
- Last Synced: 2025-07-26T10:01:19.791Z (11 months ago)
- Language: Solidity
- Size: 9.3 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Audit: audits/ASSURE_DEFI_METAZERO_ADVANCED_04_11_24.pdf
Awesome Lists containing this project
README
## Foundry
**Foundry is a blazing fast, portable and modular toolkit for Ethereum application development written in Rust.**
Foundry consists of:
- **Forge**: Ethereum testing framework (like Truffle, Hardhat and DappTools).
- **Cast**: Swiss army knife for interacting with EVM smart contracts, sending transactions and getting chain data.
- **Anvil**: Local Ethereum node, akin to Ganache, Hardhat Network.
- **Chisel**: Fast, utilitarian, and verbose solidity REPL.
## Documentation
https://book.getfoundry.sh/
## Usage
### Build
```shell
$ forge build
```
### Test
```shell
$ forge test
```
### Format
```shell
$ forge fmt
```
### Gas Snapshots
```shell
$ forge snapshot
```
### Anvil
```shell
$ anvil
```
### Deploy
```shell
$ forge script script/Counter.s.sol:CounterScript --rpc-url --private-key
```
### Cast
```shell
$ cast
```
### Help
```shell
$ forge --help
$ anvil --help
$ cast --help
```
# How to Deploy The Contracts
1. Add you wallet with the `cast` tool.
2. Create an .env file in this structure at the root of the directory and fill it out with the necessary values:
```
SEPOLIA_RPC_URL=
ETH_RPC_URL=
ETHERSCAN_API_KEY=
```
3. Deploy the test token:
(Note that `deployer` is the name of the account you added with the cast tools earlier)
`forge create ./src/BasicToken.sol:BasicToken --account $USER`
4. Deploy the staking contract:
`forge create src/StakingContract.sol:StakingContract --constructor-args $TOKENADDRESS 1000000000000000000 1711202960 259200 --account $USER`
5. Verify the contract:
`forge verify-contract --chain-id 11155111 --watch $TOKENADDRESS ./src/StakingContract.sol:StakingContract --constructor-args $(cast abi-encode "constructor(token,uint256,uint256,uint256)" $DEPLOYEDADDRESS 1000000000000000000 1711202960 259200)`