Skip to main content
Version: Legacy

SanityRates

contract SanityRates#

is SanityRatesInterface, Withdrawable, Utils\ imports ERC20Interface, Withdrawable, Utils, SanityRatesInterface

Source: SanityRates.sol

The SanityRates contract's role is provide a safeguard for reserves whereby trades are disabled in the event exchange rates fall below the lower limit or rise above the upper limit of the sanity rates.


INDEX#

<AUTOGENERATED_TABLE_OF_CONTENTS>

REFERENCE#

Functions#

SanityRates#

Contract constructor. Note that constructor methods are called exactly once during contract instantiation and cannot be called again.


function SanityRates(address _admin) public | Parameter | Type | Description | | ----------|:-------:|:--------------------:| | _admin | address | address of the admin |

getSanityRate#

Gets the sanity rate for a pair of tokens.


function getSanityRate(ERC20 src, ERC20 dest) public view returns (uint) | Parameter | Type | Description | | --------- |:-----:|:----------------------------------------:| | src | ERC20 | source ERC20 token contract address | | dest | ERC20 | destination ERC20 token contract address | Returns:\ The sanity rate for the pair of tokens


Web3 Example:

// DISCLAIMER: Code snippets in this guide are just examples and you
// should always do your own testing. If you have questions, visit our
// https://t.me/KyberDeveloper.
let sanityRate = await SanityRates.methods
.getSanityRate(
'0xdd974D5C2e2928deA5F71b9825b8b646686BD200', //ERC20 src: KNC token
'0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee', //ERC20 dest: ETH
)
.call();

setReasonableDiff#

Set reasonable conversion rate difference in percentage (any conversion rate outside of this range is considered unreasonable).


function setReasonableDiff(ERC20[] srcs, uint[] diff) public | Parameter | Type | Description | | --------- |:-----:|:-----------------------------------------------:| | srcs | ERC20[] | list of source ERC20 token contract addresses | | diff | uint[] | list of reasonableDiffs in basis points (bps)
1 bps = 0.01%
Modifiers: onlyAdmin |


Web3 Example:

// DISCLAIMER: Code snippets in this guide are just examples and you
// should always do your own testing. If you have questions, visit our
// https://t.me/KyberDeveloper.
SanityRates.methods
.setReasonableDiff(
['0xdd974D5C2e2928deA5F71b9825b8b646686BD200'], //ERC20[] srcs: [KNC token]
[1000], //uint[] diff: 10% = 1000 bps
)
.send(
{
from: adminAddress,
},
(err, res) => {
console.log(`Err: ${err}`);
console.log(`Res: ${res}`);
},
);

setSanityRates#

Sets the sanity rate for a list of tokens.


function setSanityRates(ERC20[] srcs, uint[] rates) public | Parameter | Type | Description | | --------- |:-------:|:---------------------------------------------:| | srcs | ERC20[] | list of source ERC20 token contract addresses | | rates | uint[] | list of rates in ETH wei | Modifiers: onlyOperator


Web3 Example:

// DISCLAIMER: Code snippets in this guide are just examples and you
// should always do your own testing. If you have questions, visit our
// https://t.me/KyberDeveloper.
SanityRates.methods
.setSanityRates(
['0xdd974D5C2e2928deA5F71b9825b8b646686BD200'], //ERC20[] srcs: [KNC token]
[2000000000000000], //uint[] rates: 1 KNC = 0.002 ETH = 2000000000000000 wei
)
.send(
{
from: operatorAddress,
},
(err, res) => {
console.log(`Err: ${err}`);
console.log(`Res: ${res}`);
},
);