{
"version": "eosio::abi/1.2",
"types": [],
"structs": [
{
"name": "addevmtoken",
"base": "",
"fields": [
{
"name": "address",
"type": "bytes"
},
{
"name": "decimals",
"type": "uint8"
},
{
"name": "sym",
"type": "symbol"
}
]
},
{
"name": "addtoken",
"base": "",
"fields": [
{
"name": "symcode",
"type": "symbol_code"
},
{
"name": "contract",
"type": "name"
},
{
"name": "defibox_oracle_id",
"type": "uint64?"
},
{
"name": "delphi_oracle_id",
"type": "name?"
}
]
},
{
"name": "approve",
"base": "",
"fields": [
{
"name": "oracle",
"type": "name"
}
]
},
{
"name": "balanceof",
"base": "",
"fields": [
{
"name": "contract",
"type": "bytes"
},
{
"name": "address",
"type": "bytes"
}
]
},
{
"name": "callback",
"base": "",
"fields": [
{
"name": "status",
"type": "int32"
},
{
"name": "data",
"type": "bytes"
},
{
"name": "context",
"type": "bytes?"
}
]
},
{
"name": "claim",
"base": "",
"fields": [
{
"name": "oracle",
"type": "name"
},
{
"name": "receiver",
"type": "name?"
}
]
},
{
"name": "claimlog",
"base": "",
"fields": [
{
"name": "oracle",
"type": "name"
},
{
"name": "category",
"type": "name"
},
{
"name": "receiver",
"type": "name"
},
{
"name": "claimed",
"type": "asset"
},
{
"name": "balance",
"type": "asset"
}
]
},
{
"name": "config_row",
"base": "",
"fields": [
{
"name": "reward_per_update",
"type": "extended_asset"
},
{
"name": "yield_contract",
"type": "name"
},
{
"name": "admin_contract",
"type": "name"
}
]
},
{
"name": "createlog",
"base": "",
"fields": [
{
"name": "oracle",
"type": "name"
},
{
"name": "status",
"type": "name"
},
{
"name": "category",
"type": "name"
},
{
"name": "metadata",
"type": "pair_name_string[]"
}
]
},
{
"name": "delevmtoken",
"base": "",
"fields": [
{
"name": "address",
"type": "bytes"
}
]
},
{
"name": "deltoken",
"base": "",
"fields": [
{
"name": "symcode",
"type": "symbol_code"
}
]
},
{
"name": "deny",
"base": "",
"fields": [
{
"name": "oracle",
"type": "name"
}
]
},
{
"name": "eraselog",
"base": "",
"fields": [
{
"name": "oracle",
"type": "name"
}
]
},
{
"name": "evm_balances_row",
"base": "",
"fields": [
{
"name": "address_id",
"type": "uint64"
},
{
"name": "address",
"type": "bytes"
},
{
"name": "balance",
"type": "asset"
}
]
},
{
"name": "evm_tokens_row",
"base": "",
"fields": [
{
"name": "token_id",
"type": "uint64"
},
{
"name": "address",
"type": "bytes"
},
{
"name": "decimals",
"type": "uint8"
},
{
"name": "sym",
"type": "symbol"
}
]
},
{
"name": "extended_symbol",
"base": "",
"fields": [
{
"name": "sym",
"type": "symbol"
},
{
"name": "contract",
"type": "name"
}
]
},
{
"name": "init",
"base": "",
"fields": [
{
"name": "rewards",
"type": "extended_symbol"
},
{
"name": "yield_contract",
"type": "name"
},
{
"name": "admin_contract",
"type": "name"
}
]
},
{
"name": "metadatalog",
"base": "",
"fields": [
{
"name": "oracle",
"type": "name"
},
{
"name": "status",
"type": "name"
},
{
"name": "category",
"type": "name"
},
{
"name": "metadata",
"type": "pair_name_string[]"
}
]
},
{
"name": "oracles_row",
"base": "",
"fields": [
{
"name": "oracle",
"type": "name"
},
{
"name": "status",
"type": "name"
},
{
"name": "balance",
"type": "extended_asset"
},
{
"name": "metadata",
"type": "pair_name_string[]"
},
{
"name": "created_at",
"type": "time_point_sec"
},
{
"name": "updated_at",
"type": "time_point_sec"
},
{
"name": "claimed_at",
"type": "time_point_sec"
}
]
},
{
"name": "pair_name_string",
"base": "",
"fields": [
{
"name": "first",
"type": "name"
},
{
"name": "second",
"type": "string"
}
]
},
{
"name": "periods_row",
"base": "",
"fields": [
{
"name": "period",
"type": "time_point_sec"
},
{
"name": "protocol",
"type": "name"
},
{
"name": "category",
"type": "name"
},
{
"name": "contracts",
"type": "name[]"
},
{
"name": "evm_contracts",
"type": "string[]"
},
{
"name": "balances",
"type": "asset[]"
},
{
"name": "prices",
"type": "asset[]"
},
{
"name": "tvl",
"type": "asset"
},
{
"name": "usd",
"type": "asset"
}
]
},
{
"name": "regoracle",
"base": "",
"fields": [
{
"name": "oracle",
"type": "name"
},
{
"name": "metadata",
"type": "pair_name_string[]"
}
]
},
{
"name": "rewardslog",
"base": "",
"fields": [
{
"name": "oracle",
"type": "name"
},
{
"name": "rewards",
"type": "asset"
},
{
"name": "balance",
"type": "asset"
}
]
},
{
"name": "setbalance",
"base": "",
"fields": [
{
"name": "contract",
"type": "bytes"
},
{
"name": "address",
"type": "bytes"
},
{
"name": "balance",
"type": "asset"
}
]
},
{
"name": "setmetadata",
"base": "",
"fields": [
{
"name": "oracle",
"type": "name"
},
{
"name": "metadata",
"type": "pair_name_string[]"
}
]
},
{
"name": "setmetakey",
"base": "",
"fields": [
{
"name": "oracle",
"type": "name"
},
{
"name": "key",
"type": "name"
},
{
"name": "value",
"type": "string?"
}
]
},
{
"name": "setreward",
"base": "",
"fields": [
{
"name": "reward_per_update",
"type": "asset"
}
]
},
{
"name": "statuslog",
"base": "",
"fields": [
{
"name": "oracle",
"type": "name"
},
{
"name": "status",
"type": "name"
}
]
},
{
"name": "tokens_row",
"base": "",
"fields": [
{
"name": "sym",
"type": "symbol"
},
{
"name": "contract",
"type": "name"
},
{
"name": "defibox_oracle_id",
"type": "uint64?"
},
{
"name": "delphi_oracle_id",
"type": "name?"
},
{
"name": "extra_oracle_id",
"type": "uint64?"
}
]
},
{
"name": "unregister",
"base": "",
"fields": [
{
"name": "oracle",
"type": "name"
}
]
},
{
"name": "update",
"base": "",
"fields": [
{
"name": "oracle",
"type": "name"
},
{
"name": "protocol",
"type": "name"
}
]
},
{
"name": "updateall",
"base": "",
"fields": [
{
"name": "oracle",
"type": "name"
},
{
"name": "max_rows",
"type": "uint16?"
}
]
},
{
"name": "updatelog",
"base": "",
"fields": [
{
"name": "oracle",
"type": "name"
},
{
"name": "protocol",
"type": "name"
},
{
"name": "category",
"type": "name"
},
{
"name": "contracts",
"type": "name[]"
},
{
"name": "evm",
"type": "string[]"
},
{
"name": "period",
"type": "time_point_sec"
},
{
"name": "balances",
"type": "asset[]"
},
{
"name": "prices",
"type": "asset[]"
},
{
"name": "tvl",
"type": "asset"
},
{
"name": "usd",
"type": "asset"
}
]
}
],
"actions": [
{
"name": "addevmtoken",
"type": "addevmtoken",
"ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Add EVM Token\nsummary: 'Add {{sym}} token using {{address}} EOS EVM address.'\nicon: https://gateway.pinata.cloud/ipfs/QmSPLWbpUttHQqd4gPnPKBGE6XWy6PricPgfns9LXoUjdk#88016c23a1ed3af668f50353523ba29d086a8d3a460340b6e53add24588e5c5c\n---"
},
{
"name": "addtoken",
"type": "addtoken",
"ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Add Token\nsummary: 'Add {{symcode}} token as supported asset.'\nicon: https://gateway.pinata.cloud/ipfs/QmSPLWbpUttHQqd4gPnPKBGE6XWy6PricPgfns9LXoUjdk#88016c23a1ed3af668f50353523ba29d086a8d3a460340b6e53add24588e5c5c\n---\n\nThis action can only be called by the Yield+ oracle contract self permission. It will add the {{symcode}}@{{contract}} token as a supported asset using {{defibox_oracle_id}} Defibox Oracle ID and/or {{delphi_oracle_id}} Delphi Oracle ID."
},
{
"name": "approve",
"type": "approve",
"ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Approve\nsummary: 'Approve the {{oracle}} oracle for Yield+ rewards'\nicon: https://gateway.pinata.cloud/ipfs/QmSPLWbpUttHQqd4gPnPKBGE6XWy6PricPgfns9LXoUjdk#88016c23a1ed3af668f50353523ba29d086a8d3a460340b6e53add24588e5c5c\n---\n\nThis action can only be called by the Yield+ administrator contract. It will approve the {{oracle}} oracle for for Yield+ oracle rewards."
},
{
"name": "balanceof",
"type": "balanceof",
"ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: balanceof\n---"
},
{
"name": "callback",
"type": "callback",
"ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: callback\n---"
},
{
"name": "claim",
"type": "claim",
"ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Claim Rewards\nsummary: 'Claims Yield+ rewards for an oracle'\nicon: https://gateway.pinata.cloud/ipfs/QmSPLWbpUttHQqd4gPnPKBGE6XWy6PricPgfns9LXoUjdk#88016c23a1ed3af668f50353523ba29d086a8d3a460340b6e53add24588e5c5c\n---\n\nThis action can only be called by the {{oracle}} oracle contract. It will claim rewards for the {{oracle}} oracle."
},
{
"name": "claimlog",
"type": "claimlog",
"ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Claim Log\nsummary: 'Generates a log when Yield+ rewards are claimed.'\nicon: https://gateway.pinata.cloud/ipfs/QmSPLWbpUttHQqd4gPnPKBGE6XWy6PricPgfns9LXoUjdk#88016c23a1ed3af668f50353523ba29d086a8d3a460340b6e53add24588e5c5c\n---\n\nThis action can only be called by the Yield+ oracle contract's self permission. It will record that {{oracle}} claimed {{claimed.quantity}}."
},
{
"name": "createlog",
"type": "createlog",
"ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Create Log\nsummary: 'Generates a log when an oracle is created in the Yield+ oracle contract.'\nicon: https://gateway.pinata.cloud/ipfs/QmSPLWbpUttHQqd4gPnPKBGE6XWy6PricPgfns9LXoUjdk#88016c23a1ed3af668f50353523ba29d086a8d3a460340b6e53add24588e5c5c\n---\n\nThis action can only be called by the Yield+ oracle contract self permission. It will record that {{oracle}} oracle has been registered with the Yield+ contract with its metadata.\n<!--- {{#with metadata}}\n {{#each key}}\n {{this.key}} : {{this.value}} </br>\n {{/each}}\n{{/with}}\n-->"
},
{
"name": "delevmtoken",
"type": "delevmtoken",
"ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Delete EVM Token\nsummary: 'Delete {{address}} EOS EVM token.'\nicon: https://gateway.pinata.cloud/ipfs/QmSPLWbpUttHQqd4gPnPKBGE6XWy6PricPgfns9LXoUjdk#88016c23a1ed3af668f50353523ba29d086a8d3a460340b6e53add24588e5c5c\n---"
},
{
"name": "deltoken",
"type": "deltoken",
"ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Delete Token\nsummary: 'Delete {{symcode}} token as supported asset'\nicon: https://gateway.pinata.cloud/ipfs/QmSPLWbpUttHQqd4gPnPKBGE6XWy6PricPgfns9LXoUjdk#88016c23a1ed3af668f50353523ba29d086a8d3a460340b6e53add24588e5c5c\n---\n\nThis action can only be called by the Yield+ oracle contract's self permission. It will remove the {{symcode}} token as supported asset."
},
{
"name": "deny",
"type": "deny",
"ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Deny\nsummary: 'Deny the {{oracle}} oracle for Yield+ rewards'\nicon: https://gateway.pinata.cloud/ipfs/QmSPLWbpUttHQqd4gPnPKBGE6XWy6PricPgfns9LXoUjdk#88016c23a1ed3af668f50353523ba29d086a8d3a460340b6e53add24588e5c5c\n---\n\nThis action can only be called by the Yield+ administrator contract. It will deny the {{oracle}} oracle for for Yield+ oracle rewards."
},
{
"name": "eraselog",
"type": "eraselog",
"ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Erase Log\nsummary: 'Generates a log when an oracle is erased from the Yield+ oracle contract.'\nicon: https://gateway.pinata.cloud/ipfs/QmSPLWbpUttHQqd4gPnPKBGE6XWy6PricPgfns9LXoUjdk#88016c23a1ed3af668f50353523ba29d086a8d3a460340b6e53add24588e5c5c\n---\n\nThis action can only be called by the Yield+ oracle contract self permission. It will record that {{oracle}} status has been erased from the Yield+ contract."
},
{
"name": "init",
"type": "init",
"ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Init\nsummary: 'Initializes the Yield+ oracle contract'\nicon: https://gateway.pinata.cloud/ipfs/QmSPLWbpUttHQqd4gPnPKBGE6XWy6PricPgfns9LXoUjdk#88016c23a1ed3af668f50353523ba29d086a8d3a460340b6e53add24588e5c5c\n---\n\nThis action can only be called by the Yield+ oracle contract's self permission. It will initialize the Yield+ oracle contract for the {{yield_contract}} contract with the administrator {{admin_contract}} using the token {{rewards}}"
},
{
"name": "metadatalog",
"type": "metadatalog",
"ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Metadata Log\nsummary: 'Generates a log when oracle metadata is modified.'\nicon: https://gateway.pinata.cloud/ipfs/QmSPLWbpUttHQqd4gPnPKBGE6XWy6PricPgfns9LXoUjdk#88016c23a1ed3af668f50353523ba29d086a8d3a460340b6e53add24588e5c5c\n---\n\nThis action can only be called by the Yield+ oracle contract self permission. It will record that {{oracle}} metadata has been modified.\n<!--- {{#with metadata}}\n {{#each key}}\n {{this.key}} : {{this.value}} </br>\n {{/each}}\n{{/with}}\n-->"
},
{
"name": "regoracle",
"type": "regoracle",
"ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Register Oracle\nsummary: 'Registers the {{oracle}} oracle with the Yield+ oracle contract'\nicon: https://gateway.pinata.cloud/ipfs/QmSPLWbpUttHQqd4gPnPKBGE6XWy6PricPgfns9LXoUjdk#88016c23a1ed3af668f50353523ba29d086a8d3a460340b6e53add24588e5c5c\n---\n\nThis action can only be called by the specific {{oracle}} oracle's account. It will register {{oracle}} with its metadata.\n<!--- {{#with metadata}}\n {{#each key}}\n {{this.key}} : {{this.value}} </br>\n {{/each}}\n{{/with}}\n-->"
},
{
"name": "rewardslog",
"type": "rewardslog",
"ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Rewards Log\nsummary: 'Generates a log when rewards are generated from update.'\nicon: https://gateway.pinata.cloud/ipfs/QmSPLWbpUttHQqd4gPnPKBGE6XWy6PricPgfns9LXoUjdk#88016c23a1ed3af668f50353523ba29d086a8d3a460340b6e53add24588e5c5c\n---\n\nThis action can only be called by the Yield+ contract self account. It generates a log when rewards are allocated. It will record a reward of {{rewards}} for the {{oracle}} oracle. The oracle's claimable balance is now {{balance}}."
},
{
"name": "setbalance",
"type": "setbalance",
"ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: setbalance\n---"
},
{
"name": "setmetadata",
"type": "setmetadata",
"ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Set Metadata\nsummary: 'Set metadata for the {{oracle}} oracle'\nicon: https://gateway.pinata.cloud/ipfs/QmSPLWbpUttHQqd4gPnPKBGE6XWy6PricPgfns9LXoUjdk#88016c23a1ed3af668f50353523ba29d086a8d3a460340b6e53add24588e5c5c\n---\n\nThis action can be called by the specific {{oracle}} oracle's account or the Yield+ administrator account. It will set the {{oracle}} oracle's metadata.\n<!--- {{#with metadata}}\n {{#each key}}\n {{this.key}} : {{this.value}} </br>\n {{/each}}\n{{/with}}\n-->"
},
{
"name": "setmetakey",
"type": "setmetakey",
"ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Set Meta Key\nsummary: 'Set specific metadata key-value pairs'\nicon: https://gateway.pinata.cloud/ipfs/QmSPLWbpUttHQqd4gPnPKBGE6XWy6PricPgfns9LXoUjdk#88016c23a1ed3af668f50353523ba29d086a8d3a460340b6e53add24588e5c5c\n---\n\nThis action can be called by the specific {{oracle}} oracle's account or the Yield+ administrator account. It will set the {{oracle}} oracle's {{key}} key to the value {{value}}."
},
{
"name": "setreward",
"type": "setreward",
"ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Set Reward\nsummary: 'Set oracle rewards'\nicon: https://gateway.pinata.cloud/ipfs/QmSPLWbpUttHQqd4gPnPKBGE6XWy6PricPgfns9LXoUjdk#88016c23a1ed3af668f50353523ba29d086a8d3a460340b6e53add24588e5c5c\n---\n\nThis action can only be called by the Yield+ oracle contract's self permission. It will set oracle rewards at {{reward_per_update}} per update."
},
{
"name": "statuslog",
"type": "statuslog",
"ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Status Log\nsummary: 'Generates a log when oracle status is modified.'\nicon: https://gateway.pinata.cloud/ipfs/QmSPLWbpUttHQqd4gPnPKBGE6XWy6PricPgfns9LXoUjdk#88016c23a1ed3af668f50353523ba29d086a8d3a460340b6e53add24588e5c5c\n---\n\nThis action can only be called by the Yield+ oracle contract self permission. It will record that {{oracle}} status has been updated to {{status}}."
},
{
"name": "unregister",
"type": "unregister",
"ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Unregister Oracle\nsummary: 'Unregisters the {{oracle}} oracle from the Yield+ oracle contract'\nicon: https://gateway.pinata.cloud/ipfs/QmSPLWbpUttHQqd4gPnPKBGE6XWy6PricPgfns9LXoUjdk#88016c23a1ed3af668f50353523ba29d086a8d3a460340b6e53add24588e5c5c\n---\n\nThis action can only be called by the specific {{oracle}} oracle's account. It will unregister {{oracle}} from the Yield+ oracle contract."
},
{
"name": "update",
"type": "update",
"ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Update\nsummary: 'Update TVL for a specific protocol'\nicon: https://gateway.pinata.cloud/ipfs/QmSPLWbpUttHQqd4gPnPKBGE6XWy6PricPgfns9LXoUjdk#88016c23a1ed3af668f50353523ba29d086a8d3a460340b6e53add24588e5c5c\n---\n\nThis action can only be called by an approved oracle account. It will update the TVL for the {{protocol}} protocol using the {{oracle}} oracle."
},
{
"name": "updateall",
"type": "updateall",
"ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Update All\nsummary: 'Update the TVL for all protocols'\nicon: https://gateway.pinata.cloud/ipfs/QmSPLWbpUttHQqd4gPnPKBGE6XWy6PricPgfns9LXoUjdk#88016c23a1ed3af668f50353523ba29d086a8d3a460340b6e53add24588e5c5c\n---\n\nThis action can only be called by an approved oracle account. It will update the TVL for all protocols using the {{oracle}} oracle as provider. and will iterate over {{max_rows}} maximum rows.\n\n{{#if_has_value max_rows}}\n Update process will iterate over a maxiumum of {{max_rows}} rows.\n{{ else }}\n Update process will iterate over a maxiumum of rows set by the contract.\n{{/if_has_value}}"
},
{
"name": "updatelog",
"type": "updatelog",
"ricardian_contract": "---\nspec_version: \"0.2.0\"\ntitle: Update Log\nsummary: 'Generates a log when an oracle updates its smart contracts'\nicon: https://gateway.pinata.cloud/ipfs/QmSPLWbpUttHQqd4gPnPKBGE6XWy6PricPgfns9LXoUjdk#88016c23a1ed3af668f50353523ba29d086a8d3a460340b6e53add24588e5c5c\n---\n\nThis action can only be called by the Yield+ oracle contract's self permission. It will record that, for the time period ending at {{period}}, the {{oracle}} oracle updated the {{protocol}} {{category}} protocol, which is using the EOS contract(s) {{contracts}}\n{{#if_has_value evm}} and the EVM contract(s) {{evm}}{{#/if_has_value}}. The updated TVL is {{tvl}} EOS and ${{usd}} USD."
}
],
"tables": [
{
"name": "config",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "config_row"
},
{
"name": "evm.balances",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "evm_balances_row"
},
{
"name": "evm.tokens",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "evm_tokens_row"
},
{
"name": "oracles",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "oracles_row"
},
{
"name": "periods",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "periods_row"
},
{
"name": "tokens",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "tokens_row"
}
],
"ricardian_clauses": [
{
"id": "Yield+ Oracle",
"body": "## Overview\n\nThe Yield+ Oracle system provides reliable TVL data metrics of DeFi protocols and supports Yield+ Rewards. It will leverage decentralized data price feeds from existing oracle providers on EOS mainnet.\n\nYield+ Oracle 系统将利用来自 EOS 主网上现有预言机提供商的去中心化数据价格馈送。 提供可靠的 DeFi 协议 TVL 数据指标,支持 Yield+ Rewards。\n\nYield+ Oracle 시스템은 EOS 메인넷에 있는 기존 Oracle 제공업체의 분산 데이터 가격 피드를 활용합니다. DeFi 프로토콜의 안정적인 TVL 데이터 메트릭을 제공하고 Yield+ Rewards를 지원합니다."
}
],
"error_messages": [],
"abi_extensions": [],
"variants": [],
"action_results": []
}