1.0.0 • Published 6 months ago

sumer-protocol v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

CircleCI codecov

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