Validate a limit order
There is the possibility to check limit order validity.
For example, you can check that a limit order is valid by predicates.
LimitOrderProtocolFacade.simulate
#
LimitOrderProtocolFacade.simulate( targetAddress: string, calldata: string)
Under the hood:
On asimulate()
call, the contract reverts witherror SimulationResults(bool success, bytes res)
Where
success
indicates that call doesn't revers, andres
is a function call result.
LimitOrderProtocolFacade.checkPredicate
#
LimitOrderProtocolFacade.checkPredicate( order: LimitOrder)
More lightweight version, only predicate
field is required in order structure.
#
Example:import Web3 from 'web3';import { LimitOrderProtocolFacade, LimitOrder, Web3ProviderConnector} from '@1inch/limit-order-protocol-utils';
const contractAddress = limirOrderProtocolAdresses[chainId];const order: LimitOrder = {...};
const connector = new Web3ProviderConnector(new Web3('...'));const limitOrderProtocolFacade = new LimitOrderProtocolFacade(contractAddress, chainId, connector);
const { success: boolean, rawResult: string,} = await limitOrderProtocolFacade.simulate(contractAddress, order.predicate);console.log('Order validity: ', success);
const predicateValidity: boolean = limitOrderProtocolFacade.checkPredicate(order);console.log('Predicate validity: ', predicateValidity);