1.7.0-beta.12 • Published 4 months ago

@xpla/xpla v1.7.0-beta.12

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

@xpla/xpla

Transaction codec and client to communicate with any xpla blockchain.

Usage

Install

npm install @xpla/xpla

Example

Taking direct signing mode as example.

import { EthSecp256k1Auth } from "@interchainjs/auth/ethSecp256k1"
import { HDPath } from "@interchainjs/types";
import { Network } from "@xpla/xpla/defaults"
import { DirectSigner } from "@xpla/xpla/signers/direct"
import { toEncoders } from "@interchainjs/cosmos/utils"
import { MsgSend } from "@xpla/xplajs/cosmos/bank/v1beta1/tx"
import { StdFee } from "@interchainjs/types"
import { MessageComposer } from "@xpla/xplajs/cosmos/bank/v1beta1/tx.registry"

const [auth] = EthSecp256k1Auth.fromMnemonic("<MNEMONIC>", [HDPath.eth().toString()])
const signer = new DirectSigner(auth, toEncoders(MsgSend), Network.Testnet.rpc)

const msg = MsgSend.fromPartial({
  amount: [{amount: "1", denom: "axpla"}],
  fromAddress: wallet.accounts[0].address,
  toAddress: "xpla1888g76xr3phk7qkfknnn8hvxyzfj0e2vuh4jmw"
})

const fee: StdFee = {
  amount: [{amount: "28000000000000000", denom: "axpla"}],
  gas: "100000"
}

const { send } = MessageComposer.fromPartial
const msgs = [send(msg)]

const fee: StdFee = await signer.signAndBroadcast({messages: [msgs]})

const res = await signer.signAndBroadcast({messages: [msgs], fee})
console.log(res.hash) // the hash of TxRaw

Taking amino signing mode as example.

import { EthSecp256k1Auth } from "@interchainjs/auth/ethSecp256k1"
import { HDPath } from "@interchainjs/types";
import { Network } from "@xpla/xpla/defaults"
import { AminoSigner } from "@xpla/xpla/signers/amino"
import { toEncoders } from "@interchainjs/cosmos/utils"
import { MsgSend } from "@xpla/xplajs/cosmos/bank/v1beta1/tx"
import { StdFee } from "@interchainjs/types"
import { MessageComposer } from "@xpla/xplajs/cosmos/bank/v1beta1/tx.registry"

const [auth] = EthSecp256k1Auth.fromMnemonic("<MNEMONIC>", [HDPath.eth().toString()])
const signer = new AminoSigner(auth, toEncoders(MsgSend), toConverters(MsgSend), Network.Testnet.rpc)

const msg = MsgSend.fromPartial({
  amount: [{amount: "1", denom: "axpla"}],
  fromAddress: wallet.accounts[0].address,
  toAddress: "xpla1888g76xr3phk7qkfknnn8hvxyzfj0e2vuh4jmw"
})

const fee: StdFee = {
  amount: [{amount: "28000000000000000", denom: "axpla"}],
  gas: "100000"
}

const { send } = MessageComposer.fromPartial
const msgs = [send(msg)]

const fee: StdFee = await signer.signAndBroadcast({messages: [msgs]})

const res = await signer.signAndBroadcast({messages: [msgs], fee})
console.log(res.hash) // the hash of TxRaw

Implementations

  • direct signer from @interchainjs/xpla/signers/direct
  • amino signer from @interchainjs/xpla/signers/amino

License

MIT License (MIT) & Apache License