0.1.5 • Published 3 years ago

@peanut.trade/feeno-sdk v0.1.5

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

FeeNo SDK

Installing

Using npm:

$ npm install @peanut.trade/feeno-sdk

Using yarn:

$ yarn add @peanut.trade/feeno-sdk

Examples

Basic integration

const ethers = require('ethers');
const { FeeNo } = require('@peanut.trade/feeno-sdk');

const chainId = 5; // 1 - mainnet, 5 - goerli (testnet)
const feeNo = new FeeNo(chainId);

const provider = new ethers.providers.InfuraProvider(chainId, "c0ce38826bf344708eff40ec84130fa9");

const demoWallet1 = new ethers.Wallet("6d5d157ad116ff71f75dc48dd678ca0f54d7d9af864a45f6d14cd4b579af4ac3", provider);
const demoWallet2 = new ethers.Wallet("b95de9da803db6367af3366037f0e7790e53dd811b95a639548420ca738f11e7");

(async () => {
    const supportedTokens = await feeNo.getTokens();
    console.log("Supported tokens:", supportedTokens);

    const estimateParams = {
        "transactionType": "transfer", // Supported types  https://peanut-trade.github.io/feeno-sdk/enums/TransactionType.html
        "transactionBody": {           // and their bodies https://peanut-trade.github.io/feeno-sdk/modules.html#TransactionBody
            "addressTo": demoWallet2.address,
            "amount": 1,
            "tokenContractAddress": "0xc9d7e158d07965c661fd3421dc5db1176856dfb5"
        },
        "addressFrom": demoWallet1.address,
        "erc20TokenToPayFee": "0xc9d7e158d07965c661fd3421dc5db1176856dfb5",
        "feePayer": "sender" // sender | receiver
    }

    console.log("estimation...");
    const feeNoRequest = await feeNo.createFeenoRequest(estimateParams, demoWallet1);
    //feeNoRequest is an instance of FeeNoApiRequests

    console.log("sending...");
    const submitResponse = await feeNoRequest.send({
        exType: "cexSwap", // dexSwap | cexSwap
        speed: "medium"    // fast | medium | slow
    });

    console.log("Result:", submitResponse);
})()

Example of using Metamask

import ethers  from 'ethers';
import { FeeNo }  from '@peanut.trade/feeno-sdk';

const feeNo = new FeeNo(chainId);

async function sendTransaction () {
    try {
        if (typeof  window.ethereum !== undefined) {
            await window.ethereum.enable()
            const provider = new ethers.providers.Web3Provider(window.ethereum); 
            const feeNoRequest = await feeNo.createFeenoRequest(estimateParams, demoWallet1);
            return await feeNoRequest.send({ exType: "cexSwap", speed: "medium"});
        } else {
            throw new Error("No injected web3 found")
        }
    } catch (e) {
        console.log(e)
        throw Error(e.message)
    }

    return false;
}

Get transaction status

    const statusResponse = await feeNoRequest.status();

Cancel transaction

    feeNoRequest.cancel();

Commands

This builds to /dist and runs the project in watch mode so any edits you save inside src causes a rebuild to /dist.

To do a one-off build, use npm run build or yarn build.

Documentation