JS Plugin

Tezos QuipuSwap Polywrapper JS Plugin

Client JS

Import Plugins

import { Web3ApiClient } from "@web3api/client-js"
import { tezosPlugin } from "@web3api/tezos-plugin-js"

Export URIs

Declare URIs for Quipuswap Wrapper and Tezos Plugin JS.

export const TEZOS_QUIPUSWAP_WRAPPER_URI = 'w3://ipfs/QmfXgYfxG7Uw7RCGLsAYFCuPcr7xqRePhTgMJVCdGiRMcZ'
export const TEZOS_PLUGIN_JS = 'w3://ens/tezos.web3api.eth'

Tezos Connections

export const TezosConnections = {
 ghostnet: {
   provider: "https://rpc.ghost.tzstats.com",
   supportedTLDs: ['ith']
 },
 mainnet: {
   provider: "https://rpc.tzstats.com",
   supportedTLDs: ['tez']
 },
}

Web3 Api Client

Create a Web3ApiClient client for query and mutation calls.

export const client = new Web3ApiClient({
 plugins: [
   {
     uri: TEZOS_PLUGIN_JS,
     plugin: tezosPlugin({
       networks: {
         mainnet: {
             provider: "https://rpc.tzstats.com"
         }, 
         ghostnet: {
             provider: "https://rpc.ghost.tzstats.com",
         }
       },
       defaultNetwork: "ghostnet"
     })
   }
 ]
})

Mutation JS

Import Plugins

import { client, TEZOS_PLUGIN_JS, TEZOS_QUIPUSWAP_WRAPPER_URI } from "./client"
import add from "date-fns/add"

Connect Temple Wallet

Connect to Temple Wallet by passing network type, app name, and connection.

export const connectTempleWallet = (network) => {
 return client.query({
   uri: TEZOS_PLUGIN_JS,
   query: `
       mutation {
         connectTempleWallet(
             appName: "polydomains",
             network: $network,
             connection: $connection
         )
       },
   `,
   variables: {
       network,
       connection: {
         network
       }
   }
 })
}

Add Operator

export const addOperator = (network, payload) => {
 return client.query({
   uri: TEZOS_QUIPUSWAP_WRAPPER_URI,
   query: `
       mutation {
         addOperator (
             network: ghostnet,
             params: $params
         )
       },
   `,
   variables: {
     params: payload
   }
 })
}

Remove Operator

export const removeOperator = (network, payload) => {
 return client.query({
   uri: TEZOS_QUIPUSWAP_WRAPPER_URI,
   query: `
       mutation {
         removeOperator (
             network: ghostnet,
             params: $params
         )
       },
   `,
   variables: {
       network,
       params: payload
   }
 })
 }

Swap Direct

export const swapDirect = (network, payload) => {
 return client.query({
   uri: TEZOS_QUIPUSWAP_WRAPPER_URI,
   query: `
       mutation {
         swapDirect(
           network: ghostnet,
           params: $params,
           sendParams: $sendParams
         )
       },
   `,
   variables: {
     params: payload.params,
     sendParams: payload.sendParams
   }
 })
 }

Transfer

export const transfer = (network, payload) => {
 return client.query({
   uri: TEZOS_QUIPUSWAP_WRAPPER_URI,
   query: `
     mutation {
       transfer(
         network: ghostnet,
         params: $params,
         sendParams: $sendParams
       )
     }
   `,
   variables: {
     params: payload.params,
     sendParams: payload.sendParams
   }
 })
 }

Transfer From

export const transferFrom = (network, payload) => {
 return client.query({
   uri: TEZOS_QUIPUSWAP_WRAPPER_URI,
   query: `
     mutation {
       transferFrom(
         network: ghostnet,
         from: $from,
         params: $params,
         sendParams: $sendParams
       )
     }
   `,
   variables: {
     from: payload.from,
     params: payload.params,
     sendParams: payload.sendParams
   }
 })
 }

Invest

export const invest = (network, payload) => {
 return client.query({
   uri: TEZOS_QUIPUSWAP_WRAPPER_URI,
   query: `
     mutation {
       invest(
         network: ghostnet,
         params: $params,
         sendParams: $sendParams
       )
     }
   `,
   variables: {
     params: payload.params,
     sendParams: payload.sendParams   
   }
 })
 }

Batch Contract Calls

export const batchContractCalls = (payload) => {
 return client.query({
   uri: TEZOS_PLUGIN_JS,
   query: `
       mutation {
         batchWalletContractCalls (
           params: $params
         )
       },
   `,
   variables: {
     params: payload
   }
 })
 }

Query JS

Import Plugins

import { client } from './client'
import { TEZOS_QUIPUSWAP_WRAPPER_URI } from './client'

List Token Pairs

export const listTokenPairs = async (network) => {
   return client.query({
       uri: TEZOS_QUIPUSWAP_WRAPPER_URI,
       query: `
           query {
             listTokenPairs(
               network: ghostnet
             )
           }
       `,
       variables: {
           network,
       }
   })
}

Last updated