0.1.18 • Published 3 years ago
@owen05/dodo-sdk v0.1.18
dodo-sdk
npm
- link:https://www.npmjs.com/package/@owen05/dodo-sdk
- install: npm i @owen05/dodo-sdk@latest
example
const Route = require("@owen05/dodo-sdk").Route;
main();
async function main() {
/**
* @notice 初始化构造参数
* @param networkId 主网 1 Kovan 42 BSC 56
* @param DODOProxyV1 可选 0xa7bE5627aFF05e464f0F996111C21Bbd5535C509
* @param DODOApprove 可选 0x4eC851895d85bfa6835241b3157ae10FfFD3BebC
*/
var dodoSdk = new Route(1);
/**
* @notice 获取token信息
* @param tokenAddr
* @param web3Provider 可选
*/
var tokenAddr = "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48";
var tokenObj = await dodoSdk.GetTokenByAddr(tokenAddr);
console.log("tokenObj", tokenObj);
/**
* @notice 获取默认tokenList
*/
var tokenList = dodoSdk.GetTokenList();
/**
* @notice 获取订单历史
* @param userAddr
* @param fromTokenAddress 可选
* @param toTokenAddress 可选
* @param gapBlockNum 订单的区块高度区间(默认 30 * 6000, 30天) 可选
* @param web3Provider 可选
*/
var userAddr = "0xaac153c1344cA14497A5dd22b1F70C28793625aa"
var fromTokenAddress = "0xdAC17F958D2ee523a2206206994597C13D831ec7"
var orders = await dodoSdk.GetUserOrderHistory(userAddr, fromTokenAddress)
console.log("orders", orders);
/**
* @notice 查询路由
* @param fromToken {"symbol","name","decimals","address"}
* @param toToken {"symbol","name","decimals","address"}
* @param swapAmount (不考虑decimals)
*/
var fromToken = tokenList['DODO']
var toToken = tokenList['ETH']
var swapAmount = 1
var routeQuoteDetail = await dodoSdk.GetRoute(fromToken, toToken, swapAmount)
console.log("routeQuoteDetail:", routeQuoteDetail);
/**
* @notice 构造路由请求至合约
* @param fromToken {"symbol","name","decimals","address"}
* @param toToken {"symbol","name","decimals","address"}
* @param swapAmount (不考虑decimals)
* @param slippage %
* @param addr 账户地址
* @param deadline 截止时间戳 单位 秒
*/
var fromToken = tokenList['DODO']
var toToken = tokenList['ETH']
var swapAmount = 1
var slippage = 5
var addr = "0xaac153c1344cA14497A5dd22b1F70C28793625aa" //当前用户地址
var deadline = Math.floor(new Date().getTime() / 1000 + 60 * 10)
var source = routeQuoteDetail.useSource
var routeDetail = await dodoSdk.MakeRoute(fromToken, toToken, swapAmount, slippage, addr, deadline, source)
console.log("routeDetail:", routeDetail);
/**
* @notice 判断Swap的token是否需要Approve
* @param fromToken {"symbol","name","decimals","address"}
* @param accountAddr 用户地址
* @param targetAddr 授权地址
* @param web3Provider 可选
*/
var fromToken = tokenList['DODO'];
var accountAddr = "0xaac153c1344cA14497A5dd22b1F70C28793625aa";
var targetAddr = routeDetail.targetApproveAddr;
var approveAmount = await dodoSdk.ApproveJudge(fromToken, accountAddr, targetAddr);
console.log("curApproveAmount", approveAmount);
/**
* @notice ERC20 Token 交易授权 Data
* @param fromToken {"symbol","name","decimals","address"}
* @param targetAddr 授权合约地址
* @param approveAmount 授权数值
* @param web3Provider 可选
*/
var fromToken = tokenList['USDC'];
var targetAddr = routeDetail.targetApproveAddr;
var approveAmount = '0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'
var approveData = await dodoSdk.ApproveHandle(fromToken, targetAddr, approveAmount);
console.log("ApproveData", approveData);
/**
* @notice Legacy 已废弃
* @param fromToken {"symbol","name","decimals","address"}
* @param toToken {"symbol","name","decimals","address"}
* @param swapAmount (不考虑decimals)
* @param slippage {slippage}%
* @param accountAddr 账户地址
* @param deadline expire时间戳 单位:秒
* @param web3Provider 可选
*/
var fromToken = tokenList['USDC'];
var toToken = tokenList['WETH'];
var swapAmount = 1;
var slippage = 1;
var accountAddr = "0xaac153c1344cA14497A5dd22b1F70C28793625aa";
var deadline = Math.floor(new Date().getTime() / 1000 + 60 * 10);
var routeDetail = await dodoSdk.GetRouteDetail(fromToken, toToken, swapAmount, slippage, accountAddr, deadline);
console.log("routeDetail", routeDetail);
}
有关ETH => WETH WETH => ETH
- tokenList 中提供ETH,直接使用即可 (其中地址为:0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE)
- ETH => other token 不需要进行Approve判断,且routeDetail.targetApproveAddr 为空
- other token => ETH 正常进行Approve判断授权,构造交易
注:返回内容格式参考
0.1.18
3 years ago
0.1.17
3 years ago
0.1.16
3 years ago
0.1.15
3 years ago
0.1.14
3 years ago
0.1.13
3 years ago
0.1.12
3 years ago
0.1.11
3 years ago
0.1.10
3 years ago
0.1.9
3 years ago
0.1.8
3 years ago
0.1.7
3 years ago
0.1.6
3 years ago
0.1.5
3 years ago
0.1.4
3 years ago
0.1.3
3 years ago
0.1.2
3 years ago
0.0.47
3 years ago
0.1.0
3 years ago
0.1.1
3 years ago
0.0.48
3 years ago
0.0.46
3 years ago
0.0.45
3 years ago
0.0.44
3 years ago
0.0.43
3 years ago
0.0.40
3 years ago
0.0.42
3 years ago
0.0.38
3 years ago
0.0.39
3 years ago
0.0.37
3 years ago
0.0.36
3 years ago
0.0.34
3 years ago
0.0.35
3 years ago
0.0.30
3 years ago
0.0.31
3 years ago
0.0.32
3 years ago
0.0.33
3 years ago
0.0.29
3 years ago
0.0.28
3 years ago
0.0.26
3 years ago
0.0.27
3 years ago
0.0.25
3 years ago
0.0.24
3 years ago
0.0.23
3 years ago
0.0.22
3 years ago
0.0.21
3 years ago
0.0.20
3 years ago
0.0.19
3 years ago
0.0.18
3 years ago
0.0.17
3 years ago
0.0.15
3 years ago
0.0.16
3 years ago
0.0.14
3 years ago
0.0.12
3 years ago
0.0.13
3 years ago
0.0.11
4 years ago
0.0.10
4 years ago
0.0.9
4 years ago
0.0.8
4 years ago
0.0.7
4 years ago
0.0.6
4 years ago
0.0.5
4 years ago
0.0.4
4 years ago
0.0.3
4 years ago
0.0.2
4 years ago
0.0.1
4 years ago