@picon-finance/dlmm-sdk 1.11.0 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/entities/dlmm_program.d.ts +5 -13
  2. package/dist/entities/dlmm_program.d.ts.map +1 -1
  3. package/dist/entities/dlmm_program.js +0 -4
  4. package/dist/entities/pool.d.ts +10 -15
  5. package/dist/entities/pool.d.ts.map +1 -1
  6. package/dist/entities/pool.js +101 -38
  7. package/dist/entities/position.d.ts.map +1 -1
  8. package/dist/entities/position.js +73 -3
  9. package/dist/generated/instructions/claimFee.d.ts +8 -4
  10. package/dist/generated/instructions/claimFee.d.ts.map +1 -1
  11. package/dist/generated/instructions/claimFee.js +10 -1
  12. package/dist/generated/instructions/claimProtocolFee.d.ts +11 -5
  13. package/dist/generated/instructions/claimProtocolFee.d.ts.map +1 -1
  14. package/dist/generated/instructions/claimProtocolFee.js +19 -4
  15. package/dist/generated/instructions/depositByWeight.d.ts +5 -2
  16. package/dist/generated/instructions/depositByWeight.d.ts.map +1 -1
  17. package/dist/generated/instructions/depositByWeight.js +10 -2
  18. package/dist/generated/instructions/withdraw.d.ts +8 -4
  19. package/dist/generated/instructions/withdraw.d.ts.map +1 -1
  20. package/dist/generated/instructions/withdraw.js +10 -1
  21. package/dist/generated/types/accountKind.d.ts +3 -1
  22. package/dist/generated/types/accountKind.d.ts.map +1 -1
  23. package/dist/generated/types/accountKind.js +2 -0
  24. package/dist/picon_dlmm.json +49 -2
  25. package/dist/quote/wasm-node/picon_dlmm_quote.d.ts +2 -0
  26. package/dist/quote/wasm-node/picon_dlmm_quote_bg.wasm +0 -0
  27. package/dist/quote/wasm-web/picon_dlmm_quote.d.ts +2 -0
  28. package/dist/quote/wasm-web/picon_dlmm_quote_bg.wasm +0 -0
  29. package/dist/utils/assert.d.ts +0 -1
  30. package/dist/utils/assert.d.ts.map +1 -1
  31. package/dist/utils/assert.js +0 -5
  32. package/dist/utils/constants.d.ts +0 -1
  33. package/dist/utils/constants.d.ts.map +1 -1
  34. package/dist/utils/constants.js +0 -5
  35. package/dist/utils/transfer_hook.d.ts +5 -1
  36. package/dist/utils/transfer_hook.d.ts.map +1 -1
  37. package/dist/utils/transfer_hook.js +26 -8
  38. package/package.json +1 -1
  39. package/src/entities/dlmm_program.ts +3 -13
  40. package/src/entities/pool.ts +138 -64
  41. package/src/entities/position.ts +86 -3
  42. package/src/generated/instructions/claimFee.ts +27 -6
  43. package/src/generated/instructions/claimProtocolFee.ts +45 -10
  44. package/src/generated/instructions/depositByWeight.ts +19 -0
  45. package/src/generated/instructions/withdraw.ts +27 -6
  46. package/src/generated/types/accountKind.ts +2 -0
  47. package/src/picon_dlmm.json +49 -2
  48. package/src/quote/wasm-node/picon_dlmm_quote.d.ts +2 -0
  49. package/src/quote/wasm-node/picon_dlmm_quote_bg.wasm +0 -0
  50. package/src/quote/wasm-web/picon_dlmm_quote.d.ts +2 -0
  51. package/src/quote/wasm-web/picon_dlmm_quote_bg.wasm +0 -0
  52. package/src/utils/assert.ts +0 -6
  53. package/src/utils/constants.ts +0 -6
  54. package/src/utils/transfer_hook.ts +28 -7
@@ -19,26 +19,18 @@ export declare class DlmmProgram {
19
19
  tokenProgramY: Address;
20
20
  }): Promise<Instruction>;
21
21
  swap(user: TransactionSigner, poolAddress: Address, params: {
22
- xToY: boolean;
23
- amountIn: bigint;
24
- minAmountOut: bigint;
25
- binArrayCount?: number;
26
- }, config?: FetchAccountConfig): Promise<Instruction[]>;
27
- quote(poolAddress: Address, params: {
28
- xToY: boolean;
29
- amountIn: bigint;
30
- slippageToleranceBps: number;
31
- binArrayCount?: number;
32
- }, config?: FetchAccountConfig): Promise<QuoteOutput>;
33
- quoteAndSwap(user: TransactionSigner, poolAddress: Address, params: {
34
22
  xToY: boolean;
35
23
  amountIn: bigint;
36
24
  slippageToleranceBps: number;
37
- binArrayCount?: number;
38
25
  }, config?: FetchAccountConfig): Promise<{
39
26
  quoteOutput: QuoteOutput;
40
27
  instructions: Instruction[];
41
28
  }>;
29
+ quote(poolAddress: Address, params: {
30
+ xToY: boolean;
31
+ amountIn: bigint;
32
+ slippageToleranceBps: number;
33
+ }, config?: FetchAccountConfig): Promise<QuoteOutput>;
42
34
  getAllPositionMintsByOwner(owner: Address, config?: FetchAccountsConfig): Promise<Map<Address, Address[]>>;
43
35
  createAdminConfig(deployer: TransactionSigner): Promise<Instruction>;
44
36
  resetAdminAuthority(deployer: TransactionSigner): Promise<Instruction>;
