Skip to content

Commit

Permalink
close oo fix (#372)
Browse files Browse the repository at this point in the history
* close oo fix

* changelog

* merge
  • Loading branch information
kelvinlau20100 authored Mar 25, 2024
1 parent 7cfa5ae commit 273773f
Show file tree
Hide file tree
Showing 5 changed files with 265 additions and 1 deletion.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ Version changes are pinned to SDK releases.
- Improve error handling for RPC errors ([#363](https://github.com/zetamarkets/sdk/pull/363))
- Improve tx confirmation to use blockheight and add new Exchange.skipRpcConfirmation option ([#363](https://github.com/zetamarkets/sdk/pull/363))
- Fix risk utils to use getFeeBps() ([#363](https://github.com/zetamarkets/sdk/pull/363))
- Update to closeOpenOrdersV4. ([#372](https://github.com/zetamarkets/sdk/pull/372))

## [1.24.1]

Expand Down
2 changes: 1 addition & 1 deletion src/cross-client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2572,7 +2572,7 @@ export class CrossClient {
);

tx.add(
instructions.closeOpenOrdersV3Ix(
instructions.closeOpenOrdersV4Ix(
asset,
this._provider.wallet.publicKey,
this.accountAddress,
Expand Down
77 changes: 77 additions & 0 deletions src/idl/zeta.json
Original file line number Diff line number Diff line change
Expand Up @@ -2655,6 +2655,73 @@
}
]
},
{
"name": "closeOpenOrdersV4",
"accounts": [
{
"name": "state",
"isMut": false,
"isSigner": false
},
{
"name": "pricing",
"isMut": false,
"isSigner": false
},
{
"name": "dexProgram",
"isMut": false,
"isSigner": false
},
{
"name": "openOrders",
"isMut": true,
"isSigner": false
},
{
"name": "crossMarginAccount",
"isMut": true,
"isSigner": false
},
{
"name": "authority",
"isMut": true,
"isSigner": true
},
{
"name": "market",
"isMut": false,
"isSigner": false
},
{
"name": "serumAuthority",
"isMut": false,
"isSigner": false
},
{
"name": "openOrdersMap",
"isMut": true,
"isSigner": false
},
{
"name": "eventQueue",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "mapNonce",
"type": "u8"
},
{
"name": "asset",
"type": {
"defined": "Asset"
}
}
]
},
{
"name": "initializeWhitelistDepositAccount",
"accounts": [
Expand Down Expand Up @@ -11075,6 +11142,16 @@
"code": 6164,
"name": "PostOnlyForMulti",
"msg": "Post only order types only for multi orders"
},
{
"code": 6165,
"name": "ErrTickWide",
"msg": "ErrTickWide"
},
{
"code": 6166,
"name": "OORemainingEvents",
"msg": "Open orders has remaining events"
}
]
}
32 changes: 32 additions & 0 deletions src/program-instructions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,38 @@ export function initializeOpenOrdersV3Ix(
];
}

export function closeOpenOrdersV4Ix(
asset: Asset,
userKey: PublicKey,
crossMarginAccount: PublicKey,
openOrders: PublicKey
): TransactionInstruction {
const [openOrdersMap, openOrdersMapNonce] = utils.getCrossOpenOrdersMap(
Exchange.programId,
openOrders
);
let market = Exchange.getPerpMarket(asset);

return Exchange.program.instruction.closeOpenOrdersV4(
openOrdersMapNonce,
toProgramAsset(asset),
{
accounts: {
state: Exchange.stateAddress,
pricing: Exchange.pricingAddress,
dexProgram: constants.DEX_PID[Exchange.network],
openOrders,
crossMarginAccount: crossMarginAccount,
authority: userKey,
market: market.address,
serumAuthority: Exchange.serumAuthority,
openOrdersMap,
eventQueue: market.serumMarket.eventQueueAddress,
},
}
);
}

export function closeOpenOrdersV3Ix(
asset: Asset,
userKey: PublicKey,
Expand Down
154 changes: 154 additions & 0 deletions src/types/zeta.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2655,6 +2655,73 @@ export type Zeta = {
}
]
},
{
"name": "closeOpenOrdersV4",
"accounts": [
{
"name": "state",
"isMut": false,
"isSigner": false
},
{
"name": "pricing",
"isMut": false,
"isSigner": false
},
{
"name": "dexProgram",
"isMut": false,
"isSigner": false
},
{
"name": "openOrders",
"isMut": true,
"isSigner": false
},
{
"name": "crossMarginAccount",
"isMut": true,
"isSigner": false
},
{
"name": "authority",
"isMut": true,
"isSigner": true
},
{
"name": "market",
"isMut": false,
"isSigner": false
},
{
"name": "serumAuthority",
"isMut": false,
"isSigner": false
},
{
"name": "openOrdersMap",
"isMut": true,
"isSigner": false
},
{
"name": "eventQueue",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "mapNonce",
"type": "u8"
},
{
"name": "asset",
"type": {
"defined": "Asset"
}
}
]
},
{
"name": "initializeWhitelistDepositAccount",
"accounts": [
Expand Down Expand Up @@ -11075,6 +11142,16 @@ export type Zeta = {
"code": 6164,
"name": "PostOnlyForMulti",
"msg": "Post only order types only for multi orders"
},
{
"code": 6165,
"name": "ErrTickWide",
"msg": "ErrTickWide"
},
{
"code": 6166,
"name": "OORemainingEvents",
"msg": "Open orders has remaining events"
}
]
};
Expand Down Expand Up @@ -13736,6 +13813,73 @@ export const IDL: Zeta = {
}
]
},
{
"name": "closeOpenOrdersV4",
"accounts": [
{
"name": "state",
"isMut": false,
"isSigner": false
},
{
"name": "pricing",
"isMut": false,
"isSigner": false
},
{
"name": "dexProgram",
"isMut": false,
"isSigner": false
},
{
"name": "openOrders",
"isMut": true,
"isSigner": false
},
{
"name": "crossMarginAccount",
"isMut": true,
"isSigner": false
},
{
"name": "authority",
"isMut": true,
"isSigner": true
},
{
"name": "market",
"isMut": false,
"isSigner": false
},
{
"name": "serumAuthority",
"isMut": false,
"isSigner": false
},
{
"name": "openOrdersMap",
"isMut": true,
"isSigner": false
},
{
"name": "eventQueue",
"isMut": false,
"isSigner": false
}
],
"args": [
{
"name": "mapNonce",
"type": "u8"
},
{
"name": "asset",
"type": {
"defined": "Asset"
}
}
]
},
{
"name": "initializeWhitelistDepositAccount",
"accounts": [
Expand Down Expand Up @@ -22156,6 +22300,16 @@ export const IDL: Zeta = {
"code": 6164,
"name": "PostOnlyForMulti",
"msg": "Post only order types only for multi orders"
},
{
"code": 6165,
"name": "ErrTickWide",
"msg": "ErrTickWide"
},
{
"code": 6166,
"name": "OORemainingEvents",
"msg": "Open orders has remaining events"
}
]
};

0 comments on commit 273773f

Please sign in to comment.