2021-01-23 17:38:23 -08:00
|
|
|
const anchor = require("@project-serum/anchor");
|
2021-01-20 17:13:02 -08:00
|
|
|
const serumCmn = require("@project-serum/common");
|
|
|
|
|
2021-01-22 17:42:59 -08:00
|
|
|
async function createBalanceSandbox(provider, r, registrySigner) {
|
2021-05-15 14:43:25 -07:00
|
|
|
const spt = anchor.web3.Keypair.generate();
|
|
|
|
const vault = anchor.web3.Keypair.generate();
|
|
|
|
const vaultStake = anchor.web3.Keypair.generate();
|
|
|
|
const vaultPw = anchor.web3.Keypair.generate();
|
2021-01-20 17:13:02 -08:00
|
|
|
|
|
|
|
const lamports = await provider.connection.getMinimumBalanceForRentExemption(
|
|
|
|
165
|
|
|
|
);
|
|
|
|
|
|
|
|
const createSptIx = await serumCmn.createTokenAccountInstrs(
|
|
|
|
provider,
|
|
|
|
spt.publicKey,
|
|
|
|
r.poolMint,
|
|
|
|
registrySigner,
|
|
|
|
lamports
|
|
|
|
);
|
|
|
|
const createVaultIx = await serumCmn.createTokenAccountInstrs(
|
|
|
|
provider,
|
|
|
|
vault.publicKey,
|
|
|
|
r.mint,
|
|
|
|
registrySigner,
|
|
|
|
lamports
|
|
|
|
);
|
|
|
|
const createVaultStakeIx = await serumCmn.createTokenAccountInstrs(
|
|
|
|
provider,
|
|
|
|
vaultStake.publicKey,
|
|
|
|
r.mint,
|
|
|
|
registrySigner,
|
|
|
|
lamports
|
|
|
|
);
|
|
|
|
const createVaultPwIx = await serumCmn.createTokenAccountInstrs(
|
|
|
|
provider,
|
|
|
|
vaultPw.publicKey,
|
|
|
|
r.mint,
|
|
|
|
registrySigner,
|
|
|
|
lamports
|
|
|
|
);
|
|
|
|
let tx0 = new anchor.web3.Transaction();
|
|
|
|
tx0.add(
|
|
|
|
...createSptIx,
|
|
|
|
...createVaultIx,
|
|
|
|
...createVaultStakeIx,
|
|
|
|
...createVaultPwIx
|
|
|
|
);
|
|
|
|
let signers0 = [spt, vault, vaultStake, vaultPw];
|
|
|
|
|
|
|
|
const tx = { tx: tx0, signers: signers0 };
|
|
|
|
|
|
|
|
return [
|
|
|
|
tx,
|
|
|
|
{
|
|
|
|
spt: spt.publicKey,
|
|
|
|
vault: vault.publicKey,
|
|
|
|
vaultStake: vaultStake.publicKey,
|
|
|
|
vaultPw: vaultPw.publicKey,
|
|
|
|
},
|
|
|
|
];
|
|
|
|
}
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
createBalanceSandbox,
|
|
|
|
};
|