@@ -1 +1 @@
1
- {"version":3,"file":"dlmm_program.d.ts","sourceRoot":"","sources":["../../src/entities/dlmm_program.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dlmm_program.d.ts","sourceRoot":"","sources":["../../src/entities/dlmm_program.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEf,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,WAAW,EAEhB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EAGzB,MAAM,aAAa,CAAC;AAOrB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EACL,IAAI,EAEL,MAAM,QAAQ,CAAC;AAYhB,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAE/B,qBAAa,WAAW;;IAItB,YACE,GAAG,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,EACvC,cAAc,GAAE,OAAiC,EAIlD;IAED,IAAW,GAAG,+5nBAAwB;IACtC,IAAW,cAAc,YAAmC;IAE/C,OAAO,CAClB,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAEf;IAEY,UAAU,CACrB,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;QACpB,aAAa,EAAE,OAAO,CAAC;QACvB,aAAa,EAAE,OAAO,CAAC;KACxB,GACA,OAAO,CAAC,WAAW,CAAC,CAKtB;IAEY,IAAI,CACf,IAAI,EAAE,iBAAiB,EACvB,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,oBAAoB,EAAE,MAAM,CAAA;KAAE,EACzE,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC;QAAE,WAAW,EAAE,WAAW,CAAC;QAAC,YAAY,EAAE,WAAW,EAAE,CAAA;KAAE,CAAC,CAGpE;IAEY,KAAK,CAChB,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,oBAAoB,EAAE,MAAM,CAAA;KAAE,EACzE,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,WAAW,CAAC,CAGtB;IAEY,0BAA0B,CACrC,KAAK,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CA+BlC;IAEY,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAKhF;IAEY,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAKlF;IAEY,sBAAsB,CACjC,SAAS,EAAE,iBAAiB,EAC5B,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC,WAAW,CAAC,CAKtB;IAEY,oBAAoB,CAC/B,gBAAgB,EAAE,iBAAiB,GAClC,OAAO,CAAC,WAAW,CAAC,CAKtB;IAEY,0BAA0B,CACrC,SAAS,EAAE,iBAAiB,EAC5B,uBAAuB,EAAE,OAAO,GAC/B,OAAO,CAAC,WAAW,CAAC,CAKtB;IAEY,cAAc,CACzB,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAKzC;IAEY,mBAAmB,CAC9B,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,OAAO,CAAC,CAKlB;CACF"}
@@ -28,10 +28,6 @@ export class DlmmProgram {
28
28
  const pool = await this.getPool(poolAddress, config);
29
29
  return await pool.quote(params);
30
30
  }
31
- async quoteAndSwap(user, poolAddress, params, config) {
32
- const pool = await this.getPool(poolAddress, config);
33
- return await pool.quoteAndSwap(user, params);
34
- }
35
31
  async getAllPositionMintsByOwner(owner, config) {
36
32
  const { commitment, minContextSlot, abortSignal } = config ?? {};
37
33
  const { value: tokenAccounts } = await this.#rpc
@@ -1,6 +1,7 @@
1
1
  import { createSolanaRpc, type Address, type Account, type Instruction, type TransactionSigner, type FetchAccountConfig, type FetchAccountsConfig } from "@solana/kit";
2
2
  import { generated } from "..";
3
3
  import { type FeeRates, type QuoteOutput, type TransferFee } from "../quote";
4
+ import { type ExtraAccount, type TransferAccounts as TransferHookAccounts } from "../utils/transfer_hook";
4
5
  import { Position } from "./position";
5
6
  import { type ProgramConfig } from "./types";
6
7
  export declare class Pool {
@@ -34,28 +35,22 @@ export declare class Pool {
34
35
  upperBinId: number;
35
36
  }): Promise<Instruction[]>;
36
37
  closePosition(owner: TransactionSigner, positionMint: Address): Promise<Instruction>;
37
- swap(user: TransactionSigner, { xToY, amountIn, minAmountOut, binArrayCount, }: {
38
- xToY: boolean;
39
- amountIn: bigint;
40
- minAmountOut: bigint;
41
- binArrayCount?: number;
42
- }): Promise<Instruction[]>;
43
- quote({ xToY, amountIn, slippageToleranceBps, binArrayCount, }: {
38
+ swap(user: TransactionSigner, { xToY, amountIn, slippageToleranceBps, }: {
44
39
  xToY: boolean;
45
40
  amountIn: bigint;
46
41
  slippageToleranceBps: number;
47
- binArrayCount?: number;
48
- }): Promise<QuoteOutput>;
49
- quoteAndSwap(user: TransactionSigner, { xToY, amountIn, slippageToleranceBps, binArrayCount, }: {
50
- xToY: boolean;
51
- amountIn: bigint;
52
- slippageToleranceBps: number;
53
- binArrayCount?: number;
54
42
  }): Promise<{
55
43
  quoteOutput: QuoteOutput;
56
44
  instructions: Instruction[];
57
45
  }>;
58
- sync(user: TransactionSigner, desiredBinId: number, binArrayCount?: number): Promise<Instruction[]>;
46
+ resolveTransferHookAccountsX(transferAccounts: TransferHookAccounts): Promise<ExtraAccount[]>;
47
+ resolveTransferHookAccountsY(transferAccounts: TransferHookAccounts): Promise<ExtraAccount[]>;
48
+ quote(params: {
49
+ xToY: boolean;
50
+ amountIn: bigint;
51
+ slippageToleranceBps: number;
52
+ }): Promise<QuoteOutput>;
53
+ sync(user: TransactionSigner, desiredBinId: number): Promise<Instruction[]>;
59
54
  setDynamicFeeConfig(authority: TransactionSigner, dynamicFeeConfig: generated.DynamicFeeConfig): Promise<Instruction>;
60
55
  setProtocolShare(authority: TransactionSigner, protocolShare: number): Promise<Instruction>;
61
56
  claimProtocolFee(authority: TransactionSigner): Promise<Instruction[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../src/entities/pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../../src/entities/pool.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,12 @@ import { fetchAllMint, } from "@solana-program/token-2022";
3
3
  import { generated } from "..";
4
4
  import { quote, getPoolFeeRates, } from "../quote";
5
5
  import { isAccount } from "../utils/type_guards";
6
- import { assertInRange } from "../utils/assert";
7
6
  import { resolveAdminConfigAddress } from "./admin_config";
8
7
  import { processAssociatedTokenAccountPair } from "../utils/ata";
9
- import { generateBinArrayIndicesForSwap, generateBinArrayIndicesForSync, } from "../utils/bin_location";
8
+ import { getBinArrayIndex, generateBinArrayIndicesForSwap, generateBinArrayIndicesForSync, } from "../utils/bin_location";
10
9
  import { resolveTransferFee } from "../utils/transfer_fee";
11
- import { MAX_BIN_ARRAYS_PER_TRAVERSAL, MIN_BIN_ARRAYS_PER_TRAVERSAL, } from "../utils/constants";
10
+ import { resolveTransferHookProgram, resolveTransferHookExtraAccounts, toRemainingAccountMeta, } from "../utils/transfer_hook";
11
+ import { MAX_BIN_ARRAYS_PER_TRAVERSAL } from "../utils/constants";
12
12
  import { Position, openPosition, closePosition, findPositionAddress, findAllPositionAddresses, } from "./position";
13
13
  import { findAllBinArrayAddresses } from "./bin_array";
14
14
  export class Pool {
@@ -70,24 +70,42 @@ export class Pool {
70
70
  async closePosition(owner, positionMint) {
71
71
  return await closePosition({ owner, positionMint }, { programAddress: this.#programAddress });
72
72
  }
73
- async swap(user, { xToY, amountIn, minAmountOut, binArrayCount = MAX_BIN_ARRAYS_PER_TRAVERSAL, }) {
74
- assertInRange(binArrayCount, MIN_BIN_ARRAYS_PER_TRAVERSAL, MAX_BIN_ARRAYS_PER_TRAVERSAL, "binArrayCount");
75
- const indices = generateBinArrayIndicesForSwap(this.activeBinId, xToY, binArrayCount);
76
- const [binArrayAddresses, { ataX: tokenUserAccountX, ataY: tokenUserAccountY, preInstructions, postInstructions, }] = await Promise.all([
77
- findAllBinArrayAddresses({ pool: this.address, indices }, { programAddress: this.#programAddress }),
78
- processAssociatedTokenAccountPair({
79
- owner: user,
80
- tokenMintX: this.tokenMintX,
81
- tokenMintY: this.tokenMintY,
82
- tokenProgramX: this.tokenProgramX,
83
- tokenProgramY: this.tokenProgramY,
84
- amountX: xToY ? amountIn : undefined,
85
- amountY: xToY ? undefined : amountIn,
86
- }),
73
+ async swap(user, { xToY, amountIn, slippageToleranceBps, }) {
74
+ const { quoteOutput, binArrayAddresses } = await this.#quote({ xToY, amountIn, slippageToleranceBps });
75
+ const { ataX: tokenUserAccountX, ataY: tokenUserAccountY, preInstructions, postInstructions, } = await processAssociatedTokenAccountPair({
76
+ owner: user,
77
+ tokenMintX: this.tokenMintX,
78
+ tokenMintY: this.tokenMintY,
79
+ tokenProgramX: this.tokenProgramX,
80
+ tokenProgramY: this.tokenProgramY,
81
+ amountX: xToY ? amountIn : undefined,
82
+ amountY: xToY ? undefined : amountIn,
83
+ });
84
+ // Each mint's hook accounts are resolved against whichever role it plays in this swap —
85
+ // input (user -> vault, owner = user) or output (vault -> user, owner = pool PDA).
86
+ const xTransferAccounts = xToY
87
+ ? { source: tokenUserAccountX, mint: this.tokenMintX, destination: this.tokenVaultX, owner: user.address }
88
+ : { source: this.tokenVaultX, mint: this.tokenMintX, destination: tokenUserAccountX, owner: this.address };
89
+ const yTransferAccounts = xToY
90
+ ? { source: this.tokenVaultY, mint: this.tokenMintY, destination: tokenUserAccountY, owner: this.address }
91
+ : { source: tokenUserAccountY, mint: this.tokenMintY, destination: this.tokenVaultY, owner: user.address };
92
+ const [transferHookXAccounts, transferHookYAccounts] = await Promise.all([
93
+ this.resolveTransferHookAccountsX(xTransferAccounts),
94
+ this.resolveTransferHookAccountsY(yTransferAccounts),
87
95
  ]);
88
- const remainingAccountsScheme = {
89
- groups: [{ kind: generated.AccountKind.BinArray, count: binArrayAddresses.length }],
90
- };
96
+ const groups = [
97
+ { kind: generated.AccountKind.BinArray, count: binArrayAddresses.length },
98
+ ];
99
+ const remainingAccounts = binArrayAddresses.map(address => ({ address, role: AccountRole.WRITABLE }));
100
+ if (transferHookXAccounts.length > 0) {
101
+ groups.push({ kind: generated.AccountKind.TransferHookX, count: transferHookXAccounts.length });
102
+ remainingAccounts.push(...transferHookXAccounts.map(toRemainingAccountMeta));
103
+ }
104
+ if (transferHookYAccounts.length > 0) {
105
+ groups.push({ kind: generated.AccountKind.TransferHookY, count: transferHookYAccounts.length });
106
+ remainingAccounts.push(...transferHookYAccounts.map(toRemainingAccountMeta));
107
+ }
108
+ const remainingAccountsScheme = { groups };
91
109
  const swapIx = generated.getSwapInstruction({
92
110
  user,
93
111
  pool: this.address,
@@ -100,24 +118,43 @@ export class Pool {
100
118
  tokenProgramX: this.tokenProgramX,
101
119
  tokenProgramY: this.tokenProgramY,
102
120
  amountIn,
103
- minAmountOut,
121
+ minAmountOut: quoteOutput.minAmountOut,
104
122
  xToY,
105
123
  remainingAccountsScheme,
106
124
  }, { programAddress: this.#programAddress });
107
- const remainingAccounts = binArrayAddresses.map(address => ({ address, role: AccountRole.WRITABLE }));
108
125
  const swapIxWithBinArrays = { ...swapIx, accounts: [...swapIx.accounts, ...remainingAccounts] };
109
- return [...preInstructions, swapIxWithBinArrays, ...postInstructions];
126
+ const instructions = [...preInstructions, swapIxWithBinArrays, ...postInstructions];
127
+ return { quoteOutput, instructions };
110
128
  }
111
- async quote({ xToY, amountIn, slippageToleranceBps, binArrayCount = MAX_BIN_ARRAYS_PER_TRAVERSAL, }) {
112
- assertInRange(binArrayCount, MIN_BIN_ARRAYS_PER_TRAVERSAL, MAX_BIN_ARRAYS_PER_TRAVERSAL, "binArrayCount");
113
- const indices = generateBinArrayIndicesForSwap(this.activeBinId, xToY, binArrayCount);
114
- const binArrayAddresses = await findAllBinArrayAddresses({ pool: this.address, indices }, { programAddress: this.#programAddress });
129
+ // Public so Position (which only holds a reference to this Pool, not its private mint data)
130
+ // can resolve hook accounts for its own deposit/withdraw/claimFee instructions without ever
131
+ // needing a Mint account itself — empty when that mint has no active transfer hook, in which
132
+ // case the caller should add no group to the scheme for it.
133
+ async resolveTransferHookAccountsX(transferAccounts) {
134
+ return await this.#resolveTransferHookAccounts(this.#mintX, transferAccounts);
135
+ }
136
+ async resolveTransferHookAccountsY(transferAccounts) {
137
+ return await this.#resolveTransferHookAccounts(this.#mintY, transferAccounts);
138
+ }
139
+ async #resolveTransferHookAccounts(mint, transferAccounts) {
140
+ const hookProgram = resolveTransferHookProgram(mint.data);
141
+ if (!hookProgram)
142
+ return [];
143
+ return await resolveTransferHookExtraAccounts(this.#rpc, hookProgram, transferAccounts);
144
+ }
145
+ async quote(params) {
146
+ const { quoteOutput } = await this.#quote(params);
147
+ return quoteOutput;
148
+ }
149
+ async #quote({ xToY, amountIn, slippageToleranceBps, }) {
150
+ const indices = generateBinArrayIndicesForSwap(this.activeBinId, xToY, MAX_BIN_ARRAYS_PER_TRAVERSAL);
151
+ const maxBinArrayAddresses = await findAllBinArrayAddresses({ pool: this.address, indices }, { programAddress: this.#programAddress });
115
152
  const [maybeBinArrays, { transferFeeX, transferFeeY }] = await Promise.all([
116
- generated.fetchAllMaybeBinArray(this.#rpc, binArrayAddresses),
153
+ generated.fetchAllMaybeBinArray(this.#rpc, maxBinArrayAddresses),
117
154
  this.getTransferFees(),
118
155
  ]);
119
156
  const binArrays = maybeBinArrays.map(maybeBinArray => maybeBinArray.exists ? maybeBinArray.data : undefined);
120
- return await quote({
157
+ const quoteOutput = await quote({
121
158
  amountIn,
122
159
  xToY,
123
160
  slippageToleranceBps,
@@ -127,15 +164,16 @@ export class Pool {
127
164
  outputTransferFee: xToY ? transferFeeY : transferFeeX,
128
165
  binArrays,
129
166
  });
167
+ const safeOffset = xToY ? -1 : 1;
168
+ const targetBinArrayIndex = getBinArrayIndex(quoteOutput.postActiveBinId) + safeOffset;
169
+ const localTargetBinArrayIndex = targetBinArrayIndex - indices[0];
170
+ const binArrayAddresses = xToY
171
+ ? maxBinArrayAddresses.slice(Math.max(0, localTargetBinArrayIndex))
172
+ : maxBinArrayAddresses.slice(0, localTargetBinArrayIndex + 1);
173
+ return { quoteOutput, binArrayAddresses };
130
174
  }
131
- async quoteAndSwap(user, { xToY, amountIn, slippageToleranceBps, binArrayCount = MAX_BIN_ARRAYS_PER_TRAVERSAL, }) {
132
- const quoteOutput = await this.quote({ xToY, amountIn, slippageToleranceBps, binArrayCount });
133
- const instructions = await this.swap(user, { xToY, amountIn, minAmountOut: quoteOutput.minAmountOut, binArrayCount });
134
- return { quoteOutput, instructions };
135
- }
136
- async sync(user, desiredBinId, binArrayCount = MAX_BIN_ARRAYS_PER_TRAVERSAL) {
137
- assertInRange(binArrayCount, MIN_BIN_ARRAYS_PER_TRAVERSAL, MAX_BIN_ARRAYS_PER_TRAVERSAL, "binArrayCount");
138
- const indices = generateBinArrayIndicesForSync(this.activeBinId, desiredBinId, binArrayCount);
175
+ async sync(user, desiredBinId) {
176
+ const indices = generateBinArrayIndicesForSync(this.activeBinId, desiredBinId, MAX_BIN_ARRAYS_PER_TRAVERSAL);
139
177
  const binArrayAddresses = await findAllBinArrayAddresses({ pool: this.address, indices }, { programAddress: this.#programAddress });
140
178
  const remainingAccountsScheme = {
141
179
  groups: [{ kind: generated.AccountKind.BinArray, count: binArrayAddresses.length }],
@@ -163,6 +201,26 @@ export class Pool {
163
201
  tokenProgramY: this.tokenProgramY,
164
202
  }),
165
203
  ]);
204
+ // Both legs move vault -> admin, signed by the pool PDA (not the authority signer, which
205
+ // only gates the on-chain permission check).
206
+ const [transferHookXAccounts, transferHookYAccounts] = await Promise.all([
207
+ this.resolveTransferHookAccountsX({
208
+ source: this.tokenVaultX, mint: this.tokenMintX, destination: tokenAdminAccountX, owner: this.address,
209
+ }),
210
+ this.resolveTransferHookAccountsY({
211
+ source: this.tokenVaultY, mint: this.tokenMintY, destination: tokenAdminAccountY, owner: this.address,
212
+ }),
213
+ ]);
214
+ const groups = [];
215
+ const remainingAccounts = [];
216
+ if (transferHookXAccounts.length > 0) {
217
+ groups.push({ kind: generated.AccountKind.TransferHookX, count: transferHookXAccounts.length });
218
+ remainingAccounts.push(...transferHookXAccounts.map(toRemainingAccountMeta));
219
+ }
220
+ if (transferHookYAccounts.length > 0) {
221
+ groups.push({ kind: generated.AccountKind.TransferHookY, count: transferHookYAccounts.length });
222
+ remainingAccounts.push(...transferHookYAccounts.map(toRemainingAccountMeta));
223
+ }
166
224
  const claimProtocolFeeIx = await generated.getClaimProtocolFeeInstructionAsync({
167
225
  authority,
168
226
  pool: this.address,
@@ -173,10 +231,15 @@ export class Pool {
173
231
  tokenVaultY: this.tokenVaultY,
174
232
  tokenAdminAccountX,
175
233
  tokenAdminAccountY,
234
+ remainingAccountsScheme: { groups },
176
235
  tokenProgramX: this.tokenProgramX,
177
236
  tokenProgramY: this.tokenProgramY,
178
237
  }, { programAddress: this.#programAddress });
179
- return [...preInstructions, claimProtocolFeeIx, ...postInstructions];
238
+ const claimProtocolFeeIxWithHookAccounts = {
239
+ ...claimProtocolFeeIx,
240
+ accounts: [...claimProtocolFeeIx.accounts, ...remainingAccounts],
241
+ };
242
+ return [...preInstructions, claimProtocolFeeIxWithHookAccounts, ...postInstructions];
180
243
  }
181
244
  static async load(rpc, address, programAddress, config) {
182
245
  const pool = await generated.fetchPool(rpc, address, config);
@@ -1 +1 @@
1
- {"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../src/entities/position.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../src/entities/position.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { decodeAccount, assertAccountExists, fetchEncodedAccounts, } from "@sola
2
2
  import { generated } from "..";
3
3
  import { applyTransferFee } from "../quote";
4
4
  import { findPositionTokenAccount, processAssociatedTokenAccountPair, } from "../utils/ata";
5
+ import { toRemainingAccountMeta } from "../utils/transfer_hook";
5
6
  import { getBinIndex, getBinArrayIndex, getPositionBinArrayIndices, } from "../utils/bin_location";
6
7
  import { assertRangeWithinRange, assertPositionBelongsToPool, } from "../utils/assert";
7
8
  import { isUndefined } from "../utils/type_guards";
@@ -113,6 +114,25 @@ export class Position {
113
114
  amountY,
114
115
  }),
115
116
  ]);
117
+ // Both legs move owner -> vault (deposit), signed by owner itself.
118
+ const [transferHookXAccounts, transferHookYAccounts] = await Promise.all([
119
+ this.#pool.resolveTransferHookAccountsX({
120
+ source: tokenOwnerAccountX, mint: this.#pool.tokenMintX, destination: this.#pool.tokenVaultX, owner: owner.address,
121
+ }),
122
+ this.#pool.resolveTransferHookAccountsY({
123
+ source: tokenOwnerAccountY, mint: this.#pool.tokenMintY, destination: this.#pool.tokenVaultY, owner: owner.address,
124
+ }),
125
+ ]);
126
+ const groups = [];
127
+ const remainingAccounts = [];
128
+ if (transferHookXAccounts.length > 0) {
129
+ groups.push({ kind: generated.AccountKind.TransferHookX, count: transferHookXAccounts.length });
130
+ remainingAccounts.push(...transferHookXAccounts.map(toRemainingAccountMeta));
131
+ }
132
+ if (transferHookYAccounts.length > 0) {
133
+ groups.push({ kind: generated.AccountKind.TransferHookY, count: transferHookYAccounts.length });
134
+ remainingAccounts.push(...transferHookYAccounts.map(toRemainingAccountMeta));
135
+ }
116
136
  const { lowerBinArray, upperBinArray } = this.binArrayAddresses;
117
137
  const depositByWeightIx = generated.getDepositByWeightInstruction({
118
138
  owner,
@@ -136,16 +156,40 @@ export class Position {
136
156
  distributionMode,
137
157
  lowerBinId,
138
158
  binWeights,
159
+ remainingAccountsScheme: { groups },
139
160
  }, {
140
161
  programAddress: this.#pool.programAddress
141
162
  });
142
- return [...preInstructions, depositByWeightIx, ...postInstructions];
163
+ const depositByWeightIxWithHookAccounts = {
164
+ ...depositByWeightIx,
165
+ accounts: [...depositByWeightIx.accounts, ...remainingAccounts],
166
+ };
167
+ return [...preInstructions, depositByWeightIxWithHookAccounts, ...postInstructions];
143
168
  }
144
169
  async #buildClaimFeeInstruction(owner, positionTokenAccount, tokenOwnerAccountX, tokenOwnerAccountY, range) {
145
170
  const { lowerBinId, upperBinId } = range ?? this.data;
146
171
  assertRangeWithinRange({ lowerBinId, upperBinId }, this.data);
172
+ // Both legs move vault -> owner (fee claim), signed by the pool PDA.
173
+ const [transferHookXAccounts, transferHookYAccounts] = await Promise.all([
174
+ this.#pool.resolveTransferHookAccountsX({
175
+ source: this.#pool.tokenVaultX, mint: this.#pool.tokenMintX, destination: tokenOwnerAccountX, owner: this.#pool.address,
176
+ }),
177
+ this.#pool.resolveTransferHookAccountsY({
178
+ source: this.#pool.tokenVaultY, mint: this.#pool.tokenMintY, destination: tokenOwnerAccountY, owner: this.#pool.address,
179
+ }),
180
+ ]);
181
+ const groups = [];
182
+ const remainingAccounts = [];
183
+ if (transferHookXAccounts.length > 0) {
184
+ groups.push({ kind: generated.AccountKind.TransferHookX, count: transferHookXAccounts.length });
185
+ remainingAccounts.push(...transferHookXAccounts.map(toRemainingAccountMeta));
186
+ }
187
+ if (transferHookYAccounts.length > 0) {
188
+ groups.push({ kind: generated.AccountKind.TransferHookY, count: transferHookYAccounts.length });
189
+ remainingAccounts.push(...transferHookYAccounts.map(toRemainingAccountMeta));
190
+ }
147
191
  const { lowerBinArray, upperBinArray } = this.binArrayAddresses;
148
- return generated.getClaimFeeInstruction({
192
+ const claimFeeIx = generated.getClaimFeeInstruction({
149
193
  owner,
150
194
  pool: this.#pool.address,
151
195
  position: this.address,
@@ -162,9 +206,11 @@ export class Position {
162
206
  upperBinArray,
163
207
  lowerBinId,
164
208
  upperBinId,
209
+ remainingAccountsScheme: { groups },
165
210
  }, {
166
211
  programAddress: this.#pool.programAddress
167
212
  });
213
+ return { ...claimFeeIx, accounts: [...claimFeeIx.accounts, ...remainingAccounts] };
168
214
  }
169
215
  async claimFee(owner, range) {
170
216
  const [positionTokenAccount, { ataX: tokenOwnerAccountX, ataY: tokenOwnerAccountY, preInstructions, postInstructions }] = await Promise.all([
@@ -193,6 +239,25 @@ export class Position {
193
239
  tokenProgramY: this.#pool.tokenProgramY,
194
240
  }),
195
241
  ]);
242
+ // Both legs move vault -> owner (withdraw), signed by the pool PDA.
243
+ const [transferHookXAccounts, transferHookYAccounts] = await Promise.all([
244
+ this.#pool.resolveTransferHookAccountsX({
245
+ source: this.#pool.tokenVaultX, mint: this.#pool.tokenMintX, destination: tokenOwnerAccountX, owner: this.#pool.address,
246
+ }),
247
+ this.#pool.resolveTransferHookAccountsY({
248
+ source: this.#pool.tokenVaultY, mint: this.#pool.tokenMintY, destination: tokenOwnerAccountY, owner: this.#pool.address,
249
+ }),
250
+ ]);
251
+ const groups = [];
252
+ const remainingAccounts = [];
253
+ if (transferHookXAccounts.length > 0) {
254
+ groups.push({ kind: generated.AccountKind.TransferHookX, count: transferHookXAccounts.length });
255
+ remainingAccounts.push(...transferHookXAccounts.map(toRemainingAccountMeta));
256
+ }
257
+ if (transferHookYAccounts.length > 0) {
258
+ groups.push({ kind: generated.AccountKind.TransferHookY, count: transferHookYAccounts.length });
259
+ remainingAccounts.push(...transferHookYAccounts.map(toRemainingAccountMeta));
260
+ }
196
261
  const { lowerBinArray, upperBinArray } = this.binArrayAddresses;
197
262
  const withdrawIx = generated.getWithdrawInstruction({
198
263
  owner,
@@ -212,10 +277,15 @@ export class Position {
212
277
  lowerBinId,
213
278
  upperBinId,
214
279
  bpsToRemove,
280
+ remainingAccountsScheme: { groups },
215
281
  }, {
216
282
  programAddress: this.#pool.programAddress
217
283
  });
218
- return [...preInstructions, withdrawIx, ...postInstructions];
284
+ const withdrawIxWithHookAccounts = {
285
+ ...withdrawIx,
286
+ accounts: [...withdrawIx.accounts, ...remainingAccounts],
287
+ };
288
+ return [...preInstructions, withdrawIxWithHookAccounts, ...postInstructions];
219
289
  }
220
290
  async close(owner) {
221
291
  return await closePosition({ owner, positionMint: this.data.positionMint, position: this.address }, { programAddress: this.#pool.programAddress });
@@ -5,8 +5,9 @@
5
5
  *
6
6
  * @see https://github.com/codama-idl/codama
7
7
  */
8
- import { type AccountMeta, type AccountSignerMeta, type Address, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type Instruction, type InstructionWithAccounts, type InstructionWithData, type ReadonlyAccount, type ReadonlySignerAccount, type ReadonlyUint8Array, type TransactionSigner, type WritableAccount } from "@solana/kit";
8
+ import { type AccountMeta, type AccountSignerMeta, type Address, type Codec, type Decoder, type Encoder, type Instruction, type InstructionWithAccounts, type InstructionWithData, type Option, type OptionOrNullable, type ReadonlyAccount, type ReadonlySignerAccount, type ReadonlyUint8Array, type TransactionSigner, type WritableAccount } from "@solana/kit";
9
9
  import { PICON_DLMM_PROGRAM_ADDRESS } from "../programs";
10
+ import { type RemainingAccountsScheme, type RemainingAccountsSchemeArgs } from "../types";
10
11
  export declare const CLAIM_FEE_DISCRIMINATOR: ReadonlyUint8Array;
11
12
  export declare function getClaimFeeDiscriminatorBytes(): ReadonlyUint8Array;
12
13
  export type ClaimFeeInstruction<TProgram extends string = typeof PICON_DLMM_PROGRAM_ADDRESS, TAccountOwner extends string | AccountMeta<string> = string, TAccountPool extends string | AccountMeta<string> = string, TAccountPosition extends string | AccountMeta<string> = string, TAccountPositionTokenAccount extends string | AccountMeta<string> = string, TAccountTokenMintX extends string | AccountMeta<string> = string, TAccountTokenMintY extends string | AccountMeta<string> = string, TAccountTokenOwnerAccountX extends string | AccountMeta<string> = string, TAccountTokenOwnerAccountY extends string | AccountMeta<string> = string, TAccountTokenVaultX extends string | AccountMeta<string> = string, TAccountTokenVaultY extends string | AccountMeta<string> = string, TAccountTokenProgramX extends string | AccountMeta<string> = string, TAccountTokenProgramY extends string | AccountMeta<string> = string, TAccountLowerBinArray extends string | AccountMeta<string> = string, TAccountUpperBinArray extends string | AccountMeta<string> = string, TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[
@@ -30,14 +31,16 @@ export type ClaimFeeInstructionData = {
30
31
  discriminator: ReadonlyUint8Array;
31
32
  lowerBinId: number;
32
33
  upperBinId: number;
34
+ remainingAccountsScheme: Option<RemainingAccountsScheme>;
33
35
  };
34
36
  export type ClaimFeeInstructionDataArgs = {
35
37
  lowerBinId: number;
36
38
  upperBinId: number;
39
+ remainingAccountsScheme: OptionOrNullable<RemainingAccountsSchemeArgs>;
37
40
  };
38
- export declare function getClaimFeeInstructionDataEncoder(): FixedSizeEncoder<ClaimFeeInstructionDataArgs>;
39
- export declare function getClaimFeeInstructionDataDecoder(): FixedSizeDecoder<ClaimFeeInstructionData>;
40
- export declare function getClaimFeeInstructionDataCodec(): FixedSizeCodec<ClaimFeeInstructionDataArgs, ClaimFeeInstructionData>;
41
+ export declare function getClaimFeeInstructionDataEncoder(): Encoder<ClaimFeeInstructionDataArgs>;
42
+ export declare function getClaimFeeInstructionDataDecoder(): Decoder<ClaimFeeInstructionData>;
43
+ export declare function getClaimFeeInstructionDataCodec(): Codec<ClaimFeeInstructionDataArgs, ClaimFeeInstructionData>;
41
44
  export type ClaimFeeInput<TAccountOwner extends string = string, TAccountPool extends string = string, TAccountPosition extends string = string, TAccountPositionTokenAccount extends string = string, TAccountTokenMintX extends string = string, TAccountTokenMintY extends string = string, TAccountTokenOwnerAccountX extends string = string, TAccountTokenOwnerAccountY extends string = string, TAccountTokenVaultX extends string = string, TAccountTokenVaultY extends string = string, TAccountTokenProgramX extends string = string, TAccountTokenProgramY extends string = string, TAccountLowerBinArray extends string = string, TAccountUpperBinArray extends string = string> = {
42
45
  owner: TransactionSigner<TAccountOwner>;
43
46
  pool: Address<TAccountPool>;
@@ -55,6 +58,7 @@ export type ClaimFeeInput<TAccountOwner extends string = string, TAccountPool ex
55
58
  upperBinArray?: Address<TAccountUpperBinArray>;
56
59
  lowerBinId: ClaimFeeInstructionDataArgs["lowerBinId"];
57
60
  upperBinId: ClaimFeeInstructionDataArgs["upperBinId"];
61
+ remainingAccountsScheme: ClaimFeeInstructionDataArgs["remainingAccountsScheme"];
58
62
  };
59
63
  export declare function getClaimFeeInstruction<TAccountOwner extends string, TAccountPool extends string, TAccountPosition extends string, TAccountPositionTokenAccount extends string, TAccountTokenMintX extends string, TAccountTokenMintY extends string, TAccountTokenOwnerAccountX extends string, TAccountTokenOwnerAccountY extends string, TAccountTokenVaultX extends string, TAccountTokenVaultY extends string, TAccountTokenProgramX extends string, TAccountTokenProgramY extends string, TAccountLowerBinArray extends string, TAccountUpperBinArray extends string, TProgramAddress extends Address = typeof PICON_DLMM_PROGRAM_ADDRESS>(input: ClaimFeeInput<TAccountOwner, TAccountPool, TAccountPosition, TAccountPositionTokenAccount, TAccountTokenMintX, TAccountTokenMintY, TAccountTokenOwnerAccountX, TAccountTokenOwnerAccountY, TAccountTokenVaultX, TAccountTokenVaultY, TAccountTokenProgramX, TAccountTokenProgramY, TAccountLowerBinArray, TAccountUpperBinArray>, config?: {
60
64
  programAddress?: TProgramAddress;
@@ -1 +1 @@
1
- {"version":3,"file":"claimFee.d.ts","sourceRoot":"","sources":["../../../src/generated/instructions/claimFee.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAaL,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACrB,MAAM,aAAa,CAAC;AAKrB,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,uBAAuB,EAAE,kBAEpC,CAAC;AAEH,wBAAgB,6BAA6B,IAAI,kBAAkB,CAElE;AAED,MAAM,MAAM,mBAAmB,CAC7B,QAAQ,SAAS,MAAM,GAAG,OAAO,0BAA0B,EAC3D,aAAa,SAAS,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,EAC3D,YAAY,SAAS,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,EAC1D,gBAAgB,SAAS,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,EAC9D,4BAA4B,SAAS,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,EAC1E,kBAAkB,SAAS,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,EAChE,kBAAkB,SAAS,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,EAChE,0BAA0B,SAAS,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,EACxE,0BAA0B,SAAS,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,EACxE,mBAAmB,SAAS,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,EACjE,mBAAmB,SAAS,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,EACjE,qBAAqB,SAAS,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,EACnE,qBAAqB,SAAS,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,EACnE,qBAAqB,SAAS,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,EACnE,qBAAqB,SAAS,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,EACnE,kBAAkB,SAAS,SAAS,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAC5D,WAAW,CAAC,QAAQ,CAAC,GACvB,mBAAmB,CAAC,kBAAkB,CAAC,GACvC,uBAAuB,CACrB;IACE,aAAa,SAAS,MAAM,GACxB,qBAAqB,CAAC,aAAa,CAAC,GAClC,iBAAiB,CAAC,aAAa,CAAC,GAClC,aAAa;IACjB,YAAY,SAAS,MAAM,GACvB,eAAe,CAAC,YAAY,CAAC,GAC7B,YAAY;IAChB,gBAAgB,SAAS,MAAM,GAC3B,eAAe,CAAC,gBAAgB,CAAC,GACjC,gBAAgB;IACpB,4BAA4B,SAAS,MAAM,GACvC,eAAe,CAAC,4BAA4B,CAAC,GAC7C,4BAA4B;IAChC,kBAAkB,SAAS,MAAM,GAC7B,eAAe,CAAC,kBAAkB,CAAC,GACnC,kBAAkB;IACtB,kBAAkB,SAAS,MAAM,GAC7B,eAAe,CAAC,kBAAkB,CAAC,GACnC,kBAAkB;IACtB,0BAA0B,SAAS,MAAM,GACrC,eAAe,CAAC,0BAA0B,CAAC,GAC3C,0BAA0B;IAC9B,0BAA0B,SAAS,MAAM,GACrC,eAAe,CAAC,0BAA0B,CAAC,GAC3C,0BAA0B;IAC9B,mBAAmB,SAAS,MAAM,GAC9B,eAAe,CAAC,mBAAmB,CAAC,GACpC,mBAAmB;IACvB,mBAAmB,SAAS,MAAM,GAC9B,eAAe,CAAC,mBAAmB,CAAC,GACpC,mBAAmB;IACvB,qBAAqB,SAAS,MAAM,GAChC,eAAe,CAAC,qBAAqB,CAAC,GACtC,qBAAqB;IACzB,qBAAqB,SAAS,MAAM,GAChC,eAAe,CAAC,qBAAqB,CAAC,GACtC,qBAAqB;IACzB,qBAAqB,SAAS,MAAM,GAChC,eAAe,CAAC,qBAAqB,CAAC,GACtC,qBAAqB;IACzB,qBAAqB,SAAS,MAAM,GAChC,eAAe,CAAC,qBAAqB,CAAC,GACtC,qBAAqB;IACzB,GAAG,kBAAkB;CACtB,CACF,CAAC;AAEJ,MAAM,MAAM,uBAAuB,GAAG;IACpC,aAAa,EAAE,kBAAkB,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,iCAAiC,IAAI,gBAAgB,CAAC,2BAA2B,CAAC,CASjG;AAED,wBAAgB,iCAAiC,IAAI,gBAAgB,CAAC,uBAAuB,CAAC,CAM7F;AAED,wBAAgB,+BAA+B,IAAI,cAAc,CAC/D,2BAA2B,EAC3B,uBAAuB,CACxB,CAKA;AAED,MAAM,MAAM,aAAa,CACvB,aAAa,SAAS,MAAM,GAAG,MAAM,EACrC,YAAY,SAAS,MAAM,GAAG,MAAM,EACpC,gBAAgB,SAAS,MAAM,GAAG,MAAM,EACxC,4BAA4B,SAAS,MAAM,GAAG,MAAM,EACpD,kBAAkB,SAAS,MAAM,GAAG,MAAM,EAC1C,kBAAkB,SAAS,MAAM,GAAG,MAAM,EAC1C,0BAA0B,SAAS,MAAM,GAAG,MAAM,EAClD,0BAA0B,SAAS,MAAM,GAAG,MAAM,EAClD,mBAAmB,SAAS,MAAM,GAAG,MAAM,EAC3C,mBAAmB,SAAS,MAAM,GAAG,MAAM,EAC3C,qBAAqB,SAAS,MAAM,GAAG,MAAM,EAC7C,qBAAqB,SAAS,MAAM,GAAG,MAAM,EAC7C,qBAAqB,SAAS,MAAM,GAAG,MAAM,EAC7C,qBAAqB,SAAS,MAAM,GAAG,MAAM,IAC3C;IACF,KAAK,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACxC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACpC,oBAAoB,EAAE,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAC5D,UAAU,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACxC,UAAU,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACxC,kBAAkB,EAAE,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACxD,kBAAkB,EAAE,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACxD,WAAW,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC1C,WAAW,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC1C,aAAa,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC9C,aAAa,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC9C,aAAa,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC9C,aAAa,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC/C,UAAU,EAAE,2BAA2B,CAAC,YAAY,CAAC,CAAC;IACtD,UAAU,EAAE,2BAA2B,CAAC,YAAY,CAAC,CAAC;CACvD,CAAC;AAEF,wBAAgB,sBAAsB,CACpC,aAAa,SAAS,MAAM,EAC5B,YAAY,SAAS,MAAM,EAC3B,gBAAgB,SAAS,MAAM,EAC/B,4BAA4B,SAAS,MAAM,EAC3C,kBAAkB,SAAS,MAAM,EACjC,kBAAkB,SAAS,MAAM,EACjC,0BAA0B,SAAS,MAAM,EACzC,0BAA0B,SAAS,MAAM,EACzC,mBAAmB,SAAS,MAAM,EAClC,mBAAmB,SAAS,MAAM,EAClC,qBAAqB,SAAS,MAAM,EACpC,qBAAqB,SAAS,MAAM,EACpC,qBAAqB,SAAS,MAAM,EACpC,qBAAqB,SAAS,MAAM,EACpC,eAAe,SAAS,OAAO,GAAG,OAAO,0BAA0B,EAEnE,KAAK,EAAE,aAAa,CAClB,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,4BAA4B,EAC5B,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,CACtB,EACD,MAAM,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,eAAe,CAAA;CAAE,GAC5C,mBAAmB,CACpB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,4BAA4B,EAC5B,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,CACtB,CA6EA;AAED,MAAM,MAAM,yBAAyB,CACnC,QAAQ,SAAS,MAAM,GAAG,OAAO,0BAA0B,EAC3D,aAAa,SAAS,SAAS,WAAW,EAAE,GAAG,SAAS,WAAW,EAAE,IACnE;IACF,cAAc,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,QAAQ,EAAE;QACR,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QACvB,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QAC3B,oBAAoB,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QACvC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QAC7B,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QAC7B,kBAAkB,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QACrC,kBAAkB,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QACrC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QAC9B,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QAC9B,aAAa,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC;QACjC,aAAa,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC;QACjC,aAAa,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC;QACjC,aAAa,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;KAC/C,CAAC;IACF,IAAI,EAAE,uBAAuB,CAAC;CAC/B,CAAC;AAEF,wBAAgB,wBAAwB,CACtC,QAAQ,SAAS,MAAM,EACvB,aAAa,SAAS,SAAS,WAAW,EAAE,EAE5C,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,GAChC,uBAAuB,CAAC,aAAa,CAAC,GACtC,mBAAmB,CAAC,kBAAkB,CAAC,GACxC,yBAAyB,CAAC,QAAQ,EAAE,aAAa,CAAC,CA0CpD"}
1
+ {"version":3,"file":"claimFee.d.ts","sourceRoot":"","sources":["../../../src/generated/instructions/claimFee.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,10 @@
5
5
  *
6
6
  * @see https://github.com/codama-idl/codama
7
7
  */
8
- import { combineCodec, fixDecoderSize, fixEncoderSize, getBytesDecoder, getBytesEncoder, getI32Decoder, getI32Encoder, getStructDecoder, getStructEncoder, SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, SolanaError, transformEncoder, } from "@solana/kit";
8
+ import { combineCodec, fixDecoderSize, fixEncoderSize, getBytesDecoder, getBytesEncoder, getI32Decoder, getI32Encoder, getOptionDecoder, getOptionEncoder, getStructDecoder, getStructEncoder, SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, SolanaError, transformEncoder, } from "@solana/kit";
9
9
  import { getAccountMetaFactory, } from "@solana/program-client-core";
10
10
  import { PICON_DLMM_PROGRAM_ADDRESS } from "../programs";
11
+ import { getRemainingAccountsSchemeDecoder, getRemainingAccountsSchemeEncoder, } from "../types";
11
12
  export const CLAIM_FEE_DISCRIMINATOR = new Uint8Array([
12
13
  169, 32, 79, 137, 136, 232, 70, 137,
13
14
  ]);
@@ -19,6 +20,10 @@ export function getClaimFeeInstructionDataEncoder() {
19
20
  ["discriminator", fixEncoderSize(getBytesEncoder(), 8)],
20
21
  ["lowerBinId", getI32Encoder()],
21
22
  ["upperBinId", getI32Encoder()],
23
+ [
24
+ "remainingAccountsScheme",
25
+ getOptionEncoder(getRemainingAccountsSchemeEncoder()),
26
+ ],
22
27
  ]), (value) => ({ ...value, discriminator: CLAIM_FEE_DISCRIMINATOR }));
23
28
  }
24
29
  export function getClaimFeeInstructionDataDecoder() {
@@ -26,6 +31,10 @@ export function getClaimFeeInstructionDataDecoder() {
26
31
  ["discriminator", fixDecoderSize(getBytesDecoder(), 8)],
27
32
  ["lowerBinId", getI32Decoder()],
28
33
  ["upperBinId", getI32Decoder()],
34
+ [
35
+ "remainingAccountsScheme",
36
+ getOptionDecoder(getRemainingAccountsSchemeDecoder()),
37
+ ],
29
38
  ]);
30
39
  }
31
40
  export function getClaimFeeInstructionDataCodec() {