You can find js-sdk docs here - https://docs.symbiosis.finance/developer-tools/symbiosis-js-sdk
npm i symbiosis-js-sdknpm iFor upgrade versions should be use npm versions command. Version will upgrade automatically.
npm version major|minor|patchThe current implementation use ethers to interact with the Ethereum like blockchains.
To work with Symbiosis SDK you should init Symbiosis instance with config (check Config type) and your CLIENT_ID.
import { Symbiosis } from 'symbiosis-js-sdk'
const symbiosis = new Symbiosis('mainnet', 'awesome-app')A combination of uniswap and bridging allowing you to swap any supported tokens between networks.
// Create new Swapping instance
const swapping = symbiosis.bestPoolSwapping()
// Calculates fee for swapping between networks and get execute function
const { transactionRequest } = await swapping.exactIn({
tokenAmountIn, // TokenAmount object
tokenOut, // Token object
from, // from account address
to, // to account address
revertableAddress, // account who can revert stucked transaction
slippage, // slippage
deadline // deadline date in seconds
})
// Send transactionRequest and get receipt
const receipt = ...
// Wait for transaction to be completed on destination chain
const log = await swapping.waitForComplete(receipt)
// check if transit token was received instead target token
const transitTokenSent = await symbiosis.findTransitTokenSent(
tokenOut.chainId,
log.transactionHash
)
// if `transitTokenSent` is not null please show this information to the userCross-chain zaps automate liquidity adding to the Symbiosis stable pools, DeFi protocols, NFT, etc.
// Create new Swapping instance
const swapping = symbiosis.newZapping(omniPoolConfig)
// Calculates fee for bridging between networks and get execute function
const { execute, fee, tokenAmountOut, route, priceImpact } = await swapping.exactIn({
tokenAmountIn, // TokenAmount object
from, // from account address
to, // to account address
revertableAddress, // account who can revert stucked transaction
slippage, // slippage
deadline, // deadline date in seconds
})// Create RevertPending instance
const revertPending = symbiosis.newRevertPending(
request // PendingRequest object
)
// transactionRequest contains everything you need to send a transaction by yourself
const { transactionRequest } = await revertPending.revert()
... // Send transaction
// Wait for transaction to be completed on recipient chain
const log = await revertPending.waitForComplete()