Before using the provider, the user needs to log in to the wallet through the modal by following the method:
// connect wallet
await ton?.connectWallet();
We also support connecting through TON proof:
// the tonProof must be a hex string
const res = await tomo_ton.connect({
tonProof: Buffer.from('your challenge', 'utf8').toString('hex'),
});
//At the dapp backend, check the tonProof res
const { tonProof } = res;
We also support connecting to the TON testnet as follows:
// You must use the Tomo TON provider to connect the testnet.
// Other wallet providers through TON Connect do not work.
const res = await tomo_ton.connect({
network: 'testnet'
});
This method allows signing and sending transactions in one call. The input for this method is TonTxParams, defined as the following:
export interface TonTxParams {
valid_until?: number | bigint;
validUntil?: number | bigint;
network?: string;
from?: string;
messages: {
address: string;
amount: string; // nanoTon, e.g. toNano('0.1').toString()
stateInit?: string;
payload?: string;
}[];
}
// !amount must be nanoTon,
You can construct your payload as a BOC(Bag of Cells) in the same way as the standard one.
Then, convert it into a base64 string or hexadecimal string and pass it to sendTx method.