Releases: eosnetworkfoundation/eosio.yield-contracts
v2.0.0
What's Changed
- Yield+ EVM support by @DenisCarriere in #32
Full Changelog: v1.0.1...v2.0.0
Checksum
$ shasum -a 256 eosio.yield.wasm
5e79ed2d6ea9adcb5593c9f52e2dcac17a49e321e1f1bfbc1b31a0258ab2c111 eosio.yield.wasm
$ shasum -a 256 oracle.yield.wasm
3ceb804d3d2f04a56812970b1ddfa214f9957515de44ca5185d5dc663834acc7 oracle.yield.wasm
EVM support features
- Oracle TVL
update
supports EVM contracts -
setcontracts
ACTION now includesevm_contracts
- Oracle supports adding EVM token addresses to contributes to TVL calculations
- Add EVM callback support with
balanceOf(address)
method selector to fetch EVM token balance using EOS smart contract. - Automatic
balanceof
updates prior to callingupdate
orupdateall
- Claim rewards to EVM address (using EVM bridge)
- Set maximum EVM & Native contracts to a limit of 10 (due to CPU limitations to compute TVL by oracle)
EVM Token Support
- Multichain Tether (USDT)
- Wrapped EOS (WEOS)
- Multichain Circle (USDC)
Solves issues
New ACTIONS
-
addevmtoken
-
delevmtoken
New TABLES
-
evm.tokens
-
evm.balances
🔑 Authority changes
-
setcontracts
no longer requirehas_auth
on every contract
adding EVM contracts do not require authentication, so manual review process is always required for contract changes.
A lot of friction with protocol admins that cannot add contracts because of strict MSIG permissions or nulled permissions.
-
claim
added permission to Admin account (when protocol no longer have access, can perform final claim & unregister protocol) -
update
action can only be triggered internally byoracle.yield
EVM callback
balanceof
needs to be triggered prior toupdate
action being called, whichupdateall
takes care of the inline action ordering.
Minor logic changes
- remove
setevm
ACTION, logic has been merged intosetcontracts
-
setcontracts
only supports EOS or EOS EVM contracts (not both) - validate USDT contract to be
tethertether
- USD/USDC/USDT token do not require oracles ID's (pegged at $1.00 USD)
-
setrate
has optional values (in case no change for other values, makes it easier to review MSIG's)
ACTION addevmtoken
- authority:
get_self()
Add {{sym}} token using {{address}} EOS EVM address.
params
{bytes} address
- token EOS EVM address{uint8_t} decimals
- token decimals{symbol_code} symcode
- token symbol code
example
$ cleos push action oracle.yield addevmtoken '["fa9343c3897324496a05fc75abed6bac29f8a40f", 6, "USDT"]' -p oracle.yield
$ cleos push action oracle.yield addevmtoken '["c00592aA41D32D137dC480d9f6d0Df19b860104F", 18, "EOS"]' -p oracle.yield
ACTION delevmtoken
- authority:
get_self()
Delete {{address}} EOS EVM token as supported asset
params
{bytes} address
- EOS EVM token address
example
$ cleos push action oracle.yield deltoken '["fa9343c3897324496a05fc75abed6bac29f8a40f"]' -p oracle.yield
TABLE evm.tokens
params
{uint64_t} token_id
- (primary key) EOS EVM token account ID{bytes} address
- EOS EVM token address{uint8_t} decimals
- EOS EVM token decimals{symbol} sym
- token symbol
example
[
{
"token_id": 2,
"address": "c00592aA41D32D137dC480d9f6d0Df19b860104F",
"decimals": "18",
"sym": "4,EOS"
}
{
"token_id": 201,
"sym": "4,USDT",
"address": "fa9343c3897324496a05fc75abed6bac29f8a40f",
"decimals": "6"
},
]
TABLE evm.balances
Scope: <uint64_t> token_id
params
{uint64_t} address_id
- (primary key) EOS EVM address account ID{bytes} address
- EOS EVM address{asset} balance
- current token balance
example
{
"address_id": 663,
"address": "671A5e209A5496256ee21386EC3EaB9054d658A2",
"balance": "173151.7110 USDT"
}
Yield+ v1.0.1 Release Notes
What's Changed
- Improve silent status logs by @DenisCarriere in #27
- Fix setcontracts by @DenisCarriere in #26
- Fix oracle transfer memo by @DenisCarriere in #30
- allow claiming when not active by @DenisCarriere in #31
Full Changelog: v1.0.0...v1.0.1
Checksum
$ shasum -a 256 eosio.yield.wasm
4d0d38b24f32d2c7a45dbd11c21a72d2ff14450723007578a8005853d6caba0b eosio.yield.wasm
$ shasum -a 256 oracle.yield.wasm
eac0ccd430c560118967886e5cda4507d45018b7331cc31202bd9da8c498886d oracle.yield.wasm
Yield+ v1.0.0 Release Notes
What's Changed
- setcontracts - protocol not included by default by @DenisCarriere in #20
- check for valid IPFS value by @DenisCarriere in #21
- require config to be initialized before
regprotocol
by @DenisCarriere in #22
New Contributors
- @DenisCarriere made their first contribution in #20
Full Changelog: v1.0.0-rc1...v1.0.0
SHA256 Checksum
CDT
$ git clone https://github.com/eosnetworkfoundation/eosio.yield-contracts.git
$ git checkout v1.0.0
$ ./tests/build.sh
compiling... [oracle.yield]
b9b9b2bf7d02684045b35b232084830695a86ab8580d29ad62a0024d4e3413d8 oracle.yield.wasm
compiling... [eosio.yield]
e368477d36d5f3af5de436869a45408190ddd2f740b788560850bafdabf29f9d eosio.yield.wasm
compiling... [admin.yield]
797df124be7c489fe86d169e7a17560b81854dca2c0c62a93f1eebb080321aaf admin.yield.wasm
Yield+ v1.0.0-rc1 Release Notes
Yield+ Rewards
https://github.com/eosnetworkfoundation/eosio.yield-contracts/tree/main/contracts/eosio.yield
Yield+ is a Rewards system that incentivizes DeFi protocols to retain long-term TVL within their application.
Yield+ Oracle
https://github.com/eosnetworkfoundation/eosio.yield-contracts/tree/main/contracts/oracle.yield
Yield+ Oracle system will be supporting Yield+ Rewards to provide reliable TVL data metrics of DeFi protocols and leveraging decentralized data price feeds from existing oracle providers on EOS mainnet.
Yield+ Admin
https://github.com/eosnetworkfoundation/eosio.yield-contracts/tree/main/contracts/admin.yield
Admin account for Yield+ on-notification events
Audits
- Sentnl Audit (2022-08)
SHA256 Checksum
CDT
$ git clone https://github.com/eosnetworkfoundation/eosio.yield-contracts.git
$ git checkout v1.0.0-rc1
$ ./tests/build.sh
compiling... [oracle.yield]
b9b9b2bf7d02684045b35b232084830695a86ab8580d29ad62a0024d4e3413d8 oracle.yield.wasm
compiling... [eosio.yield]
ed725fe8626cb11846445b574501b0e9fe05446005b2282ff114e2cf9e088b58 eosio.yield.wasm
compiling... [admin.yield]
f398b994b744cdef268eda0e98e6dfdbdd76639859e60d2552c5848628c8032c admin.yield.wasm
EOS Mainnet
$ cleos -u https://eos.api.eosnation.io get code eosio.yield
code hash: ed725fe8626cb11846445b574501b0e9fe05446005b2282ff114e2cf9e088b58