Connor Prussin e08052c2c4 feat: set up turborepo vor 1 Jahr
..
contracts 2c599bd821 feat(target_chains/ethereum): remove getPrice from IPyth (#1811) vor 1 Jahr
lib 0735cdb975 feat(express_relay): Sample protocol and monitor (#1374) vor 1 Jahr
src 53521aa36f feat: Update sdks to use svm opportunities (#2009) vor 1 Jahr
.eslintrc.js 0735cdb975 feat(express_relay): Sample protocol and monitor (#1374) vor 1 Jahr
.gitignore 0735cdb975 feat(express_relay): Sample protocol and monitor (#1374) vor 1 Jahr
README.md 0735cdb975 feat(express_relay): Sample protocol and monitor (#1374) vor 1 Jahr
foundry.toml 0735cdb975 feat(express_relay): Sample protocol and monitor (#1374) vor 1 Jahr
package.json e08052c2c4 feat: set up turborepo vor 1 Jahr
remappings.txt 0735cdb975 feat(express_relay): Sample protocol and monitor (#1374) vor 1 Jahr
tsconfig.json 0735cdb975 feat(express_relay): Sample protocol and monitor (#1374) vor 1 Jahr

README.md

EasyLend Protocol

EasyLend is a simplified lending protocol that uses Express Relay for avoiding value leakage on liquidations. It uses Pyth price feeds to calculate the asset values and the liquidation thresholds.

This project illustrates how to use the Express Relay SDK for contract integration and publishing opportunities.

Contracts

The contracts are located in the contracts directory. The EasyLend.sol file contains the main contract logic. The protocol can allow creation of undercollateralized vaults that are liquidatable upon creation. This is solely for ease of testing and demonstration purposes.

Monitoring script

The script in src/monitor.ts is used to monitor the vaults health and publish the liquidation opportunities:

  • It subscribes to Pyth price feeds to get the latest prices for the assets used in the protocol.
  • It periodically checks for new vaults using the chain rpc.
  • Upon finding a vault that is below the liquidation threshold, it publishes a liquidation opportunity using the Express Relay SDK.