0.1.2 • Published 1 year ago

@boltprotocol/sdk v0.1.2

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Bolt SDK

Bolt Protocol facilitates cross-chain swapping.

Notable Features

  • Supports execution of arbitrary messages
  • Trustless and Permissionless
  • Low fees
  • Fast response time

API example:

// import * as bolt from 'bolt-sdk' // ES-Module
const bolt = require('@boltprotocol/sdk')
const w = new bolt.Observer('ftmtest')
const s = new bolt.SwapRequest('ftmtest', 'mumbai')
const r = new bolt.Relayer('ftmtest', 'mumbai')


// dotenv
// PRIVATE_KEY=0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa // set 32-byte private key to send txs
console.log('private key length', process.env.PRIVATE_KEY.length)

// approve token, prepare data & send swap
await s.srcInstance.approveToken(s.srcInstance.networkCfg.PRIMARY_TOKEN_ADDRESS, 70000000)
let txr = await s.swap(70000000, '0x70997970C51812dc3A010C7d01b50e0d17dc79C8') // amount, relayerAddress
await s.srcInstance.send(txr.calldata, txr.value)
// LIVE: wait confirmations


// retrieve swapInfo object
await w.getSwapRequests() // view active swap IDs & status
let swapEvent = await w.getSwapInfo('0x0dd296c019857fc0b7d78da9e24ec86c47f746dcf318a841b6e08d5da584f8fd', 508) // swapID, blockNumber

// approve token, prepare data & send fulfillAndRelay by the same party
await r.dstInstance.approveToken(r.dstInstance.networkCfg.PRIMARY_TOKEN_ADDRESS, 70000000)
txr = r.fulfillAndRelay(swapEvent.swapInfo, swapEvent.swapID)
await r.dstInstance.send(txr.calldata, txr.value)
// LIVE: wait confirmations

// send relay back to SRC network 
txr = r.relayReturn(swapEvent.swapInfo, r.srcInstance.signer.address, txr.encodedSignature)
await r.srcInstance.send(txr.calldata, txr.value)

// unlock with swap requester's signature. To unlock after timeout (without signing), use Observer class instead
txr = s.unlock(swapEvent.swapInfo, swapEvent.swapID)
await s.srcInstance.send(txr.calldata, txr.value)

// should be empty after unlock
await w.getSwapRequests()