super-bridge-sdk
v0.0.12-15
Published
Bridge-sdk Any-to-Any Cross-Chain-Swap SDK
Downloads
398
Readme
bridge-sdk
Bridge-sdk Any-to-Any Cross-Chain-Swap SDK
Installation
coming soon
Supporting bridge
- axelar
- lifi
- meson
- miniBridge
- orbiter
- owlto
- rubic
demo
import { excute, getQuote, init } from './lib/index'
async function runDemo() {
const provider: ethers.providers.Web3Provider = new ethers.providers.Web3Provider(window.ethereum);
const accounts = await provider.send("eth_requestAccounts", [])
const account = accounts[0]
const signer = provider.getSigner()
await init()
const quotes = await getQuote({
fromChainId: '1',
toChainId: '10',
fromToken: {
symbol: 'ETH',
address: '0x0000000000000000000000000000000000000000',
decimals: 18
},
toToken: {
symbol: 'ETH',
address: '0x0000000000000000000000000000000000000000',
decimals: 18,
},
fromAddress: '0xC25d79fc4970479B88068Ce8891eD9bE5799210D',
destAddress: '0xC25d79fc4970479B88068Ce8891eD9bE5799210D',
// amount: new Big('0.05').mul(10 ** 18)
amount: new Big('0.01').mul(10 ** 18)
}, signer)
if (quotes && quotes.length) {
const list = quotes.map((item: any) => {
return `<div class="bridge" style="cursor: pointer; border: 1px solid #ddd; margin-bottom: 10px" data-uuid="${item.uuid}">
<img style="width: 20px; margin-right: 10px" src="${item.icon}"/>
<span>${item.bridgeName}</span>
</div>`
})
$app!.innerHTML = list.join('')
const bridgeList = $app!.querySelectorAll('.bridge')
bridgeList.forEach((item: any) => {
item.addEventListener('click', async () => {
document.querySelector<HTMLDivElement>('#layer')!.style.display = 'block'
await excute({
uuid: item.getAttribute('data-uuid')
}, signer)
document.querySelector<HTMLDivElement>('#layer')!.style.display = 'none'
}, false)
})
}
}
SDK API
init
Initialize sdk
init()
getQuote
export interface QuoteRequest {
fromChainId: string;
toChainId: string;
fromToken: {
address: string;
symbol: string;
decimals: number;
};
toToken: {
address: string;
symbol: string;
decimals: number;
};
fromAddress: string;
destAddress: string;
amount: Big;
}
interface QuoteResponse {
uuid: string;
icon: string;
bridgeName: string;
bridgeType: string;
receiveAmount: string;
gas?: string;
fee?: string;
}
getQuote(quoteRequest: QuoteRequest) : Promise<QuoteResponse>
Gets routes for all Bridges
excute
Select a route to execute
interface ExcuteRequest {
uuid: string;
}
excute(excuteRequest: ExcuteRequest): txHash
getStatus
getStatus(): boolean
Get transaction status