UNPKG

@velora-dex/sdk

Version:
79 lines (65 loc) 1.81 kB
/* eslint-disable @typescript-eslint/no-unused-vars */ import axios from 'axios'; import { ethers } from 'ethersV5'; import { // swap methods constructPartialSDK, constructEthersContractCaller, constructAxiosFetcher, // OTCOrders methods constructBuildOTCOrder, constructSignOTCOrder, constructPostOTCOrder, // extra types SignableOrderData, OTCOrderToPost, } from '..'; const wallet = ethers.Wallet.createRandom(); const takerAccount = '0x5678...'; const fetcher = constructAxiosFetcher(axios); const provider = wallet.connect(ethers.getDefaultProvider(1)); const contractCaller = constructEthersContractCaller( { ethersProviderOrSigner: provider, EthersContract: ethers.Contract, }, wallet.address ); // type BuildOTCOrderFunctions // & SignOTCOrderFunctions // & PostOTCOrderFunctions const OTCOrderSDK = constructPartialSDK( { chainId: 1, fetcher, contractCaller, }, constructBuildOTCOrder, constructSignOTCOrder, constructPostOTCOrder ); const DAI = '0x6B175474E89094C44Da98b954EedeAC495271d0F'; const HEX = '0x2b591e99afe9f32eaa6214f7b7629768c40eeb39'; const orderInput = { nonce: 1, expiry: Math.floor(Date.now() / 1000) + 60 * 60 * 24 * 7, // week from now, in sec makerAsset: DAI, takerAsset: HEX, makerAmount: (1e18).toString(10), takerAmount: (8e18).toString(10), maker: wallet.address, taker: takerAccount, }; async function run() { const signableOrderData: SignableOrderData = await OTCOrderSDK.buildOTCOrder( orderInput ); const signature: string = await OTCOrderSDK.signOTCOrder(signableOrderData); const orderToPostToApi: OTCOrderToPost = { ...signableOrderData.data, signature, }; const newOrder = await OTCOrderSDK.postOTCOrder(orderToPostToApi); console.log(newOrder); } run();