@acta-markets/ts-sdk 0.0.19-beta → 0.0.21-beta

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 (47) hide show
  1. package/dist/chain/instructions.market.d.ts +0 -1
  2. package/dist/chain/instructions.market.js +1 -6
  3. package/dist/chain/instructions.oracle.d.ts +0 -3
  4. package/dist/chain/instructions.oracle.js +1 -5
  5. package/dist/chain/instructions.position.js +8 -16
  6. package/dist/chain/instructions.shared.d.ts +0 -1
  7. package/dist/chain/instructions.shared.js +0 -1
  8. package/dist/cjs/chain/instructions.market.js +0 -5
  9. package/dist/cjs/chain/instructions.oracle.js +0 -4
  10. package/dist/cjs/chain/instructions.position.js +8 -16
  11. package/dist/cjs/chain/instructions.shared.js +1 -2
  12. package/dist/cjs/generated/errors/actaContract.js +4 -1
  13. package/dist/cjs/generated/instructions/closeOracle.js +2 -13
  14. package/dist/cjs/generated/instructions/createMarket.js +1 -10
  15. package/dist/cjs/generated/instructions/createOracle.js +1 -4
  16. package/dist/cjs/generated/instructions/depositFundsToPosition.js +5 -11
  17. package/dist/cjs/generated/instructions/finalizeMarket.js +1 -9
  18. package/dist/cjs/generated/instructions/updateOraclePrice.js +2 -13
  19. package/dist/cjs/idl/acta_contract.json +10 -61
  20. package/dist/cjs/idl/hash.js +1 -1
  21. package/dist/cjs/ws/apy.js +4 -10
  22. package/dist/cjs/ws/apy.test.js +37 -1
  23. package/dist/cjs/ws/client.js +166 -15
  24. package/dist/generated/errors/actaContract.d.ts +3 -1
  25. package/dist/generated/errors/actaContract.js +3 -0
  26. package/dist/generated/instructions/closeOracle.d.ts +5 -10
  27. package/dist/generated/instructions/closeOracle.js +2 -13
  28. package/dist/generated/instructions/createMarket.d.ts +11 -21
  29. package/dist/generated/instructions/createMarket.js +1 -10
  30. package/dist/generated/instructions/createOracle.d.ts +7 -12
  31. package/dist/generated/instructions/createOracle.js +1 -4
  32. package/dist/generated/instructions/depositFundsToPosition.d.ts +9 -14
  33. package/dist/generated/instructions/depositFundsToPosition.js +5 -11
  34. package/dist/generated/instructions/finalizeMarket.d.ts +4 -9
  35. package/dist/generated/instructions/finalizeMarket.js +1 -9
  36. package/dist/generated/instructions/updateOraclePrice.d.ts +5 -10
  37. package/dist/generated/instructions/updateOraclePrice.js +2 -13
  38. package/dist/idl/acta_contract.json +10 -61
  39. package/dist/idl/hash.d.ts +1 -1
  40. package/dist/idl/hash.js +1 -1
  41. package/dist/ws/apy.d.ts +1 -1
  42. package/dist/ws/apy.js +4 -10
  43. package/dist/ws/apy.test.js +37 -1
  44. package/dist/ws/client.d.ts +60 -4
  45. package/dist/ws/client.js +166 -15
  46. package/dist/ws/types.d.ts +38 -2
  47. package/package.json +1 -1
