import { MsgMultiSend, MsgBroadcasterWithPk } from '@injectivelabs/sdk-ts'
import { BigNumberInBase, BigNumberInWei } from '@injectivelabs/utils'
import { Network } from '@injectivelabs/networks'
const privateKey = '0x...'
const injectiveAddress = 'inj1...'
const denom = 'inj'
const decimals = 18
const records = [/** add records here */] as {
address: string;
amount: string; /* in a human readable number */
}[];
const totalToSend = records.reduce((acc, record) => {
return acc.plus(new BigNumberInBase(record.amount).toWei(decimals));
}, new BigNumberInWei(0));
const msg = MsgMultiSend.fromJSON({
inputs: [
{
address: injectiveAddress,
coins: [
{
denom,
amount: totalToSend.toFixed(),
},
],
},
],
outputs: records.map((record) => {
return {
address: record.address,
coins: [
{
amount: new BigNumberInBase(record.amount)
.toWei(decimals)
.toFixed(),
denom,
},
],
};
}),
});
const txHash = await new MsgBroadcasterWithPk({
privateKey,
network: Network.Testnet
}).broadcast({
msgs: msg
})
console.log(txHash)