The tokamak-multichain
package provides a collection of tools for efficiently interacting with the Titan network.
It achieves this by providing a unified token and contract list for Titan and other chains.
npm install tokamak-multichain
- Get all token data on each network
import { MultiChainSDK } from 'tokamak-multichain'
const TokamakSDK = new MultiChainSDK({
chainId: 55004,
// If you want to initialize with a network other than Titan or Titan Testnet,
// you should pass it for signerOrProvider.
// Example - signerOrProvider: `https://infura.io/v3/${YOUR_KEY}`
})
const tokenList = TokamakSDK.tokens
// Output the structure of the tokenList
console.log('Token List : ', tokenList)
/*
The structure of the tokenList
Token List : [
{
chainId: 55004,
address: '0x7c6b91D9Be155A6Db01f749217d76fF02A7227F2',
name: 'Tokamak Network Token',
symbol: 'TON',
decimals: 18,
logoURI: 'https://github.com/tokamak-network/tokamak-multichain/data/TON/logo.svg',
extensions: {
bridgeAddress: '0x4200000000000000000000000000000000000010',
titanListId: 'default',
titanTokenId: 'TON'
}
},
{
chainId: 55004,
address: '0x0000000000000000000000000000000000000000',
name: 'Ether',
symbol: 'ETH',
decimals: 18,
logoURI: 'https://github.com/tokamak-network/tokamak-multichain/data/ETH/logo.svg',
extensions: {
bridgeAddress: '0x4200000000000000000000000000000000000010',
titanListId: 'default',
titanTokenId: 'ETH'
}
},
... more token comes
]
*/
- Get a token contract
import { MultiChainSDK } from 'tokamak-multichain'
const TokamakSDK = new MultiChainSDK({
chainId: 55004,
})
const TON_CONTRACT = TokamakSDK.getTokenContract('TON')
const totalSupply = await TON_CONTRACT.totalSupply()
console.log('totalSupply :', totalSupply)
// totalSupply : BigNumber { _hex: '0x24d826680754da71d432', _isBigNumber: true }
- Get a contract instance
import { MultiChainSDK } from 'tokamak-multichain'
const TokamakSDK = new MultiChainSDK({
chainId: 55004,
})
const L2StandardBridge = TokamakSDK.getContract('L2StandardBridge')
const L2Messenger = await L2StandardBridge.messenger()
console.log('L2Messenger : ', L2Messenger)
// L2Messenger : 0x4200000000000000000000000000000000000007
You can try out the tokamak-multichain package in an online environment using CodeSandbox. Click the button below to open the project in CodeSandbox:
This CodeSandbox project includes a basic setup with the @titan/sdk package. You can explore and experiment with the functionalities in a live environment.
- If you want to add a token or change to the token list, refer to the contracts documentation.
- If you want to add a contract or change to the contract list, refer to the tokens documentation.
The production branch is "main". This branch holds the codebase for the most recent "stable" releases. Any changes made to the main branch are initially integrated from the develop branch.
The primary development branch is "dev". The develop branch includes the latest software version that remains compatible with the most recent experimental network deployments. If you're implementing a change that maintains backward compatibility, please submit your pull request to the develop branch.