@@ -39,11 +39,6 @@ export function getCreateMarketInstruction(input, config) {
39
39
  marketPda: { value: input.marketPda ?? null, isWritable: true },
40
40
  underlyingMint: { value: input.underlyingMint ?? null, isWritable: false },
41
41
  quoteMint: { value: input.quoteMint ?? null, isWritable: false },
42
- underlyingMintAcc: {
43
- value: input.underlyingMintAcc ?? null,
44
- isWritable: false,
45
- },
46
- quoteMintAcc: { value: input.quoteMintAcc ?? null, isWritable: false },
47
42
  oracleUnderlying: {
48
43
  value: input.oracleUnderlying ?? null,
49
44
  isWritable: true,
@@ -67,8 +62,6 @@ export function getCreateMarketInstruction(input, config) {
67
62
  getAccountMeta(accounts.marketPda),
68
63
  getAccountMeta(accounts.underlyingMint),
69
64
  getAccountMeta(accounts.quoteMint),
70
- getAccountMeta(accounts.underlyingMintAcc),
71
- getAccountMeta(accounts.quoteMintAcc),
72
65
  getAccountMeta(accounts.oracleUnderlying),
73
66
  getAccountMeta(accounts.oracleQuote),
74
67
  getAccountMeta(accounts.systemProgram),
@@ -78,7 +71,7 @@ export function getCreateMarketInstruction(input, config) {
78
71
  });
79
72
  }
80
73
  export function parseCreateMarketInstruction(instruction) {
81
- if (instruction.accounts.length < 10) {
74
+ if (instruction.accounts.length < 8) {
82
75
  // TODO: Coded error.
83
76
  throw new Error("Not enough accounts");
84
77
  }
@@ -96,8 +89,6 @@ export function parseCreateMarketInstruction(instruction) {
96
89
  marketPda: getNextAccount(),
97
90
  underlyingMint: getNextAccount(),
98
91
  quoteMint: getNextAccount(),
99
- underlyingMintAcc: getNextAccount(),
100
- quoteMintAcc: getNextAccount(),
101
92
  oracleUnderlying: getNextAccount(),
102
93
  oracleQuote: getNextAccount(),
103
94
  systemProgram: getNextAccount(),
@@ -9,11 +9,10 @@ import { type AccountMeta, type AccountSignerMeta, type Address, type FixedSizeC
9
9
  import { ACTA_CONTRACT_PROGRAM_ADDRESS } from "../programs";
10
10
  export declare const CREATE_ORACLE_DISCRIMINATOR = 15;
11
11
  export declare function getCreateOracleDiscriminatorBytes(): ReadonlyUint8Array;
12
- export type CreateOracleInstruction<TProgram extends string = typeof ACTA_CONTRACT_PROGRAM_ADDRESS, TAccountAdmin extends string | AccountMeta<string> = string, TAccountOraclePda extends string | AccountMeta<string> = string, TAccountMint extends string | AccountMeta<string> = string, TAccountMintAcc extends string | AccountMeta<string> = string, TAccountSystemProgram extends string | AccountMeta<string> = "11111111111111111111111111111111", TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[
12
+ export type CreateOracleInstruction<TProgram extends string = typeof ACTA_CONTRACT_PROGRAM_ADDRESS, TAccountAdmin extends string | AccountMeta<string> = string, TAccountOraclePda extends string | AccountMeta<string> = string, TAccountMint extends string | AccountMeta<string> = string, TAccountSystemProgram extends string | AccountMeta<string> = "11111111111111111111111111111111", TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[
13
13
  TAccountAdmin extends string ? WritableSignerAccount<TAccountAdmin> & AccountSignerMeta<TAccountAdmin> : TAccountAdmin,
14
14
  TAccountOraclePda extends string ? WritableAccount<TAccountOraclePda> : TAccountOraclePda,
15
15
  TAccountMint extends string ? ReadonlyAccount<TAccountMint> : TAccountMint,
16
- TAccountMintAcc extends string ? ReadonlyAccount<TAccountMintAcc> : TAccountMintAcc,
17
16
  TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram,
18
17
  ...TRemainingAccounts
19
18
  ]>;
@@ -33,15 +32,13 @@ export type CreateOracleInstructionDataArgs = {
33
32
  export declare function getCreateOracleInstructionDataEncoder(): FixedSizeEncoder<CreateOracleInstructionDataArgs>;
34
33
  export declare function getCreateOracleInstructionDataDecoder(): FixedSizeDecoder<CreateOracleInstructionData>;
35
34
  export declare function getCreateOracleInstructionDataCodec(): FixedSizeCodec<CreateOracleInstructionDataArgs, CreateOracleInstructionData>;
36
- export type CreateOracleInput<TAccountAdmin extends string = string, TAccountOraclePda extends string = string, TAccountMint extends string = string, TAccountMintAcc extends string = string, TAccountSystemProgram extends string = string> = {
35
+ export type CreateOracleInput<TAccountAdmin extends string = string, TAccountOraclePda extends string = string, TAccountMint extends string = string, TAccountSystemProgram extends string = string> = {
37
36
  /** Protocol admin authority that pays rent */
38
37
  admin: TransactionSigner<TAccountAdmin>;
39
38
  /** Oracle PDA to create */
40
39
  oraclePda: Address<TAccountOraclePda>;
41
- /** SPL mint this oracle prices */
40
+ /** SPL mint this oracle prices (also used for decimals + token program owner) */
42
41
  mint: Address<TAccountMint>;
43
- /** Mint account (for decimals + token program owner) */
44
- mintAcc: Address<TAccountMintAcc>;
45
42
  /** System program */
46
43
  systemProgram?: Address<TAccountSystemProgram>;
47
44
  oracleType: CreateOracleInstructionDataArgs["oracleType"];
@@ -49,9 +46,9 @@ export type CreateOracleInput<TAccountAdmin extends string = string, TAccountOra
49
46
  authority: CreateOracleInstructionDataArgs["authority"];
50
47
  feedId: CreateOracleInstructionDataArgs["feedId"];
51
48
  };
52
- export declare function getCreateOracleInstruction<TAccountAdmin extends string, TAccountOraclePda extends string, TAccountMint extends string, TAccountMintAcc extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof ACTA_CONTRACT_PROGRAM_ADDRESS>(input: CreateOracleInput<TAccountAdmin, TAccountOraclePda, TAccountMint, TAccountMintAcc, TAccountSystemProgram>, config?: {
49
+ export declare function getCreateOracleInstruction<TAccountAdmin extends string, TAccountOraclePda extends string, TAccountMint extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof ACTA_CONTRACT_PROGRAM_ADDRESS>(input: CreateOracleInput<TAccountAdmin, TAccountOraclePda, TAccountMint, TAccountSystemProgram>, config?: {
53
50
  programAddress?: TProgramAddress;
54
- }): CreateOracleInstruction<TProgramAddress, TAccountAdmin, TAccountOraclePda, TAccountMint, TAccountMintAcc, TAccountSystemProgram>;
51
+ }): CreateOracleInstruction<TProgramAddress, TAccountAdmin, TAccountOraclePda, TAccountMint, TAccountSystemProgram>;
55
52
  export type ParsedCreateOracleInstruction<TProgram extends string = typeof ACTA_CONTRACT_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
56
53
  programAddress: Address<TProgram>;
57
54
  accounts: {
@@ -59,12 +56,10 @@ export type ParsedCreateOracleInstruction<TProgram extends string = typeof ACTA_
59
56
  admin: TAccountMetas[0];
60
57
  /** Oracle PDA to create */
61
58
  oraclePda: TAccountMetas[1];
62
- /** SPL mint this oracle prices */
59
+ /** SPL mint this oracle prices (also used for decimals + token program owner) */
63
60
  mint: TAccountMetas[2];
64
- /** Mint account (for decimals + token program owner) */
65
- mintAcc: TAccountMetas[3];
66
61
  /** System program */
67
- systemProgram: TAccountMetas[4];
62
+ systemProgram: TAccountMetas[3];
68
63
  };
69
64
  data: CreateOracleInstructionData;
70
65
  };
@@ -41,7 +41,6 @@ export function getCreateOracleInstruction(input, config) {
41
41
  admin: { value: input.admin ?? null, isWritable: true },
42
42
  oraclePda: { value: input.oraclePda ?? null, isWritable: true },
43
43
  mint: { value: input.mint ?? null, isWritable: false },
44
- mintAcc: { value: input.mintAcc ?? null, isWritable: false },
45
44
  systemProgram: { value: input.systemProgram ?? null, isWritable: false },
46
45
  };
47
46
  const accounts = originalAccounts;
@@ -58,7 +57,6 @@ export function getCreateOracleInstruction(input, config) {
58
57
  getAccountMeta(accounts.admin),
59
58
  getAccountMeta(accounts.oraclePda),
60
59
  getAccountMeta(accounts.mint),
61
- getAccountMeta(accounts.mintAcc),
62
60
  getAccountMeta(accounts.systemProgram),
63
61
  ],
64
62
  data: getCreateOracleInstructionDataEncoder().encode(args),
@@ -66,7 +64,7 @@ export function getCreateOracleInstruction(input, config) {
66
64
  });
67
65
  }
68
66
  export function parseCreateOracleInstruction(instruction) {
69
- if (instruction.accounts.length < 5) {
67
+ if (instruction.accounts.length < 4) {
70
68
  // TODO: Coded error.
71
69
  throw new Error("Not enough accounts");
72
70
  }
@@ -82,7 +80,6 @@ export function parseCreateOracleInstruction(instruction) {
82
80
  admin: getNextAccount(),
83
81
  oraclePda: getNextAccount(),
84
82
  mint: getNextAccount(),
85
- mintAcc: getNextAccount(),
86
83
  systemProgram: getNextAccount(),
87
84
  },
88
85
  data: getCreateOracleInstructionDataDecoder().decode(instruction.data),
@@ -9,15 +9,14 @@ import { type AccountMeta, type AccountSignerMeta, type Address, type FixedSizeC
9
9
  import { ACTA_CONTRACT_PROGRAM_ADDRESS } from "../programs";
10
10
  export declare const DEPOSIT_FUNDS_TO_POSITION_DISCRIMINATOR = 9;
11
11
  export declare function getDepositFundsToPositionDiscriminatorBytes(): ReadonlyUint8Array;
12
- export type DepositFundsToPositionInstruction<TProgram extends string = typeof ACTA_CONTRACT_PROGRAM_ADDRESS, TAccountMakerOwner extends string | AccountMeta<string> = string, TAccountMakerPda extends string | AccountMeta<string> = string, TAccountPositionPda extends string | AccountMeta<string> = string, TAccountMarketPda extends string | AccountMeta<string> = string, TAccountMakerFundingAta extends string | AccountMeta<string> = string, TAccountPosSettlementAta extends string | AccountMeta<string> = string, TAccountUnderlyingTokenProgram extends string | AccountMeta<string> = string, TAccountQuoteTokenProgram extends string | AccountMeta<string> = string, TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[
12
+ export type DepositFundsToPositionInstruction<TProgram extends string = typeof ACTA_CONTRACT_PROGRAM_ADDRESS, TAccountMakerOwner extends string | AccountMeta<string> = string, TAccountMakerPda extends string | AccountMeta<string> = string, TAccountPositionPda extends string | AccountMeta<string> = string, TAccountMarketPda extends string | AccountMeta<string> = string, TAccountMakerFundingAta extends string | AccountMeta<string> = string, TAccountPosSettlementAta extends string | AccountMeta<string> = string, TAccountSettlementTokenProgram extends string | AccountMeta<string> = string, TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[
13
13
  TAccountMakerOwner extends string ? ReadonlySignerAccount<TAccountMakerOwner> & AccountSignerMeta<TAccountMakerOwner> : TAccountMakerOwner,
14
14
  TAccountMakerPda extends string ? ReadonlyAccount<TAccountMakerPda> : TAccountMakerPda,
15
15
  TAccountPositionPda extends string ? WritableAccount<TAccountPositionPda> : TAccountPositionPda,
16
16
  TAccountMarketPda extends string ? ReadonlyAccount<TAccountMarketPda> : TAccountMarketPda,
17
17
  TAccountMakerFundingAta extends string ? WritableAccount<TAccountMakerFundingAta> : TAccountMakerFundingAta,
18
18
  TAccountPosSettlementAta extends string ? WritableAccount<TAccountPosSettlementAta> : TAccountPosSettlementAta,
19
- TAccountUnderlyingTokenProgram extends string ? ReadonlyAccount<TAccountUnderlyingTokenProgram> : TAccountUnderlyingTokenProgram,
20
- TAccountQuoteTokenProgram extends string ? ReadonlyAccount<TAccountQuoteTokenProgram> : TAccountQuoteTokenProgram,
19
+ TAccountSettlementTokenProgram extends string ? ReadonlyAccount<TAccountSettlementTokenProgram> : TAccountSettlementTokenProgram,
21
20
  ...TRemainingAccounts
22
21
  ]>;
23
22
  export type DepositFundsToPositionInstructionData = {
@@ -27,7 +26,7 @@ export type DepositFundsToPositionInstructionDataArgs = {};
27
26
  export declare function getDepositFundsToPositionInstructionDataEncoder(): FixedSizeEncoder<DepositFundsToPositionInstructionDataArgs>;
28
27
  export declare function getDepositFundsToPositionInstructionDataDecoder(): FixedSizeDecoder<DepositFundsToPositionInstructionData>;
29
28
  export declare function getDepositFundsToPositionInstructionDataCodec(): FixedSizeCodec<DepositFundsToPositionInstructionDataArgs, DepositFundsToPositionInstructionData>;
30
- export type DepositFundsToPositionInput<TAccountMakerOwner extends string = string, TAccountMakerPda extends string = string, TAccountPositionPda extends string = string, TAccountMarketPda extends string = string, TAccountMakerFundingAta extends string = string, TAccountPosSettlementAta extends string = string, TAccountUnderlyingTokenProgram extends string = string, TAccountQuoteTokenProgram extends string = string> = {
29
+ export type DepositFundsToPositionInput<TAccountMakerOwner extends string = string, TAccountMakerPda extends string = string, TAccountPositionPda extends string = string, TAccountMarketPda extends string = string, TAccountMakerFundingAta extends string = string, TAccountPosSettlementAta extends string = string, TAccountSettlementTokenProgram extends string = string> = {
31
30
  /** Maker owner authority */
32
31
  makerOwner: TransactionSigner<TAccountMakerOwner>;
33
32
  /** Maker PDA for ownership check */
@@ -40,14 +39,12 @@ export type DepositFundsToPositionInput<TAccountMakerOwner extends string = stri
40
39
  makerFundingAta: Address<TAccountMakerFundingAta>;
41
40
  /** Position settlement ATA */
42
41
  posSettlementAta: Address<TAccountPosSettlementAta>;
43
- /** Token program for underlying mint */
44
- underlyingTokenProgram: Address<TAccountUnderlyingTokenProgram>;
45
- /** Token program for quote mint */
46
- quoteTokenProgram: Address<TAccountQuoteTokenProgram>;
42
+ /** Token program for the settlement mint */
43
+ settlementTokenProgram: Address<TAccountSettlementTokenProgram>;
47
44
  };
48
- export declare function getDepositFundsToPositionInstruction<TAccountMakerOwner extends string, TAccountMakerPda extends string, TAccountPositionPda extends string, TAccountMarketPda extends string, TAccountMakerFundingAta extends string, TAccountPosSettlementAta extends string, TAccountUnderlyingTokenProgram extends string, TAccountQuoteTokenProgram extends string, TProgramAddress extends Address = typeof ACTA_CONTRACT_PROGRAM_ADDRESS>(input: DepositFundsToPositionInput<TAccountMakerOwner, TAccountMakerPda, TAccountPositionPda, TAccountMarketPda, TAccountMakerFundingAta, TAccountPosSettlementAta, TAccountUnderlyingTokenProgram, TAccountQuoteTokenProgram>, config?: {
45
+ export declare function getDepositFundsToPositionInstruction<TAccountMakerOwner extends string, TAccountMakerPda extends string, TAccountPositionPda extends string, TAccountMarketPda extends string, TAccountMakerFundingAta extends string, TAccountPosSettlementAta extends string, TAccountSettlementTokenProgram extends string, TProgramAddress extends Address = typeof ACTA_CONTRACT_PROGRAM_ADDRESS>(input: DepositFundsToPositionInput<TAccountMakerOwner, TAccountMakerPda, TAccountPositionPda, TAccountMarketPda, TAccountMakerFundingAta, TAccountPosSettlementAta, TAccountSettlementTokenProgram>, config?: {
49
46
  programAddress?: TProgramAddress;
50
- }): DepositFundsToPositionInstruction<TProgramAddress, TAccountMakerOwner, TAccountMakerPda, TAccountPositionPda, TAccountMarketPda, TAccountMakerFundingAta, TAccountPosSettlementAta, TAccountUnderlyingTokenProgram, TAccountQuoteTokenProgram>;
47
+ }): DepositFundsToPositionInstruction<TProgramAddress, TAccountMakerOwner, TAccountMakerPda, TAccountPositionPda, TAccountMarketPda, TAccountMakerFundingAta, TAccountPosSettlementAta, TAccountSettlementTokenProgram>;
51
48
  export type ParsedDepositFundsToPositionInstruction<TProgram extends string = typeof ACTA_CONTRACT_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
52
49
  programAddress: Address<TProgram>;
53
50
  accounts: {
@@ -63,10 +60,8 @@ export type ParsedDepositFundsToPositionInstruction<TProgram extends string = ty
63
60
  makerFundingAta: TAccountMetas[4];
64
61
  /** Position settlement ATA */
65
62
  posSettlementAta: TAccountMetas[5];
66
- /** Token program for underlying mint */
67
- underlyingTokenProgram: TAccountMetas[6];
68
- /** Token program for quote mint */
69
- quoteTokenProgram: TAccountMetas[7];
63
+ /** Token program for the settlement mint */
64
+ settlementTokenProgram: TAccountMetas[6];
70
65
  };
71
66
  data: DepositFundsToPositionInstructionData;
72
67
  };
@@ -38,12 +38,8 @@ export function getDepositFundsToPositionInstruction(input, config) {
38
38
  value: input.posSettlementAta ?? null,
39
39
  isWritable: true,
40
40
  },
41
- underlyingTokenProgram: {
42
- value: input.underlyingTokenProgram ?? null,
43
- isWritable: false,
44
- },
45
- quoteTokenProgram: {
46
- value: input.quoteTokenProgram ?? null,
41
+ settlementTokenProgram: {
42
+ value: input.settlementTokenProgram ?? null,
47
43
  isWritable: false,
48
44
  },
49
45
  };
@@ -57,15 +53,14 @@ export function getDepositFundsToPositionInstruction(input, config) {
57
53
  getAccountMeta(accounts.marketPda),
58
54
  getAccountMeta(accounts.makerFundingAta),
59
55
  getAccountMeta(accounts.posSettlementAta),
60
- getAccountMeta(accounts.underlyingTokenProgram),
61
- getAccountMeta(accounts.quoteTokenProgram),
56
+ getAccountMeta(accounts.settlementTokenProgram),
62
57
  ],
63
58
  data: getDepositFundsToPositionInstructionDataEncoder().encode({}),
64
59
  programAddress,
65
60
  });
66
61
  }
67
62
  export function parseDepositFundsToPositionInstruction(instruction) {
68
- if (instruction.accounts.length < 8) {
63
+ if (instruction.accounts.length < 7) {
69
64
  // TODO: Coded error.
70
65
  throw new Error("Not enough accounts");
71
66
  }
@@ -84,8 +79,7 @@ export function parseDepositFundsToPositionInstruction(instruction) {
84
79
  marketPda: getNextAccount(),
85
80
  makerFundingAta: getNextAccount(),
86
81
  posSettlementAta: getNextAccount(),
87
- underlyingTokenProgram: getNextAccount(),
88
- quoteTokenProgram: getNextAccount(),
82
+ settlementTokenProgram: getNextAccount(),
89
83
  },
90
84
  data: getDepositFundsToPositionInstructionDataDecoder().decode(instruction.data),
91
85
  };
@@ -9,13 +9,12 @@ import { type AccountMeta, type AccountSignerMeta, type Address, type FixedSizeC
9
9
  import { ACTA_CONTRACT_PROGRAM_ADDRESS } from "../programs";
10
10
  export declare const FINALIZE_MARKET_DISCRIMINATOR = 8;
11
11
  export declare function getFinalizeMarketDiscriminatorBytes(): ReadonlyUint8Array;
12
- export type FinalizeMarketInstruction<TProgram extends string = typeof ACTA_CONTRACT_PROGRAM_ADDRESS, TAccountAdmin extends string | AccountMeta<string> = string, TAccountMarketPda extends string | AccountMeta<string> = string, TAccountConfigPda extends string | AccountMeta<string> = string, TAccountOracleUnderlying extends string | AccountMeta<string> = string, TAccountOracleQuote extends string | AccountMeta<string> = string, TAccountClockSysvar extends string | AccountMeta<string> = "SysvarC1ock11111111111111111111111111111111", TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[
12
+ export type FinalizeMarketInstruction<TProgram extends string = typeof ACTA_CONTRACT_PROGRAM_ADDRESS, TAccountAdmin extends string | AccountMeta<string> = string, TAccountMarketPda extends string | AccountMeta<string> = string, TAccountConfigPda extends string | AccountMeta<string> = string, TAccountOracleUnderlying extends string | AccountMeta<string> = string, TAccountOracleQuote extends string | AccountMeta<string> = string, TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[
13
13
  TAccountAdmin extends string ? ReadonlySignerAccount<TAccountAdmin> & AccountSignerMeta<TAccountAdmin> : TAccountAdmin,
14
14
  TAccountMarketPda extends string ? WritableAccount<TAccountMarketPda> : TAccountMarketPda,
15
15
  TAccountConfigPda extends string ? ReadonlyAccount<TAccountConfigPda> : TAccountConfigPda,
16
16
  TAccountOracleUnderlying extends string ? ReadonlyAccount<TAccountOracleUnderlying> : TAccountOracleUnderlying,
17
17
  TAccountOracleQuote extends string ? ReadonlyAccount<TAccountOracleQuote> : TAccountOracleQuote,
18
- TAccountClockSysvar extends string ? ReadonlyAccount<TAccountClockSysvar> : TAccountClockSysvar,
19
18
  ...TRemainingAccounts
20
19
  ]>;
21
20
  export type FinalizeMarketInstructionData = {
@@ -25,7 +24,7 @@ export type FinalizeMarketInstructionDataArgs = {};
25
24
  export declare function getFinalizeMarketInstructionDataEncoder(): FixedSizeEncoder<FinalizeMarketInstructionDataArgs>;
26
25
  export declare function getFinalizeMarketInstructionDataDecoder(): FixedSizeDecoder<FinalizeMarketInstructionData>;
27
26
  export declare function getFinalizeMarketInstructionDataCodec(): FixedSizeCodec<FinalizeMarketInstructionDataArgs, FinalizeMarketInstructionData>;
28
- export type FinalizeMarketInput<TAccountAdmin extends string = string, TAccountMarketPda extends string = string, TAccountConfigPda extends string = string, TAccountOracleUnderlying extends string = string, TAccountOracleQuote extends string = string, TAccountClockSysvar extends string = string> = {
27
+ export type FinalizeMarketInput<TAccountAdmin extends string = string, TAccountMarketPda extends string = string, TAccountConfigPda extends string = string, TAccountOracleUnderlying extends string = string, TAccountOracleQuote extends string = string> = {
29
28
  /** Protocol admin authority */
30
29
  admin: TransactionSigner<TAccountAdmin>;
31
30
  /** Market PDA to finalize */
@@ -36,12 +35,10 @@ export type FinalizeMarketInput<TAccountAdmin extends string = string, TAccountM
36
35
  oracleUnderlying: Address<TAccountOracleUnderlying>;
37
36
  /** Quote oracle PDA */
38
37
  oracleQuote: Address<TAccountOracleQuote>;
39
- /** Clock sysvar account */
40
- clockSysvar?: Address<TAccountClockSysvar>;
41
38
  };
42
- export declare function getFinalizeMarketInstruction<TAccountAdmin extends string, TAccountMarketPda extends string, TAccountConfigPda extends string, TAccountOracleUnderlying extends string, TAccountOracleQuote extends string, TAccountClockSysvar extends string, TProgramAddress extends Address = typeof ACTA_CONTRACT_PROGRAM_ADDRESS>(input: FinalizeMarketInput<TAccountAdmin, TAccountMarketPda, TAccountConfigPda, TAccountOracleUnderlying, TAccountOracleQuote, TAccountClockSysvar>, config?: {
39
+ export declare function getFinalizeMarketInstruction<TAccountAdmin extends string, TAccountMarketPda extends string, TAccountConfigPda extends string, TAccountOracleUnderlying extends string, TAccountOracleQuote extends string, TProgramAddress extends Address = typeof ACTA_CONTRACT_PROGRAM_ADDRESS>(input: FinalizeMarketInput<TAccountAdmin, TAccountMarketPda, TAccountConfigPda, TAccountOracleUnderlying, TAccountOracleQuote>, config?: {
43
40
  programAddress?: TProgramAddress;
44
- }): FinalizeMarketInstruction<TProgramAddress, TAccountAdmin, TAccountMarketPda, TAccountConfigPda, TAccountOracleUnderlying, TAccountOracleQuote, TAccountClockSysvar>;
41
+ }): FinalizeMarketInstruction<TProgramAddress, TAccountAdmin, TAccountMarketPda, TAccountConfigPda, TAccountOracleUnderlying, TAccountOracleQuote>;
45
42
  export type ParsedFinalizeMarketInstruction<TProgram extends string = typeof ACTA_CONTRACT_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
46
43
  programAddress: Address<TProgram>;
47
44
  accounts: {
@@ -55,8 +52,6 @@ export type ParsedFinalizeMarketInstruction<TProgram extends string = typeof ACT
55
52
  oracleUnderlying: TAccountMetas[3];
56
53
  /** Quote oracle PDA */
57
54
  oracleQuote: TAccountMetas[4];
58
- /** Clock sysvar account */
59
- clockSysvar: TAccountMetas[5];
60
55
  };
61
56
  data: FinalizeMarketInstructionData;
62
57
  };
@@ -34,14 +34,8 @@ export function getFinalizeMarketInstruction(input, config) {
34
34
  isWritable: false,
35
35
  },
36
36
  oracleQuote: { value: input.oracleQuote ?? null, isWritable: false },
37
- clockSysvar: { value: input.clockSysvar ?? null, isWritable: false },
38
37
  };
39
38
  const accounts = originalAccounts;
40
- // Resolve default values.
41
- if (!accounts.clockSysvar.value) {
42
- accounts.clockSysvar.value =
43
- "SysvarC1ock11111111111111111111111111111111";
44
- }
45
39
  const getAccountMeta = getAccountMetaFactory(programAddress, "programId");
46
40
  return Object.freeze({
47
41
  accounts: [
@@ -50,14 +44,13 @@ export function getFinalizeMarketInstruction(input, config) {
50
44
  getAccountMeta(accounts.configPda),
51
45
  getAccountMeta(accounts.oracleUnderlying),
52
46
  getAccountMeta(accounts.oracleQuote),
53
- getAccountMeta(accounts.clockSysvar),
54
47
  ],
55
48
  data: getFinalizeMarketInstructionDataEncoder().encode({}),
56
49
  programAddress,
57
50
  });
58
51
  }
59
52
  export function parseFinalizeMarketInstruction(instruction) {
60
- if (instruction.accounts.length < 6) {
53
+ if (instruction.accounts.length < 5) {
61
54
  // TODO: Coded error.
62
55
  throw new Error("Not enough accounts");
63
56
  }
@@ -75,7 +68,6 @@ export function parseFinalizeMarketInstruction(instruction) {
75
68
  configPda: getNextAccount(),
76
69
  oracleUnderlying: getNextAccount(),
77
70
  oracleQuote: getNextAccount(),
78
- clockSysvar: getNextAccount(),
79
71
  },
80
72
  data: getFinalizeMarketInstructionDataDecoder().decode(instruction.data),
81
73
  };
@@ -5,14 +5,13 @@
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 FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type Instruction, type InstructionWithAccounts, type InstructionWithData, type ReadonlySignerAccount, type ReadonlyUint8Array, type TransactionSigner, type WritableAccount } from "@solana/kit";
9
9
  import { ACTA_CONTRACT_PROGRAM_ADDRESS } from "../programs";
10
10
  export declare const UPDATE_ORACLE_PRICE_DISCRIMINATOR = 16;
11
11
  export declare function getUpdateOraclePriceDiscriminatorBytes(): ReadonlyUint8Array;
12
- export type UpdateOraclePriceInstruction<TProgram extends string = typeof ACTA_CONTRACT_PROGRAM_ADDRESS, TAccountAuthority extends string | AccountMeta<string> = string, TAccountOraclePda extends string | AccountMeta<string> = string, TAccountClockSysvar extends string | AccountMeta<string> = "SysvarC1ock11111111111111111111111111111111", TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[
12
+ export type UpdateOraclePriceInstruction<TProgram extends string = typeof ACTA_CONTRACT_PROGRAM_ADDRESS, TAccountAuthority extends string | AccountMeta<string> = string, TAccountOraclePda extends string | AccountMeta<string> = string, TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[
13
13
  TAccountAuthority extends string ? ReadonlySignerAccount<TAccountAuthority> & AccountSignerMeta<TAccountAuthority> : TAccountAuthority,
14
14
  TAccountOraclePda extends string ? WritableAccount<TAccountOraclePda> : TAccountOraclePda,
15
- TAccountClockSysvar extends string ? ReadonlyAccount<TAccountClockSysvar> : TAccountClockSysvar,
16
15
  ...TRemainingAccounts
17
16
  ]>;
18
17
  export type UpdateOraclePriceInstructionData = {
@@ -27,19 +26,17 @@ export type UpdateOraclePriceInstructionDataArgs = {
27
26
  export declare function getUpdateOraclePriceInstructionDataEncoder(): FixedSizeEncoder<UpdateOraclePriceInstructionDataArgs>;
28
27
  export declare function getUpdateOraclePriceInstructionDataDecoder(): FixedSizeDecoder<UpdateOraclePriceInstructionData>;
29
28
  export declare function getUpdateOraclePriceInstructionDataCodec(): FixedSizeCodec<UpdateOraclePriceInstructionDataArgs, UpdateOraclePriceInstructionData>;
30
- export type UpdateOraclePriceInput<TAccountAuthority extends string = string, TAccountOraclePda extends string = string, TAccountClockSysvar extends string = string> = {
29
+ export type UpdateOraclePriceInput<TAccountAuthority extends string = string, TAccountOraclePda extends string = string> = {
31
30
  /** Oracle authority signer (or protocol admin) */
32
31
  authority: TransactionSigner<TAccountAuthority>;
33
32
  /** Oracle PDA to update */
34
33
  oraclePda: Address<TAccountOraclePda>;
35
- /** Clock sysvar account */
36
- clockSysvar?: Address<TAccountClockSysvar>;
37
34
  price: UpdateOraclePriceInstructionDataArgs["price"];
38
35
  settledExpiryTs: UpdateOraclePriceInstructionDataArgs["settledExpiryTs"];
39
36
  };
40
- export declare function getUpdateOraclePriceInstruction<TAccountAuthority extends string, TAccountOraclePda extends string, TAccountClockSysvar extends string, TProgramAddress extends Address = typeof ACTA_CONTRACT_PROGRAM_ADDRESS>(input: UpdateOraclePriceInput<TAccountAuthority, TAccountOraclePda, TAccountClockSysvar>, config?: {
37
+ export declare function getUpdateOraclePriceInstruction<TAccountAuthority extends string, TAccountOraclePda extends string, TProgramAddress extends Address = typeof ACTA_CONTRACT_PROGRAM_ADDRESS>(input: UpdateOraclePriceInput<TAccountAuthority, TAccountOraclePda>, config?: {
41
38
  programAddress?: TProgramAddress;
42
- }): UpdateOraclePriceInstruction<TProgramAddress, TAccountAuthority, TAccountOraclePda, TAccountClockSysvar>;
39
+ }): UpdateOraclePriceInstruction<TProgramAddress, TAccountAuthority, TAccountOraclePda>;
43
40
  export type ParsedUpdateOraclePriceInstruction<TProgram extends string = typeof ACTA_CONTRACT_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
44
41
  programAddress: Address<TProgram>;
45
42
  accounts: {
@@ -47,8 +44,6 @@ export type ParsedUpdateOraclePriceInstruction<TProgram extends string = typeof
47
44
  authority: TAccountMetas[0];
48
45
  /** Oracle PDA to update */
49
46
  oraclePda: TAccountMetas[1];
50
- /** Clock sysvar account */
51
- clockSysvar: TAccountMetas[2];
52
47
  };
53
48
  data: UpdateOraclePriceInstructionData;
54
49
  };
@@ -36,29 +36,22 @@ export function getUpdateOraclePriceInstruction(input, config) {
36
36
  const originalAccounts = {
37
37
  authority: { value: input.authority ?? null, isWritable: false },
38
38
  oraclePda: { value: input.oraclePda ?? null, isWritable: true },
39
- clockSysvar: { value: input.clockSysvar ?? null, isWritable: false },
40
39
  };
41
40
  const accounts = originalAccounts;
42
41
  // Original args.
43
42
  const args = { ...input };
44
- // Resolve default values.
45
- if (!accounts.clockSysvar.value) {
46
- accounts.clockSysvar.value =
47
- "SysvarC1ock11111111111111111111111111111111";
48
- }
49
43
  const getAccountMeta = getAccountMetaFactory(programAddress, "programId");
50
44
  return Object.freeze({
51
45
  accounts: [
52
46
  getAccountMeta(accounts.authority),
53
47
  getAccountMeta(accounts.oraclePda),
54
- getAccountMeta(accounts.clockSysvar),
55
48
  ],
56
49
  data: getUpdateOraclePriceInstructionDataEncoder().encode(args),
57
50
  programAddress,
58
51
  });
59
52
  }
60
53
  export function parseUpdateOraclePriceInstruction(instruction) {
61
- if (instruction.accounts.length < 3) {
54
+ if (instruction.accounts.length < 2) {
62
55
  // TODO: Coded error.
63
56
  throw new Error("Not enough accounts");
64
57
  }
@@ -70,11 +63,7 @@ export function parseUpdateOraclePriceInstruction(instruction) {
70
63
  };
71
64
  return {
72
65
  programAddress: instruction.programAddress,
73
- accounts: {
74
- authority: getNextAccount(),
75
- oraclePda: getNextAccount(),
76
- clockSysvar: getNextAccount(),
77
- },
66
+ accounts: { authority: getNextAccount(), oraclePda: getNextAccount() },
78
67
  data: getUpdateOraclePriceInstructionDataDecoder().decode(instruction.data),
79
68
  };
80
69
  }
@@ -344,7 +344,7 @@
344
344
  "isMut": false,
345
345
  "isSigner": false,
346
346
  "docs": [
347
- "Underlying SPL mint"
347
+ "Underlying SPL mint (used for PDA seed and decimals)"
348
348
  ]
349
349
  },
350
350
  {
@@ -352,23 +352,7 @@
352
352
  "isMut": false,
353
353
  "isSigner": false,
354
354
  "docs": [
355
- "Quote SPL mint"
356
- ]
357
- },
358
- {
359
- "name": "underlyingMintAcc",
360
- "isMut": false,
361
- "isSigner": false,
362
- "docs": [
363
- "Underlying mint account (for decimals)"
364
- ]
365
- },
366
- {
367
- "name": "quoteMintAcc",
368
- "isMut": false,
369
- "isSigner": false,
370
- "docs": [
371
- "Quote mint account (for decimals)"
355
+ "Quote SPL mint (used for PDA seed and decimals)"
372
356
  ]
373
357
  },
374
358
  {
@@ -617,14 +601,6 @@
617
601
  "docs": [
618
602
  "Quote oracle PDA"
619
603
  ]
620
- },
621
- {
622
- "name": "clockSysvar",
623
- "isMut": false,
624
- "isSigner": false,
625
- "docs": [
626
- "Clock sysvar account"
627
- ]
628
604
  }
629
605
  ],
630
606
  "args": [],
@@ -685,19 +661,11 @@
685
661
  ]
686
662
  },
687
663
  {
688
- "name": "underlyingTokenProgram",
689
- "isMut": false,
690
- "isSigner": false,
691
- "docs": [
692
- "Token program for underlying mint"
693
- ]
694
- },
695
- {
696
- "name": "quoteTokenProgram",
664
+ "name": "settlementTokenProgram",
697
665
  "isMut": false,
698
666
  "isSigner": false,
699
667
  "docs": [
700
- "Token program for quote mint"
668
+ "Token program for the settlement mint"
701
669
  ]
702
670
  }
703
671
  ],
@@ -1063,15 +1031,7 @@
1063
1031
  "isMut": false,
1064
1032
  "isSigner": false,
1065
1033
  "docs": [
1066
- "SPL mint this oracle prices"
1067
- ]
1068
- },
1069
- {
1070
- "name": "mintAcc",
1071
- "isMut": false,
1072
- "isSigner": false,
1073
- "docs": [
1074
- "Mint account (for decimals + token program owner)"
1034
+ "SPL mint this oracle prices (also used for decimals + token program owner)"
1075
1035
  ]
1076
1036
  },
1077
1037
  {
@@ -1129,14 +1089,6 @@
1129
1089
  "docs": [
1130
1090
  "Oracle PDA to update"
1131
1091
  ]
1132
- },
1133
- {
1134
- "name": "clockSysvar",
1135
- "isMut": false,
1136
- "isSigner": false,
1137
- "docs": [
1138
- "Clock sysvar account"
1139
- ]
1140
1092
  }
1141
1093
  ],
1142
1094
  "args": [
@@ -1251,14 +1203,6 @@
1251
1203
  "docs": [
1252
1204
  "Oracle PDA to close"
1253
1205
  ]
1254
- },
1255
- {
1256
- "name": "clockSysvar",
1257
- "isMut": false,
1258
- "isSigner": false,
1259
- "docs": [
1260
- "Clock sysvar account"
1261
- ]
1262
1206
  }
1263
1207
  ],
1264
1208
  "args": [],
@@ -2368,6 +2312,11 @@
2368
2312
  "code": 1076,
2369
2313
  "name": "MarketNotExpired",
2370
2314
  "msg": "Market has not expired yet"
2315
+ },
2316
+ {
2317
+ "code": 1077,
2318
+ "name": "OracleNotExpiredYet",
2319
+ "msg": "Oracle has not expired yet (cannot update price before expiry)"
2371
2320
  }
2372
2321
  ]
2373
2322
  }
@@ -1 +1 @@
1
- export declare const ACTA_IDL_SHA256 = "8072bc43541635b8c359d8c0209c3ab63f6a264d6843997d20c9d6c9473130c9";
1
+ export declare const ACTA_IDL_SHA256 = "2ccf0a77f682ff60b8201e2bca7f4bd026500a2fb9637d46dad7a8de3b2ee313";
package/dist/idl/hash.js CHANGED
@@ -1 +1 @@
1
- export const ACTA_IDL_SHA256 = "8072bc43541635b8c359d8c0209c3ab63f6a264d6843997d20c9d6c9473130c9";
1
+ export const ACTA_IDL_SHA256 = "2ccf0a77f682ff60b8201e2bca7f4bd026500a2fb9637d46dad7a8de3b2ee313";
package/dist/ws/apy.d.ts CHANGED
@@ -42,7 +42,7 @@ export declare function computeApyFromAmounts(args: {
42
42
  premiumPerUnderlying: number;
43
43
  /** for puts: strike price per 1 underlying (quote units) */
44
44
  strikePrice: number;
45
- /** for calls: current spot price per 1 underlying (quote units) */
45
+ /** current spot price per 1 underlying (quote units), required for both calls and puts */
46
46
  spotPrice?: number;
47
47
  /** seconds to option expiry (market expiry, not RFQ TTL) */
48
48
  secondsToExpiry: number;
package/dist/ws/apy.js CHANGED
@@ -50,17 +50,11 @@ export function computeApyFromAmounts(args) {
50
50
  if (!Number.isFinite(premPU) || premPU < 0)
51
51
  throw new Error("invalid premiumPerUnderlying");
52
52
  const premiumNotional = qty * premPU;
53
- let collateralPerUnderlying;
54
- if (args.positionType === "cash_secured_put") {
55
- collateralPerUnderlying = args.strikePrice;
56
- }
57
- else {
58
- collateralPerUnderlying = args.spotPrice ?? NaN;
59
- }
53
+ // Collateral always valued at spot so APR is monotonic across strikes.
54
+ // On-chain collateral requirements are unchanged — display metric only.
55
+ const collateralPerUnderlying = args.spotPrice ?? NaN;
60
56
  if (!Number.isFinite(collateralPerUnderlying) || collateralPerUnderlying <= 0) {
61
- throw new Error(args.positionType === "covered_call"
62
- ? "spotPrice is required for covered_call yield"
63
- : "invalid strikePrice");
57
+ throw new Error("spotPrice is required for yield calculation");
64
58
  }
65
59
  const collateralNotional = qty * collateralPerUnderlying;
66
60
  const termYield = termYieldFromNotionals({ premiumNotional, collateralNotional });