https://github.com/terra-money/bridge-sdk
Javascript Terra Bridge SDK
https://github.com/terra-money/bridge-sdk
axelar blockchain cosmos ibc keplr ledger metamask npm osmosis station terra typescript wormhole
Last synced: 5 months ago
JSON representation
Javascript Terra Bridge SDK
- Host: GitHub
- URL: https://github.com/terra-money/bridge-sdk
- Owner: terra-money
- Created: 2022-08-10T08:04:47.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-08-29T15:26:26.000Z (about 2 years ago)
- Last Synced: 2025-05-07T22:17:59.371Z (5 months ago)
- Topics: axelar, blockchain, cosmos, ibc, keplr, ledger, metamask, npm, osmosis, station, terra, typescript, wormhole
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/@terra-money/bridge-sdk
- Size: 2.67 MB
- Stars: 8
- Watchers: 11
- Forks: 9
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Bridge SDK
## Basic usage
Install from npm:
```bash
npm i @terra-money/bridge-sdk
```Connect station:
```js
import { StationWallet, ChainType, BridgeType, isValidAddress } from '@terra-money/bridge-sdk'const wallet = new StationWallet()
if (!wallet.isSupported()) {
console.log(
`${wallet.description.name} is not supported on your device, please try from a different wallet.`,
)
} else if (!wallet.isInstalled()) {
console.log(`You can install ${wallet.description.name} here: ${wallet.description.installLink}`)
}wallet
.connect(ChainType.terra)
.then(({ address }) => console.log(address))
```> If you are using `TerraLedgerWallet` you can specify more options on the connect function, to select a custom derivation index (default is 0) and to use bluetooth (default is USB)
Get the balance (wallet must be already connected):
```js
wallet
.getBalance('uluna')
.then((res) => {
res.success
? console.log(`Balance: ${res.data} uluna`)
: console.log(`Error: ${res.error}`
})
```Send tx from station (wallet must be already connected):
```js
const destinationAddress = 'osmo1...'// validate destination address
if(!isValidAddress(destinationAddress, ChainType.osmosis)) {
console.log('Error: invalid address')
return
}// transfer
wallet
.transfer({
src: ChainType.terra,
dst: ChainType.osmosis,
bridge: BridgeType.ibc,
address: destinationAddress,
coin: {
amount: 100_000,
denom: 'uluna',
},
})
.then((res) => {
res.success
? console.log(`TX hash: ${res.txhash}`)
: console.log(`Error: ${res.error}`
})
```> You can use the same functions on the `TerraLedgerWallet`,`KeplrWallet` and `MetaMaskWallet` to send a tx from those wallets
>
> You can find more info about the available functions on the [Wallet inteface](/src/wallets/Wallet.ts#25)## Coming soon
- More IBC chains
- Support for wormhole
- Other wallets: (Station mobile, Coinbase wallet, BSC, WalletConnect, Keplr Mobile)
- Function `estimateBridgeFee()` to calculate the fee that the user will pay on the transfer.
- Function `waitForTx()`to wait until the tx is confirmed on-chain.
- Functions `onAccountChange()` and `onNetworkChange()` to trigger actions when the user switch account or networ.