@coral-xyz/soulbound
Version:
Node.js client for the soulbound protocol
174 lines • 8 kB
TypeScript
/// <reference types="bn.js" />
import * as anchor from "@coral-xyz/anchor";
import { Program } from "@coral-xyz/anchor";
import { PublicKey, TransactionSignature, TransactionInstruction } from "@solana/web3.js";
import { SoulBoundAuthority } from "./_idls/soulBoundAuthority";
import { CardinalStakePool } from "./_idls/cardinalStakePool";
import { CardinalRewardDistributor } from "./_idls/cardinalRewardDistributor";
declare const BN: typeof anchor.BN;
export declare function createStakeApi(PROVIDER: any): {
stake: ({ user, nft, stakePool, rewardDistributor, stakePoolProgram, rewardDistributorProgram, }: {
user: PublicKey;
nft: {
mintAddress: PublicKey;
metadataAddress: PublicKey;
};
stakePool?: anchor.web3.PublicKey | undefined;
rewardDistributor?: anchor.web3.PublicKey | undefined;
stakePoolProgram?: anchor.Program<CardinalStakePool> | undefined;
rewardDistributorProgram?: anchor.Program<CardinalRewardDistributor> | undefined;
}) => Promise<TransactionSignature>;
stakeInstruction: ({ user, nft, stakePool, rewardDistributor, stakePoolProgram, rewardDistributorProgram, }: {
user: PublicKey;
nft: {
mintAddress: PublicKey;
metadataAddress: PublicKey;
};
stakePool?: anchor.web3.PublicKey | undefined;
rewardDistributor?: anchor.web3.PublicKey | undefined;
stakePoolProgram?: anchor.Program<CardinalStakePool> | undefined;
rewardDistributorProgram?: anchor.Program<CardinalRewardDistributor> | undefined;
}) => Promise<TransactionInstruction>;
unstake: ({ user, nft, stakePool, stakePoolProgram, options, }: {
user: PublicKey;
nft: {
mintAddress: PublicKey;
metadataAddress: PublicKey;
};
stakePool?: anchor.web3.PublicKey | undefined;
stakePoolProgram?: anchor.Program<CardinalStakePool> | undefined;
options?: any;
}) => Promise<TransactionSignature>;
unstakeInstruction: ({ user, nft, stakePool, stakePoolProgram, }: {
user: PublicKey;
nft: {
mintAddress: PublicKey;
metadataAddress: PublicKey;
};
stakePool?: anchor.web3.PublicKey | undefined;
stakePoolProgram?: anchor.Program<CardinalStakePool> | undefined;
}) => Promise<TransactionInstruction>;
claimAndUnstakeInstructions: ({ user, nft, stakePool, stakePoolProgram, }: {
user: PublicKey;
nft: {
mintAddress: PublicKey;
metadataAddress: PublicKey;
};
stakePool?: anchor.web3.PublicKey | undefined;
stakePoolProgram?: anchor.Program<CardinalStakePool> | undefined;
}) => Promise<Array<TransactionInstruction>>;
isStaked: ({ user, nft, stakePool, stakePoolProgram, }: {
user: PublicKey;
nft: {
mintAddress: PublicKey;
metadataAddress: PublicKey;
};
stakePool?: anchor.web3.PublicKey | undefined;
stakePoolProgram?: anchor.Program<CardinalStakePool> | undefined;
}) => Promise<boolean>;
isSoulBoundAuthorityUserInitialized: (user: PublicKey, soulboundProgram?: anchor.Program<SoulBoundAuthority>) => Promise<any>;
readGoldPoints: ({ user, nft, goldMint, stakePool, rewardDistributor, soulboundProgram, stakePoolProgram, rewardDistributorProgram, accounts, }: {
user: PublicKey;
nft: {
mintAddress: PublicKey;
metadataAddress: PublicKey;
};
goldMint?: anchor.web3.PublicKey | undefined;
soulboundProgram?: anchor.Program<SoulBoundAuthority> | undefined;
stakePool?: anchor.web3.PublicKey | undefined;
rewardDistributor?: anchor.web3.PublicKey | undefined;
stakePoolProgram?: anchor.Program<CardinalStakePool> | undefined;
rewardDistributorProgram?: anchor.Program<CardinalRewardDistributor> | undefined;
accounts?: any;
}) => Promise<number>;
readUnclaimedGoldPoints: ({ user, nft, stakePool, rewardDistributor, stakePoolProgram, rewardDistributorProgram, accounts, }: {
user: PublicKey;
nft: {
mintAddress: PublicKey;
metadataAddress: PublicKey;
};
stakePool?: anchor.web3.PublicKey | undefined;
rewardDistributor?: anchor.web3.PublicKey | undefined;
stakePoolProgram?: anchor.Program<CardinalStakePool> | undefined;
rewardDistributorProgram?: anchor.Program<CardinalRewardDistributor> | undefined;
accounts?: {
stakeEntry: any;
rewardEntry: any;
rewardDistributor: any;
goldTokenAccount: any;
} | undefined;
}) => Promise<anchor.BN>;
readClaimedGoldPoints: ({ user, nft, goldMint, soulboundProgram, rewardDistributorProgram, accounts, }: {
user: PublicKey;
nft: {
mintAddress: PublicKey;
metadataAddress: PublicKey;
};
goldMint?: anchor.web3.PublicKey | undefined;
soulboundProgram?: anchor.Program<SoulBoundAuthority> | undefined;
rewardDistributorProgram?: anchor.Program<CardinalRewardDistributor> | undefined;
accounts?: {
stakeEntry: any;
rewardEntry: any;
goldTokenAccount: any;
} | undefined;
}) => Promise<anchor.BN>;
transferRewards: ({ amount, fromUser, fromNft, toNft, goldMint, stakePool, rewardDistributor, soulboundProgram, stakePoolProgram, rewardDistributorProgram, }: {
amount?: anchor.BN | undefined;
fromUser: PublicKey;
fromNft: {
mintAddress: PublicKey;
metadataAddress: PublicKey;
};
toNft: {
mintAddress: PublicKey;
metadataAddress: PublicKey;
};
goldMint?: anchor.web3.PublicKey | undefined;
stakePool?: anchor.web3.PublicKey | undefined;
rewardDistributor?: anchor.web3.PublicKey | undefined;
soulboundProgram?: anchor.Program<SoulBoundAuthority> | undefined;
stakePoolProgram?: anchor.Program<CardinalStakePool> | undefined;
rewardDistributorProgram?: anchor.Program<CardinalRewardDistributor> | undefined;
}) => Promise<TransactionSignature>;
anchor: {
soulbound: anchor.Program<SoulBoundAuthority>;
rewardDistributor: anchor.Program<CardinalRewardDistributor>;
stakePool: anchor.Program<CardinalStakePool>;
};
constants: {
REWARD_DISTRIBUTOR: anchor.web3.PublicKey;
};
rewardEntryAddress: ({ user, nft, stakePool, rewardDistributor, stakePoolProgram, rewardDistributorProgram, }: {
user: PublicKey;
nft: {
mintAddress: PublicKey;
metadataAddress: PublicKey;
};
stakePool?: anchor.web3.PublicKey | undefined;
rewardDistributor?: anchor.web3.PublicKey | undefined;
stakePoolProgram?: anchor.Program<CardinalStakePool> | undefined;
rewardDistributorProgram?: anchor.Program<CardinalRewardDistributor> | undefined;
}) => Promise<anchor.web3.PublicKey>;
stakeEntryAddress: ({ user, nft, stakePool, stakePoolProgram, }: {
user: PublicKey;
nft: {
mintAddress: PublicKey;
metadataAddress: PublicKey;
};
stakePool?: anchor.web3.PublicKey | undefined;
stakePoolProgram?: anchor.Program<CardinalStakePool> | undefined;
}) => Promise<anchor.web3.PublicKey>;
goldPointsAddress: ({ user, nft, goldMint, soulboundProgram, rewardDistributorProgram, }: {
user: PublicKey;
nft: {
mintAddress: PublicKey;
metadataAddress: PublicKey;
};
goldMint?: anchor.web3.PublicKey | undefined;
soulboundProgram?: anchor.Program<SoulBoundAuthority> | undefined;
rewardDistributorProgram?: anchor.Program<CardinalRewardDistributor> | undefined;
}) => Promise<PublicKey>;
};
export {};
//# sourceMappingURL=index.d.ts.map