2.3.1 • Published 2 years ago

symbiosis-sdk v2.3.1

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

symbiosis-sdk

Build Status

Installation

npm i symbiosis-sdk

Install dependencies

npm i

Run tests

npm run test

Upgrade version

For upgrade versions should be use npm versions command. Version will upgrade automatically.

npm version major|minor|patch

How To Use

The current implementation use ethers to interact with the Ethereum like blockchains.

Init Symbiosis SDK

To work with Symbiosis SDK you should init Symbiosis instance with config (check Config type).

import { Symbiosis } from 'symbiosis-sdk'
import { CONFIG } from '@app/lib/config'

export const symbiosis = new Symbiosis({
    chains: [{ ... }], // array of used rpc and contract addresses on that chains
    advisor: { url: 'https://...' }, // url of advisor service
    maxSwapAmountInUsd: ..., // max amount of swap in USD
    minSwapAmountInUsd: ..., // min amount of swap in USD
})

Bridging

Bridging allows you to swap stable tokens between chains.

// Create new Bridging instance
const bridging = symbiosis.newBridging()

// Calculates fee for bridging and get execute function
const { execute, fee, tokenAmountOut } = await bridging.exactIn(
    tokenAmountIn, // TokenAmount object
    tokenOut, // Token object
    to, // to account address
    revertableAddress // account who can revert stucked transaction
)

// Execute transaction
const { response, waitForMined } = await execute(
    signer // ethers Signer instance to sign transaction
)

// Wait for transaction to be mined
const { receipt, waitForComplete } = await waitForMined()

// Wait for transaction to be completed on recipient chain
const log = await waitForComplete()

Send bridging transaction manually

const bridging = symbiosis.newBridging()

// transactionRequest contains everything you need to send a transaction by yourself
const { transactionRequest } = await bridging.exactIn(...)

// Send transaction or get receipt
const receipt = ...

// Wait for transaction to be completed on recipient chain
const log = await bridging.waitForComplete(receipt)

Swapping

A combination of uniswap and bridging allowing you to swap any supported tokens between networks.

// Create new Swapping instance
const swapping = symbiosis.newSwapping()

// Calculates fee for bridging between networks and get execute function
const { execute, fee, tokenAmountOut, route, priceImpact } = 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
)

// Execute transaction
const { response, waitForMined } = await execute(
    signer // ethers Signer instance to sign transaction
)

// Wait for transaction to be mined
const { receipt, waitForComplete } = await waitForMined()

// Wait for transaction to be completed on recipient chain
const log = await waitForComplete()

Send swapping transaction manually

const swapping = symbiosis.newSwapping()

// transactionRequest contains everything you need to send a transaction by yourself
const { transactionRequest } = await swapping.exactIn(...)

// Send transaction or get receipt
const receipt = ...

// Wait for transaction to be completed on recipient chain
const log = await swapping.waitForComplete(receipt)

Get stuck (pending) transactions and revert them

Sometimes relayers are unable to process your request for bridging. This could happen if you set the small/wrong fee or send the invalid calldata.

These requests can be found and cancelled.

Find stuck transactions:

import { getPendingRequests } from 'symbiosis-sdk'

// Get get all pending requests from all chains
const pendingRequests = await symbiosis.getPendingRequests(
    address // Account address
)

Revert stucked transaction:

// Create RevertPending instance
const revertPending = symbiosis.newRevertPending(
    request // PendingRequest object
)

// Calculates fee for revert and get execute function
const { fee, execute } = await revertPending.revert()

// Execute transaction using signer
const { waitForMined } = await execute(signer)

// Wait for transaction to be mined
const { receipt, waitForComplete } = await waitForMined()

// Wait for transaction to be fully reverted on original sender chain
const log = await waitForComplete()

Send revert transaction manually

const revertPending = symbiosis.newRevertPending(request)

// 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()
2.3.0

2 years ago

2.3.1

2 years ago

2.2.3

2 years ago

2.2.5

2 years ago

2.2.4

2 years ago

2.2.11

2 years ago

2.2.7

2 years ago

2.2.6

2 years ago

2.2.10

2 years ago

2.2.9

2 years ago

2.2.8

2 years ago

2.2.1

2 years ago

2.2.2

2 years ago

2.0.28

2 years ago

2.0.3

2 years ago

2.0.2

2 years ago

2.0.5

2 years ago

2.0.4

2 years ago

2.0.7

2 years ago

2.0.6

2 years ago

2.0.9

2 years ago

2.0.8

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

2.1.9

2 years ago

2.1.16

2 years ago

2.1.17

2 years ago

2.1.14

2 years ago

2.1.15

