sumer-protocol v1.0.0
Sumer Protocol
The Sumer Protocol is an Binance Smart Chain smart contract for supplying or borrowing assets. Through the sdrToken contracts, accounts on the blockchain supply capital (HT or HRC-20 tokens) to receive sdrTokens or borrow assets from the protocol (holding other assets as collateral). The protocol will also enable the minting of suUSD, which is the first synthetic stablecoin on Sumer that aims to be pegged to 1 USD. suUSD is minted by the same collateral that is supplied to the protocol. The Sumer sdrToken contracts track these balances and algorithmically set interest rates for borrowers.
Before getting started with this repo, please read:
Contracts
We detail a few of the core contracts in the Sumer protocol.
Installation
To run charge, pull the repository from GitHub and install its dependencies. You will need yarn or npm installed.
git clone https://github.com/dfinlab/sumer-protocol
cd charge-protocol
yarn install --lock-file # or `npm install`
REPL
The Sumer Protocol has a simple scenario evaluation tool to test and evaluate scenarios which could occur on the blockchain. This is primarily used for constructing high-level integration tests. The tool also has a REPL to interact with local the Sumer Protocol (similar to truffle console
).
yarn repl -n development
yarn repl -n rinkeby
> Read SDRToken sdrBAT Address
Command: Read SDRToken sdrBAT Address
AddressV<val=0xAD53863b864AE703D31b819d29c14cDA93D7c6a6>
You can read more about the scenario runner in the Scenario Docs on steps for using the repl.
Testing
Jest contract tests are defined under the tests directory. To run the tests run:
yarn test
Integration Specs
There are additional tests under the spec/scenario folder. These are high-level integration tests based on the scenario runner depicted above. The aim of these tests is to be highly literate and have high coverage in the interaction of contracts.
Formal Verification Specs
The Sumer Protocol has a number of formal verification specifications, powered by Certik. The Certik Verification evaluates smart contracts for vulnerabilities and certifies their behavior with respect to a custom function specification.
See the Scenario Docs on steps for using the repl.
Testing
Contract tests are defined under the tests directory. To run the tests run:
yarn test
Code Coverage
To run code coverage, run:
yarn coverage
Linting
To lint the code, run:
yarn lint
Deploying a SDRToken from Source
To deploy a new sdrToken, you can run the token:deploy
. command, as follows. If you set VERIFY=true
, the script will verify the token on BscScan as well. The JSON here is the token config JSON, which should be specific to the token you wish to list.
npx hardhat run scripts/DeployAll.ts
_© Copyright 2024, meterio
7 months ago