UNPKG

@kyve/sdk-beta

Version:

<p align="center"> <a href="https://kyve.network"> <img src="https://user-images.githubusercontent.com/62398724/137493477-63868209-a19b-4efa-9413-f06d41197d6d.png" style="border-radius: 50%" height="96"> </a> <h3 align="center"><code>@kyve/sdk</

106 lines (98 loc) 2.96 kB
import { StdFee } from "@cosmjs/amino/build/signdoc"; import { AccountData } from "@cosmjs/amino/build/signer"; import { SigningStargateClient } from "@cosmjs/stargate"; import { MsgCreateStaker as MsgStake } from "@kyve/proto-beta/client/kyve/stakers/v1beta1/tx"; import { MsgUpdateMetadata } from "@kyve/proto-beta/client/kyve/stakers/v1beta1/tx"; import { MsgUpdateCommission } from "@kyve/proto-beta/client/kyve/stakers/v1beta1/tx"; import { MsgJoinPool } from "@kyve/proto-beta/client/kyve/stakers/v1beta1/tx"; import { MsgLeavePool } from "@kyve/proto-beta/client/kyve/stakers/v1beta1/tx"; import { withTypeUrl } from "../../../../../registry/tx.registry"; import { signTx, TxPromise } from "../../../../../utils/helper"; export default class { private nativeClient: SigningStargateClient; public readonly account: AccountData; constructor(client: SigningStargateClient, account: AccountData) { this.account = account; this.nativeClient = client; } public async createStaker( value: Omit<MsgStake, "creator">, options?: { fee?: StdFee | "auto" | number; memo?: string; } ) { const tx = withTypeUrl.createStaker({ ...value, creator: this.account.address, }); return new TxPromise( this.nativeClient, await signTx(this.nativeClient, this.account.address, tx, options) ); } public async updateMetadata( value: Omit<MsgUpdateMetadata, "creator">, options?: { fee?: StdFee | "auto" | number; memo?: string; } ) { const tx = withTypeUrl.updateMetadata({ ...value, creator: this.account.address, }); return new TxPromise( this.nativeClient, await signTx(this.nativeClient, this.account.address, tx, options) ); } public async updateCommission( value: Omit<MsgUpdateCommission, "creator">, options?: { fee?: StdFee | "auto" | number; memo?: string; } ) { const tx = withTypeUrl.updateCommission({ ...value, creator: this.account.address, }); return new TxPromise( this.nativeClient, await signTx(this.nativeClient, this.account.address, tx, options) ); } public async joinPool( value: Omit<MsgJoinPool, "creator">, options?: { fee?: StdFee | "auto" | number; memo?: string; } ) { const tx = withTypeUrl.joinPool({ ...value, creator: this.account.address, }); return new TxPromise( this.nativeClient, await signTx(this.nativeClient, this.account.address, tx, options) ); } public async leavePool( value: Omit<MsgLeavePool, "creator">, options?: { fee?: StdFee | "auto" | number; memo?: string; } ) { const tx = withTypeUrl.leavePool({ ...value, creator: this.account.address, }); return new TxPromise( this.nativeClient, await signTx(this.nativeClient, this.account.address, tx, options) ); } }