2 years ago

2.1.12

2 years ago

2.1.13

2 years ago

2.1.10

2 years ago

2.1.11

2 years ago

2.1.18

2 years ago

2.1.19

2 years ago

2.1.21

2 years ago

2.1.20

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

2.2.0

2 years ago

1.0.2-beta-21

2 years ago

1.0.2-beta-20

2 years ago

2.1.2

2 years ago

2.0.15

2 years ago

2.1.1

2 years ago

2.0.16

2 years ago

2.1.4

2 years ago

2.0.13

2 years ago

2.1.3

2 years ago

2.0.14

2 years ago

2.1.6

2 years ago

2.0.11

2 years ago

2.1.5

2 years ago

2.0.12

2 years ago

2.1.8

2 years ago

2.1.7

2 years ago

2.0.10

2 years ago

2.1.0

2 years ago

2.0.19

2 years ago

2.0.17

2 years ago

2.0.18

2 years ago

2.0.26

2 years ago

2.0.27

2 years ago

2.0.24

2 years ago

2.0.25

2 years ago

2.0.22

2 years ago

2.0.23

2 years ago

2.0.20

2 years ago

2.0.21

2 years ago

1.0.2-beta-18

2 years ago

1.0.2-beta-19

2 years ago

1.0.2-beta-16

3 years ago

1.0.2-beta-17

3 years ago

1.0.2-beta-14

3 years ago

1.0.2-beta-15

3 years ago

1.0.2-beta-13

3 years ago

1.0.2-beta-5

3 years ago

1.0.2-beta-6

3 years ago

1.0.2-beta-4

3 years ago

1.0.2-beta-9

3 years ago

1.0.2-beta-7

3 years ago

1.0.2-beta-8

3 years ago

1.0.2-beta-12

3 years ago

1.0.2-beta-10

3 years ago

1.0.2-beta-11

3 years ago

1.0.2-beta-3

3 years ago

1.0.1-sol-1

3 years ago

1.0.1-sol-2

3 years ago

1.0.2-beta-1

3 years ago

1.0.2-beta-2

3 years ago

1.0.1-beta-19

3 years ago

1.0.1-beta-17

3 years ago

1.0.1-beta-18

3 years ago

1.0.1-beta-16

3 years ago

1.0.1-beta-15

3 years ago

1.0.1-beta-14

3 years ago

1.0.1-beta-13

3 years ago

1.0.1-beta-12

3 years ago

1.0.1-beta-11

3 years ago

1.0.1-beta-10

3 years ago

1.0.1-beta-9

3 years ago

1.0.1-beta-8

3 years ago

1.0.1-beta-7

3 years ago

1.0.1-beta-5

3 years ago

1.0.1-beta-4

3 years ago

1.0.1-beta-3

3 years ago

1.0.1-beta-6

3 years ago

1.0.1-beta-1

3 years ago

1.0.1-beta-2

3 years ago

1.0.0-beta-43

3 years ago

1.0.0-beta-41

3 years ago

1.0.0-beta-42

3 years ago

1.0.0-beta-40

3 years ago

1.0.0-beta-38

3 years ago

1.0.0-beta-39

3 years ago

1.0.0-beta-34

3 years ago

1.0.0-beta-35

3 years ago

1.0.0-beta-36

3 years ago

1.0.0-beta-37

3 years ago

1.0.0-beta-32

3 years ago

1.0.0-beta-33

3 years ago

1.0.0-beta-29

3 years ago

1.0.0-beta-27

3 years ago

1.0.0-beta-28

3 years ago

1.0.0-beta-25

3 years ago

1.0.0-beta-26

3 years ago

1.0.0-beta-31

3 years ago

1.0.0-beta-23

3 years ago

1.0.0-beta-24

3 years ago

1.0.0-beta-21

3 years ago

1.0.0-beta-22

3 years ago

1.0.0-beta-20

3 years ago

1.0.0-beta-18

3 years ago

1.0.0-beta-19

3 years ago

1.0.0-beta-16

3 years ago

1.0.0-beta-17

3 years ago

1.0.0-beta-14

3 years ago

1.0.0-beta-15

3 years ago

1.0.0-beta-12

3 years ago

1.0.0-beta-13

3 years ago

1.0.0-beta-11

3 years ago

1.0.0-beta-9

3 years ago

1.0.0-beta-10

3 years ago

1.0.0-beta-8

3 years ago

1.0.0-beta-7

3 years ago

1.0.0-beta-6

3 years ago

1.0.0-beta-5

3 years ago

1.0.0-beta-2

3 years ago

1.0.0-beta-3

3 years ago

1.0.0-beta-0

3 years ago