Link SDK
For context, read our overview of the Immutable X SDK.
Link usage
The Link SDK is used for frontend, user-facing interactions.
import { Link, ETHTokenType } from '@imtbl/imx-sdk';
async function sdkExample() {
const link = new Link('https://link.ropsten.x.immutable.com');
// Register user, you can persist address to local storage etc.
const { address } = await link.setup({});
localStorage.setItem('address', address);
// Deposit ETH into IMX
link.deposit({
type: ETHTokenType.ETH,
amount: '0.01',
});
// View transaction history
link.history({});
// Create a sell order for token id 123 for 0.01 ETH
link.sell({
amount: '0.01',
tokenId: '123',
tokenAddress: '0x2ca7e3fa937cae708c32bc2713c20740f3c4fc3b',
});
// Cancel a sell order
link.cancel({
orderId: '1'
});
// Create a buy flow:
link.buy({
orderIds: ['1', '2', '3'],
});
// Prepare withdrawal, you will need to wait some time before completing the withdrawal
link.prepareWithdrawal({
type: ETHTokenType.ETH,
amount: '0.01',
});
// Complete withdrawal
link.completeWithdrawal({
type: ETHTokenType.ETH,
});
}
API client usage
The API client is a direct mapping to the REST methods documented here: https://docs.x.immutable.com/reference
import { ImmutableXClient } from '@imtbl/imx-sdk';
async function libExample() {
const client = await ImmutableXClient.build({ publicApiUrl: 'https://api.ropsten.x.immutable.com/v1' });
const address = localStorage.getItem('address');
if (address) {
const balances = await client.getBalances({ user: address });
const orders = await client.getOrders();
const order = await client.getOrder({ orderId: 1 });
const assets = await client.getAssets({
user: address,
});
}
}
Updated 3 months ago
Did this page help you?