sequnace enforcer

This commit is contained in:
Adrian Brzeziński 2024-06-13 19:41:41 +02:00
parent b17c14db0b
commit 21eb869a51
3 changed files with 23 additions and 9 deletions

View File

@ -36,7 +36,7 @@
},
"dependencies": {
"@blockworks-foundation/mango-feeds": "0.1.7",
"@blockworks-foundation/mango-v4": "0.30.0",
"@blockworks-foundation/mango-v4": "0.31.2",
"@blockworks-foundation/mango-v4-settings": "0.14.24",
"@glitchful-dev/sol-apy-sdk": "3.0.2",
"@headlessui/react": "1.6.6",

View File

@ -138,7 +138,7 @@ export const unstakeAndSwap = async (
(stakeAmountToRepay
? toNativeI80F48(stakeAmountToRepay, stakeBank.mintDecimals)
: borrowed.abs().div(stakeBank.getAssetPrice())
).toNumber() * 1.002,
).toNumber() * 1.01,
),
Math.ceil(toNativeI80F48(0.0001, stakeBank.mintDecimals).toNumber()),
)
@ -183,6 +183,7 @@ export const unstakeAndSwap = async (
const [swapIxs, alts] = await createSwapIxs({
client: client,
group: group,
mangoAccount: mangoAccount,
mangoAccountPk: mangoAccount.publicKey,
owner: payer,
inputMintPk: stakeBank.mint,
@ -258,6 +259,7 @@ export const simpleSwap = async (
const [swapIxs, alts] = await createSwapIxs({
client: client,
group: group,
mangoAccount: mangoAccount,
mangoAccountPk: mangoAccount.publicKey,
owner: payer,
inputMintPk: inputBank?.mint,
@ -384,7 +386,8 @@ export const stakeAndCreate = async (
const [swapIxs, alts] = await createSwapIxs({
client: client,
group: group,
mangoAccountPk,
mangoAccount,
mangoAccountPk: mangoAccountPk,
owner: payer,
inputMintPk: borrowBank.mint,
amountIn: borrowAmount,
@ -566,9 +569,10 @@ const createDepositIx = async (
const createSwapIxs = async ({
client,
group,
mangoAccountPk,
mangoAccount,
owner,
inputMintPk,
mangoAccountPk,
amountIn,
outputMintPk,
userDefinedInstructions,
@ -580,6 +584,7 @@ const createSwapIxs = async ({
}: {
client: MangoClient
group: Group
mangoAccount: MangoAccount | undefined
mangoAccountPk: PublicKey
owner: PublicKey
inputMintPk: PublicKey
@ -591,7 +596,6 @@ const createSwapIxs = async ({
swapHealthRemainingAccounts?: PublicKey[]
}): Promise<[TransactionInstruction[], AddressLookupTableAccount[]]> => {
const swapExecutingWallet = owner
const inputBank: Bank = group.getFirstBankByMint(inputMintPk)
const outputBank: Bank = group.getFirstBankByMint(outputMintPk)
@ -715,6 +719,15 @@ const createSwapIxs = async ({
])
.instruction()
const sequenceCheckIx = await client.program.methods
.sequenceCheck(mangoAccount?.sequenceNumber || 0)
.accounts({
group: group.publicKey,
account: mangoAccountPk,
owner: (client.program.provider as AnchorProvider).wallet.publicKey,
})
.instruction()
const flashLoanBeginIx = await client.program.methods
.flashLoanBegin([
toNative(amountIn, inputBank.mintDecimals),
@ -741,6 +754,7 @@ const createSwapIxs = async ({
return [
[
...preInstructions,
sequenceCheckIx,
flashLoanBeginIx,
...userDefinedInstructions.filter((ix) => ix.keys.length > 2),
flashLoanEndIx,

View File

@ -68,10 +68,10 @@
bn.js "^5.2.1"
eslint-config-prettier "^9.0.0"
"@blockworks-foundation/mango-v4@0.30.0":
version "0.30.0"
resolved "https://registry.yarnpkg.com/@blockworks-foundation/mango-v4/-/mango-v4-0.30.0.tgz#455484976f1dce181cd5bfbec5a0aced527d274d"
integrity sha512-2B4i/fGk5SyKkbdQVrzpEMdOArT0MzY6ksHHjrUkQsWYe/bBxm29avYkrez3P3zTVNLvnE/2yQn4AIlsKlYGfA==
"@blockworks-foundation/mango-v4@0.31.2":
version "0.31.2"
resolved "https://registry.yarnpkg.com/@blockworks-foundation/mango-v4/-/mango-v4-0.31.2.tgz#fae28a95fb454da394504ad04b61b21d4a926695"
integrity sha512-VR6vyDv1Bv7zW3+shhDdd7c2CC5Ot6xsq45+BOWIZCq6FTL4NaNbjMiQp47qr3zlQstcAsCGL2v8B9qbbdVzGQ==
dependencies:
"@blockworks-foundation/mango-v4-settings" "0.14.24"
"@blockworks-foundation/mangolana" "0.0.17"