Skip to content

Commit

Permalink
Adjust trigger rent - new ixs (#324)
Browse files Browse the repository at this point in the history
  • Loading branch information
filipzeta authored Dec 15, 2023
1 parent b305b91 commit 330d247
Show file tree
Hide file tree
Showing 7 changed files with 704 additions and 6 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ Version changes are pinned to SDK releases.

## Unreleased

## [1.16.3]

- New trigger order ixs ([#324](https://github.com/zetamarkets/sdk/pull/324))

## [1.16.2]

- Prune orders v2. ([#323](https://github.com/zetamarkets/sdk/pull/323))
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@zetamarkets/sdk",
"repository": "https://github.com/zetamarkets/sdk/",
"version": "1.16.2",
"version": "1.16.3",
"description": "Zeta SDK",
"main": "dist/index.js",
"types": "dist/index.d.ts",
Expand Down
4 changes: 2 additions & 2 deletions src/cross-client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1352,7 +1352,7 @@ export class CrossClient {
new Uint8Array([indexes[i + j]])
)[0];
tx.add(
instructions.cancelTriggerOrderIx(
instructions.cancelTriggerOrderV2Ix(
indexes[i + j],
this.publicKey,
triggerAccount,
Expand All @@ -1373,7 +1373,7 @@ export class CrossClient {
new Uint8Array([orderIndex])
)[0];
let tx = new Transaction().add(
instructions.cancelTriggerOrderIx(
instructions.cancelTriggerOrderV2Ix(
orderIndex,
this._provider.wallet.publicKey,
triggerAccount,
Expand Down
208 changes: 208 additions & 0 deletions src/idl/zeta.json
Original file line number Diff line number Diff line change
Expand Up @@ -4342,6 +4342,157 @@
}
]
},
{
"name": "executeTriggerOrderV2",
"accounts": [
{
"name": "payer",
"isMut": true,
"isSigner": true
},
{
"name": "triggerOrder",
"isMut": true,
"isSigner": false
},
{
"name": "placeOrderAccounts",
"accounts": [
{
"name": "state",
"isMut": false,
"isSigner": false
},
{
"name": "pricing",
"isMut": false,
"isSigner": false
},
{
"name": "marginAccount",
"isMut": true,
"isSigner": false
},
{
"name": "dexProgram",
"isMut": false,
"isSigner": false
},
{
"name": "tokenProgram",
"isMut": false,
"isSigner": false
},
{
"name": "serumAuthority",
"isMut": false,
"isSigner": false
},
{
"name": "openOrders",
"isMut": true,
"isSigner": false
},
{
"name": "rent",
"isMut": false,
"isSigner": false
},
{
"name": "marketAccounts",
"accounts": [
{
"name": "market",
"isMut": true,
"isSigner": false
},
{
"name": "requestQueue",
"isMut": true,
"isSigner": false
},
{
"name": "eventQueue",
"isMut": true,
"isSigner": false
},
{
"name": "bids",
"isMut": true,
"isSigner": false
},
{
"name": "asks",
"isMut": true,
"isSigner": false
},
{
"name": "orderPayerTokenAccount",
"isMut": true,
"isSigner": false
},
{
"name": "coinVault",
"isMut": true,
"isSigner": false
},
{
"name": "pcVault",
"isMut": true,
"isSigner": false
},
{
"name": "coinWallet",
"isMut": true,
"isSigner": false
},
{
"name": "pcWallet",
"isMut": true,
"isSigner": false
}
]
},
{
"name": "oracle",
"isMut": false,
"isSigner": false
},
{
"name": "oracleBackupFeed",
"isMut": false,
"isSigner": false
},
{
"name": "oracleBackupProgram",
"isMut": false,
"isSigner": false
},
{
"name": "marketMint",
"isMut": true,
"isSigner": false
},
{
"name": "mintAuthority",
"isMut": false,
"isSigner": false
},
{
"name": "perpSyncQueue",
"isMut": true,
"isSigner": false
}
]
}
],
"args": [
{
"name": "triggerOrderBit",
"type": "u8"
}
]
},
{
"name": "executeTriggerOrder",
"accounts": [
Expand Down Expand Up @@ -4493,6 +4644,63 @@
}
]
},
{
"name": "forceCancelTriggerOrder",
"accounts": [
{
"name": "state",
"isMut": false,
"isSigner": false
},
{
"name": "admin",
"isMut": true,
"isSigner": true
},
{
"name": "triggerOrder",
"isMut": true,
"isSigner": false
},
{
"name": "marginAccount",
"isMut": true,
"isSigner": false
}
],
"args": [
{
"name": "triggerOrderBit",
"type": "u8"
}
]
},
{
"name": "cancelTriggerOrderV2",
"accounts": [
{
"name": "authority",
"isMut": true,
"isSigner": true
},
{
"name": "triggerOrder",
"isMut": true,
"isSigner": false
},
{
"name": "marginAccount",
"isMut": true,
"isSigner": false
}
],
"args": [
{
"name": "triggerOrderBit",
"type": "u8"
}
]
},
{
"name": "cancelTriggerOrder",
"accounts": [
Expand Down
68 changes: 68 additions & 0 deletions src/program-instructions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -631,6 +631,60 @@ export function placeTriggerOrderIx(
}
);
}
export function executeTriggerOrderV2Ix(
asset: Asset,
side: types.Side,
triggerOrderBit: number,
triggerOrder: PublicKey,
marginAccount: PublicKey,
openOrders: PublicKey,
payer: PublicKey
): TransactionInstruction {
let marketData = Exchange.getPerpMarket(asset);

return Exchange.program.instruction.executeTriggerOrderV2(triggerOrderBit, {
accounts: {
payer: payer,
triggerOrder: triggerOrder,
placeOrderAccounts: {
state: Exchange.stateAddress,
pricing: Exchange.pricingAddress,
marginAccount: marginAccount,
dexProgram: constants.DEX_PID[Exchange.network],
tokenProgram: TOKEN_PROGRAM_ID,
serumAuthority: Exchange.serumAuthority,
openOrders: openOrders,
rent: SYSVAR_RENT_PUBKEY,
marketAccounts: {
market: marketData.serumMarket.address,
requestQueue: marketData.serumMarket.requestQueueAddress,
eventQueue: marketData.serumMarket.eventQueueAddress,
bids: marketData.serumMarket.bidsAddress,
asks: marketData.serumMarket.asksAddress,
coinVault: marketData.serumMarket.baseVaultAddress,
pcVault: marketData.serumMarket.quoteVaultAddress,
// User params.
orderPayerTokenAccount:
side == types.Side.BID
? marketData.quoteVault
: marketData.baseVault,
coinWallet: marketData.baseVault,
pcWallet: marketData.quoteVault,
},
oracle: Exchange.pricing.oracles[assetToIndex(asset)],
oracleBackupFeed:
Exchange.pricing.oracleBackupFeeds[assetToIndex(asset)],
oracleBackupProgram: constants.CHAINLINK_PID,
marketMint:
side == types.Side.BID
? marketData.serumMarket.quoteMintAddress
: marketData.serumMarket.baseMintAddress,
mintAuthority: Exchange.mintAuthority,
perpSyncQueue: Exchange.pricing.perpSyncQueues[assetToIndex(asset)],
},
},
});
}
export function executeTriggerOrderIx(
asset: Asset,
side: types.Side,
Expand Down Expand Up @@ -684,6 +738,20 @@ export function executeTriggerOrderIx(
},
});
}
export function cancelTriggerOrderV2Ix(
triggerOrderBit: number,
authority: PublicKey,
triggerOrder: PublicKey,
marginAccount: PublicKey
): TransactionInstruction {
return Exchange.program.instruction.cancelTriggerOrderV2(triggerOrderBit, {
accounts: {
authority: authority,
triggerOrder: triggerOrder,
marginAccount: marginAccount,
},
});
}
export function cancelTriggerOrderIx(
triggerOrderBit: number,
payer: PublicKey,
Expand Down
Loading

0 comments on commit 330d247

Please sign in to comment.