
Security News
Meet Socket at Black Hat and DEF CON 2025 in Las Vegas
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
@allbridge/bridge-core-sdk
Advanced tools
Website • Documentation • SDK TS doc
Provides an easy integration with the Allbridge Core ChainBridgeService for DApps in the browser or Node.js
$ npm install @allbridge/bridge-core-sdk
import {AllbridgeCoreSdk, nodeRpcUrlsDefault} from "@allbridge/bridge-core-sdk";
// Connections to blockchains will be made through your rpc-urls passed during initialization
const sdk = new AllbridgeCoreSdk({
...nodeRpcUrlsDefault,
TRX: "your trx-rpc-url",
ETH: "your eth-rpc-url"
});
// Sdk will be using your rpc url for fetch data from blockchain to create tx
const rawTx = await sdk.bridge.rawTxBuilder.send(sendParams);
import {AllbridgeCoreSdk, nodeRpcUrlsDefault} from "@allbridge/bridge-core-sdk";
const sdk = new AllbridgeCoreSdk(nodeRpcUrlsDefault);
// The Provider parameter must be passed in order for it to be used to connect to the blockchain, for example:
const rawTx = await sdk.bridge.rawTxBuilder.send(sendParams, provider);
TIP: tested and developed for (Web3:v1.9.0, tronweb:v4.4.0), in other case use approach 1)
const supportedChains = await sdk.chainDetailsMap();
// extract information about ETH chain
const {bridgeAddress, tokens, chainId, name} = supportedChains[ChainSymbol.ETH];
// Choose one of the tokens supported on ETH
const usdtOnEthToken = tokens.find(token => token.symbol === 'USDT');
Before sending tokens, the bridge has to be authorized to use the tokens of the owner.
This is done by building the approve
transaction with SDK instance.
const rawTx = await sdk.bridge.rawTxBuilder.approve({
token: sourceToken,
owner: accountAddress
});
Initiate the transfer of tokens with send
method on SDK instance.
const rawTx = await sdk.bridge.rawTxBuilder.send({
amount: "1.01",
fromAccountAddress: fromAddress,
toAccountAddress: toAddress,
sourceToken: sourceToken,
destinationToken: destinationToken,
messenger: Messenger.ALLBRIDGE,
});
Swap USDC on ETH chain to USDC on POL chain
import {
AllbridgeCoreSdk,
ChainSymbol,
Messenger,
} from "@allbridge/bridge-core-sdk";
import Web3 from "web3";
import * as dotenv from "dotenv";
// Utils method
// For more details, see Examples (https://github.com/allbridge-public/allbridge-core-js-sdk/tree/main/examples)
// import { getEnvVar } from "../../../utils/env";
// import { sendEvmRawTransaction } from "../../../utils/web3";
// import { ensure } from "../../../utils/utils";
dotenv.config({path: ".env"});
async function runExample() {
const fromAddress = getEnvVar("ETH_ACCOUNT_ADDRESS"); // sender address
const toAddress = getEnvVar("TRX_ACCOUNT_ADDRESS"); // recipient address
const sdk = new AllbridgeCoreSdk({ ...nodeRpcUrlsDefault, ETH: getEnvVar("WEB3_PROVIDER_URL") });
const chains = await sdk.chainDetailsMap();
const sourceChain = chains[ChainSymbol.ETH];
const sourceToken = ensure(sourceChain.tokens.find((tokenInfo) => tokenInfo.symbol === "USDC"));
const destinationChain = chains[ChainSymbol.POL];
const destinationToken = ensure(destinationChain.tokens.find((tokenInfo) => tokenInfo.symbol === "USDC"));
const amount = "1.01";
//check if sending tokens already approved
if (!(await sdk.bridge.checkAllowance({ token: sourceToken, owner: fromAddress, amount: amount }))) {
// authorize the bridge to transfer tokens from sender's address
const rawTransactionApprove = (await sdk.bridge.rawTxBuilder.approve({
token: sourceToken,
owner: fromAddress,
})) as RawEvmTransaction;
const approveTxReceipt = await sendEvmRawTransaction(rawTransactionApprove);
console.log("Approve tx id:", approveTxReceipt.transactionHash);
}
// initiate transfer
const rawTransactionTransfer = (await sdk.bridge.rawTxBuilder.send({
amount: amount,
fromAccountAddress: fromAddress,
toAccountAddress: toAddress,
sourceToken: sourceToken,
destinationToken: destinationToken,
messenger: Messenger.ALLBRIDGE,
})) as RawEvmTransaction;
console.log(`Sending ${amount} ${sourceToken.symbol}`);
const txReceipt = await sendEvmRawTransaction(rawTransactionTransfer);
console.log("tx id:", txReceipt.transactionHash);
}
runExample();
TIP: For more details, see Examples
SDK supports operation with Liquidity Pools
For more details, see
Examples
SDK method bridge.rawTxBuilder.approve
can be used to create approve Transaction.
const rawTransactionApprove = await sdk.bridge.rawTxBuilder.approve(approveParams);
SDK method bridge.rawTxBuilder.send
can be used to create send Transaction.
const rawTransactionSend = await sdk.bridge.rawTxBuilder.send(sendParams);
TIP: For more details, see ***Example ***
SDK method getTransferStatus
can be used to get information about tokens transfer.
const transferStatus = await sdk.getTransferStatus(chainSymbol, txId);
SDK method getAmountToBeReceived
can be used to calculate the amount of tokens the receiving party will get after
applying the bridging fee.
const amountToBeReceived = await sdk.getAmountToBeReceived(
amountToSend,
sourceToken,
destinationToken
);
SDK method getAmountToSend
can be used to calculate the amount of tokens to send based on the required amount of
tokens the receiving party should get.
const amountToSend = await sdk.getAmountToSend(
amountToBeReceived,
sourceToken,
destinationToken
);
The SDK method getGasFeeOptions
allows to retrieve information about the available methods to pay the gas fee,
as well as the amount of gas fee needed to complete a transfer on the destination chain.
Gas fee is paid during the send operation
and can be paid either in the source chain's currency or in source tokens.
The method returns an object with two properties:
const {native, stablecoin} = await sdk.getGasFeeOptions(
usdtOnEthToken, // from ETH
usdtOnTrxToken, // to TRX
Messenger.ALLBRIDGE
);
console.log(native);
// Output:
// {
// int: "10000000000000000",
// float: "0.01" // (0.01 ETH)
// }
console.log(stablecoin);
// Output:
// {
// int: "10010000",
// float: "10.01" // (10.01 USDT)
// }
SDK method getAverageTransferTime
can be used to get the average time in ms it takes to complete a transfer for a
given combination of tokens and messenger.
const transferTimeMs = sdk.getAverageTransferTime(
sourceToken,
destinationToken,
Messenger.ALLBRIDGE
);
Due to a dependency on @solana/web3.js
, the package bigint-buffer@1.1.5
is present in the dependency tree and marked as vulnerable.
This vulnerability is not exploitable in the context of this SDK, and no sensitive or user-facing code depends on bigint-buffer
directly.
We are monitoring upstream packages for an official resolution.
FAQs
Unknown package
The npm package @allbridge/bridge-core-sdk receives a total of 795 weekly downloads. As such, @allbridge/bridge-core-sdk popularity was classified as not popular.
We found that @allbridge/bridge-core-sdk demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
Security News
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.
Security News
Deno 2.4 brings back bundling, improves dependency updates and telemetry, and makes the runtime more practical for real-world JavaScript projects.