@frakters/nft-lending-v2
Version:
Client library for interacting with nft lenging solana program
613 lines (612 loc) • 16.7 kB
TypeScript
export declare type GemBank = {
version: "0.0.0";
name: "gem_bank";
instructions: [
{
name: "initBank";
accounts: [
{
name: "bank";
isMut: true;
isSigner: true;
},
{
name: "bankManager";
isMut: false;
isSigner: true;
},
{
name: "payer";
isMut: true;
isSigner: true;
},
{
name: "systemProgram";
isMut: false;
isSigner: false;
}
];
args: [];
},
{
name: "setBankFlags";
accounts: [
{
name: "bank";
isMut: true;
isSigner: false;
},
{
name: "bankManager";
isMut: false;
isSigner: true;
}
];
args: [
{
name: "flags";
type: "u32";
}
];
},
{
name: "initVault";
accounts: [
{
name: "bank";
isMut: true;
isSigner: false;
},
{
name: "vault";
isMut: true;
isSigner: false;
},
{
name: "creator";
isMut: false;
isSigner: true;
},
{
name: "payer";
isMut: true;
isSigner: true;
},
{
name: "systemProgram";
isMut: false;
isSigner: false;
}
];
args: [
{
name: "bump";
type: "u8";
},
{
name: "owner";
type: "publicKey";
},
{
name: "name";
type: "string";
}
];
},
{
name: "setVaultLock";
accounts: [
{
name: "bank";
isMut: false;
isSigner: false;
},
{
name: "bankManager";
isMut: false;
isSigner: true;
},
{
name: "vault";
isMut: true;
isSigner: false;
}
];
args: [
{
name: "vaultLock";
type: "bool";
}
];
},
{
name: "updateVaultOwner";
accounts: [
{
name: "bank";
isMut: false;
isSigner: false;
},
{
name: "vault";
isMut: true;
isSigner: false;
},
{
name: "owner";
isMut: false;
isSigner: true;
}
];
args: [
{
name: "newOwner";
type: "publicKey";
}
];
},
{
name: "depositGem";
accounts: [
{
name: "bank";
isMut: false;
isSigner: false;
},
{
name: "vault";
isMut: true;
isSigner: false;
},
{
name: "owner";
isMut: true;
isSigner: true;
},
{
name: "authority";
isMut: false;
isSigner: false;
},
{
name: "gemBox";
isMut: true;
isSigner: false;
},
{
name: "gemDepositReceipt";
isMut: true;
isSigner: false;
},
{
name: "gemSource";
isMut: true;
isSigner: false;
},
{
name: "gemMint";
isMut: false;
isSigner: false;
},
{
name: "tokenProgram";
isMut: false;
isSigner: false;
},
{
name: "systemProgram";
isMut: false;
isSigner: false;
},
{
name: "rent";
isMut: false;
isSigner: false;
}
];
args: [
{
name: "bumpAuth";
type: "u8";
},
{
name: "bumpGemBox";
type: "u8";
},
{
name: "bumpGdr";
type: "u8";
},
{
name: "amount";
type: "u64";
}
];
},
{
name: "withdrawGem";
accounts: [
{
name: "bank";
isMut: false;
isSigner: false;
},
{
name: "vault";
isMut: true;
isSigner: false;
},
{
name: "owner";
isMut: true;
isSigner: true;
},
{
name: "authority";
isMut: false;
isSigner: false;
},
{
name: "gemBox";
isMut: true;
isSigner: false;
},
{
name: "gemDepositReceipt";
isMut: true;
isSigner: false;
},
{
name: "gemDestination";
isMut: true;
isSigner: false;
},
{
name: "gemMint";
isMut: false;
isSigner: false;
},
{
name: "receiver";
isMut: true;
isSigner: false;
},
{
name: "tokenProgram";
isMut: false;
isSigner: false;
},
{
name: "associatedTokenProgram";
isMut: false;
isSigner: false;
},
{
name: "systemProgram";
isMut: false;
isSigner: false;
},
{
name: "rent";
isMut: false;
isSigner: false;
}
];
args: [
{
name: "bumpAuth";
type: "u8";
},
{
name: "bumpGemBox";
type: "u8";
},
{
name: "bumpGdr";
type: "u8";
},
{
name: "amount";
type: "u64";
}
];
},
{
name: "addToWhitelist";
accounts: [
{
name: "bank";
isMut: true;
isSigner: false;
},
{
name: "bankManager";
isMut: false;
isSigner: true;
},
{
name: "addressToWhitelist";
isMut: false;
isSigner: false;
},
{
name: "whitelistProof";
isMut: true;
isSigner: false;
},
{
name: "payer";
isMut: true;
isSigner: true;
},
{
name: "systemProgram";
isMut: false;
isSigner: false;
}
];
args: [
{
name: "bump";
type: "u8";
},
{
name: "whitelistType";
type: "u8";
}
];
},
{
name: "removeFromWhitelist";
accounts: [
{
name: "bank";
isMut: true;
isSigner: false;
},
{
name: "bankManager";
isMut: true;
isSigner: true;
},
{
name: "addressToRemove";
isMut: false;
isSigner: false;
},
{
name: "whitelistProof";
isMut: true;
isSigner: false;
}
];
args: [
{
name: "bump";
type: "u8";
}
];
},
{
name: "updateBankManager";
accounts: [
{
name: "bank";
isMut: true;
isSigner: false;
},
{
name: "bankManager";
isMut: false;
isSigner: true;
}
];
args: [
{
name: "newManager";
type: "publicKey";
}
];
},
{
name: "recordRarityPoints";
accounts: [
{
name: "bank";
isMut: false;
isSigner: false;
},
{
name: "bankManager";
isMut: false;
isSigner: true;
},
{
name: "payer";
isMut: true;
isSigner: true;
},
{
name: "systemProgram";
isMut: false;
isSigner: false;
}
];
args: [
{
name: "rarityConfigs";
type: {
vec: {
defined: "RarityConfig";
};
};
}
];
}
];
accounts: [
{
name: "bank";
type: {
kind: "struct";
fields: [
{
name: "version";
type: "u16";
},
{
name: "bankManager";
type: "publicKey";
},
{
name: "flags";
type: "u32";
},
{
name: "whitelistedCreators";
type: "u32";
},
{
name: "whitelistedMints";
type: "u32";
},
{
name: "vaultCount";
type: "u64";
}
];
};
},
{
name: "gemDepositReceipt";
type: {
kind: "struct";
fields: [
{
name: "vault";
type: "publicKey";
},
{
name: "gemBoxAddress";
type: "publicKey";
},
{
name: "gemMint";
type: "publicKey";
},
{
name: "gemCount";
type: "u64";
}
];
};
},
{
name: "rarity";
type: {
kind: "struct";
fields: [
{
name: "points";
type: "u16";
}
];
};
},
{
name: "vault";
type: {
kind: "struct";
fields: [
{
name: "bank";
type: "publicKey";
},
{
name: "owner";
type: "publicKey";
},
{
name: "creator";
type: "publicKey";
},
{
name: "authority";
type: "publicKey";
},
{
name: "authoritySeed";
type: "publicKey";
},
{
name: "authorityBumpSeed";
type: {
array: ["u8", 1];
};
},
{
name: "locked";
type: "bool";
},
{
name: "name";
type: {
array: ["u8", 32];
};
},
{
name: "gemBoxCount";
type: "u64";
},
{
name: "gemCount";
type: "u64";
},
{
name: "rarityPoints";
type: "u64";
}
];
};
},
{
name: "whitelistProof";
type: {
kind: "struct";
fields: [
{
name: "whitelistType";
type: "u8";
},
{
name: "whitelistedAddress";
type: "publicKey";
},
{
name: "bank";
type: "publicKey";
}
];
};
}
];
types: [
{
name: "RarityConfig";
type: {
kind: "struct";
fields: [
{
name: "mint";
type: "publicKey";
},
{
name: "rarityPoints";
type: "u16";
}
];
};
}
];
};
export declare const IDL: GemBank;