Contract interaction
#
1. Stake 1inchRepository | limit-order-settlement |
Contract | st1inch.sol |
Contract address | 0x9A0C8Ff858d273f57072D714bca7411D717501D7 |
Methods |
|
Description | Stakes 1inch to get staking power according to the lock time |
//Deposits 100 1inch with 1 day lockawait st1inch.deposit(ether('100'), time.duration.days('1'));
#
2. Register as a Resolver#
2.1 Register delegation podRepository | limit-order-settlement |
Contract | PowerPod.sol |
Contract address | 0x9A0C8Ff858d273f57072D714bca7411D717501D7 |
Methods | addPod(address pod) |
Description | Register pod usage for the tx sender. Needed for
|
// register `delegation` pod usage a `resolver`await st1inch.connect(resolver).addPod(delegation.address);
#
2.2. Register delegation share tokenRepository | limit-order-settlement |
Contract | st1inch.sol |
Contract address | 0xAccfAc2339e16DC80c50d2fa81b5c2B049B4f947 |
Methods | register(string memory name, string memory symbol, uint256 maxUserFarms) |
Description | Creates a resolvers share token to count delegated staked power shares and accrue rewards |
// Register resolver's token with name 'resolver token share' and symbol 'RTS'// allowing the maximum 3 farms runningawait delegation.register('resolver token share', 'RTS');
#
2.3. Set default farmRepository | limit-order-settlement |
Contract | PowerPod.sol |
Contract address | 0xAccfAc2339e16DC80c50d2fa81b5c2B049B4f947 |
Methods | setDefaultFarm(address farm) |
Description | Setups the default farm to which all users delegating to this resolver are automatically joined |
// Setups the default farm to which all users delegating to this resolver// are automatically joinedawait delegation.connect(resolver).setDefaultFarm(farm.address);
#
2.4. Delegate resolver’s staking power to selfRepository | limit-order-settlement |
Contract | PowerPod.sol |
Contract address | 0xDAf782667d98d5069eE7ba139932945C4D08fDE9 |
Methods | delegate(address delegatee) |
Description | delegate(address delegatee) |
// Delegates all staking power to selfawait delegation.connect(resolver).delegate(resolver.address);
#
2.5. Whitelist resolverRepository | limit-order-settlement |
Contract | WhitelistRegistry.sol |
Contract address | 0xcb8308fcB7BC2f84ed1bEa2C016991D34de5cc77 |
Methods | register() |
Description | Checks if sender is eligible to be whitelisted and put it into the whitelist sorted by staking power descending |
// Try to put the sender to the whitelistawait whitelist.connect(resolver).register();
#
3. FeeBankRepository | limit-order-settlement |
Contract | FeeBank.sol |
Contract address | 0xa0844e046a5B7Db55Bb8DcdFfbF0bBF9c6dc6546 |
Methods |
|
Description | Deposits 1inch for fee deduction when filling orders |
// Deposit fees to fee bankawait feeBank.connect(resolver).deposit(amount)
#
4. Resolvingstruct Order { uint256 salt; address makerAsset; address takerAsset; address maker; address receiver; address allowedSender; // equals to Zero address on public orders uint256 makingAmount; uint256 takingAmount; uint256 offsets; // bytes makerAssetData; // bytes takerAssetData; // bytes getMakingAmount; // this.staticcall(abi.encodePacked(bytes, swapTakerAmount)) => (swapMakerAmount) // bytes getTakingAmount; // this.staticcall(abi.encodePacked(bytes, swapMakerAmount)) => (swapTakerAmount) // bytes predicate; // this.staticcall(bytes) => (bool) // bytes permit; // On first fill: permit.1.call(abi.encodePacked(permit.selector, permit.2)) // bytes preInteraction; // bytes postInteraction; bytes interactions; // concat(makerAssetData, takerAssetData, getMakingAmount, getTakingAmount, predicate, permit, preIntercation, postInteraction) }
Repository | limit-order-settlement |
Contract | Settlement.sol |
Contract address | 0xA88800CD213dA5Ae406ce248380802BD53b47647 |
Methods | .settleOrders(bytes calldata data) |
Description | Settles an order |