@epicentral/sos-sdk 0.9.0-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 (113) hide show
  1. package/.env.example +1 -0
  2. package/AGENTS.md +7 -0
  3. package/LICENSE +21 -0
  4. package/README.md +568 -0
  5. package/accounts/fetchers.ts +196 -0
  6. package/accounts/list.ts +184 -0
  7. package/accounts/pdas.ts +325 -0
  8. package/accounts/resolve-option.ts +104 -0
  9. package/client/lookup-table.ts +114 -0
  10. package/client/program.ts +13 -0
  11. package/client/types.ts +9 -0
  12. package/generated/accounts/collateralPool.ts +217 -0
  13. package/generated/accounts/config.ts +156 -0
  14. package/generated/accounts/escrowState.ts +183 -0
  15. package/generated/accounts/index.ts +20 -0
  16. package/generated/accounts/lenderPosition.ts +211 -0
  17. package/generated/accounts/makerCollateralShare.ts +229 -0
  18. package/generated/accounts/marketDataAccount.ts +176 -0
  19. package/generated/accounts/optionAccount.ts +247 -0
  20. package/generated/accounts/optionPool.ts +285 -0
  21. package/generated/accounts/poolLoan.ts +232 -0
  22. package/generated/accounts/positionAccount.ts +201 -0
  23. package/generated/accounts/vault.ts +366 -0
  24. package/generated/accounts/writerPosition.ts +327 -0
  25. package/generated/errors/index.ts +9 -0
  26. package/generated/errors/optionProgram.ts +476 -0
  27. package/generated/index.ts +13 -0
  28. package/generated/instructions/acceptAdmin.ts +230 -0
  29. package/generated/instructions/autoExerciseAllExpired.ts +685 -0
  30. package/generated/instructions/autoExerciseExpired.ts +754 -0
  31. package/generated/instructions/borrowFromPool.ts +619 -0
  32. package/generated/instructions/buyFromPool.ts +761 -0
  33. package/generated/instructions/closeLongToPool.ts +762 -0
  34. package/generated/instructions/closeOption.ts +235 -0
  35. package/generated/instructions/createEscrowV2.ts +518 -0
  36. package/generated/instructions/depositCollateral.ts +624 -0
  37. package/generated/instructions/depositToPosition.ts +429 -0
  38. package/generated/instructions/index.ts +47 -0
  39. package/generated/instructions/initCollateralPool.ts +513 -0
  40. package/generated/instructions/initConfig.ts +279 -0
  41. package/generated/instructions/initOptionPool.ts +587 -0
  42. package/generated/instructions/initializeMarketData.ts +359 -0
  43. package/generated/instructions/liquidateWriterPosition.ts +750 -0
  44. package/generated/instructions/liquidateWriterPositionRescue.ts +623 -0
  45. package/generated/instructions/omlpCreateVault.ts +553 -0
  46. package/generated/instructions/omlpUpdateFeeWallet.ts +473 -0
  47. package/generated/instructions/omlpUpdateInterestModel.ts +322 -0
  48. package/generated/instructions/omlpUpdateLiquidationThreshold.ts +304 -0
  49. package/generated/instructions/omlpUpdateMaintenanceBuffer.ts +304 -0
  50. package/generated/instructions/omlpUpdateMaxBorrowCap.ts +304 -0
  51. package/generated/instructions/omlpUpdateMaxLeverage.ts +304 -0
  52. package/generated/instructions/omlpUpdateProtocolFee.ts +304 -0
  53. package/generated/instructions/omlpUpdateSupplyLimit.ts +304 -0
  54. package/generated/instructions/optionExercise.ts +617 -0
  55. package/generated/instructions/optionMint.ts +1373 -0
  56. package/generated/instructions/optionValidate.ts +302 -0
  57. package/generated/instructions/repayPoolLoan.ts +558 -0
  58. package/generated/instructions/repayPoolLoanFromCollateral.ts +514 -0
  59. package/generated/instructions/repayPoolLoanFromWallet.ts +542 -0
  60. package/generated/instructions/settleMakerCollateral.ts +509 -0
  61. package/generated/instructions/syncWriterPosition.ts +206 -0
  62. package/generated/instructions/transferAdmin.ts +245 -0
  63. package/generated/instructions/unwindWriterUnsold.ts +764 -0
  64. package/generated/instructions/updateImpliedVolatility.ts +226 -0
  65. package/generated/instructions/updateMarketData.ts +315 -0
  66. package/generated/instructions/withdrawFromPosition.ts +405 -0
  67. package/generated/instructions/writeToPool.ts +619 -0
  68. package/generated/programs/index.ts +9 -0
  69. package/generated/programs/optionProgram.ts +1144 -0
  70. package/generated/shared/index.ts +164 -0
  71. package/generated/types/impliedVolatilityUpdated.ts +73 -0
  72. package/generated/types/index.ts +28 -0
  73. package/generated/types/liquidationExecuted.ts +73 -0
  74. package/generated/types/liquidationRescueEvent.ts +82 -0
  75. package/generated/types/marketDataInitialized.ts +61 -0
  76. package/generated/types/marketDataUpdated.ts +69 -0
  77. package/generated/types/optionClosed.ts +56 -0
  78. package/generated/types/optionExercised.ts +62 -0
  79. package/generated/types/optionExpired.ts +49 -0
  80. package/generated/types/optionMinted.ts +78 -0
  81. package/generated/types/optionType.ts +38 -0
  82. package/generated/types/optionValidated.ts +82 -0
  83. package/generated/types/poolLoanCreated.ts +74 -0
  84. package/generated/types/poolLoanRepaid.ts +74 -0
  85. package/generated/types/positionDeposited.ts +73 -0
  86. package/generated/types/positionWithdrawn.ts +81 -0
  87. package/generated/types/protocolFeeUpdated.ts +69 -0
  88. package/generated/types/vaultCreated.ts +60 -0
  89. package/generated/types/vaultFeeWalletUpdated.ts +67 -0
  90. package/generated/types/vaultInterestModelUpdated.ts +77 -0
  91. package/generated/types/vaultLiquidationThresholdUpdated.ts +69 -0
  92. package/index.ts +68 -0
  93. package/long/builders.ts +690 -0
  94. package/long/exercise.ts +123 -0
  95. package/long/preflight.ts +214 -0
  96. package/long/quotes.ts +48 -0
  97. package/long/remaining-accounts.ts +111 -0
  98. package/omlp/builders.ts +94 -0
  99. package/omlp/service.ts +136 -0
  100. package/oracle/switchboard.ts +315 -0
  101. package/package.json +34 -0
  102. package/shared/amounts.ts +53 -0
  103. package/shared/balances.ts +57 -0
  104. package/shared/errors.ts +12 -0
  105. package/shared/remaining-accounts.ts +41 -0
  106. package/shared/trade-config.ts +27 -0
  107. package/shared/transactions.ts +121 -0
  108. package/short/builders.ts +874 -0
  109. package/short/close-option.ts +34 -0
  110. package/short/pool.ts +189 -0
  111. package/short/preflight.ts +619 -0
  112. package/tsconfig.json +13 -0
  113. package/wsol/instructions.ts +247 -0
@@ -0,0 +1,49 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+
9
+ import {
10
+ combineCodec,
11
+ getAddressDecoder,
12
+ getAddressEncoder,
13
+ getI64Decoder,
14
+ getI64Encoder,
15
+ getStructDecoder,
16
+ getStructEncoder,
17
+ type Address,
18
+ type FixedSizeCodec,
19
+ type FixedSizeDecoder,
20
+ type FixedSizeEncoder,
21
+ } from "@solana/kit";
22
+
23
+ export type OptionExpired = { optionAccount: Address; expiredAt: bigint };
24
+
25
+ export type OptionExpiredArgs = {
26
+ optionAccount: Address;
27
+ expiredAt: number | bigint;
28
+ };
29
+
30
+ export function getOptionExpiredEncoder(): FixedSizeEncoder<OptionExpiredArgs> {
31
+ return getStructEncoder([
32
+ ["optionAccount", getAddressEncoder()],
33
+ ["expiredAt", getI64Encoder()],
34
+ ]);
35
+ }
36
+
37
+ export function getOptionExpiredDecoder(): FixedSizeDecoder<OptionExpired> {
38
+ return getStructDecoder([
39
+ ["optionAccount", getAddressDecoder()],
40
+ ["expiredAt", getI64Decoder()],
41
+ ]);
42
+ }
43
+
44
+ export function getOptionExpiredCodec(): FixedSizeCodec<
45
+ OptionExpiredArgs,
46
+ OptionExpired
47
+ > {
48
+ return combineCodec(getOptionExpiredEncoder(), getOptionExpiredDecoder());
49
+ }
@@ -0,0 +1,78 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+
9
+ import {
10
+ combineCodec,
11
+ getAddressDecoder,
12
+ getAddressEncoder,
13
+ getF64Decoder,
14
+ getF64Encoder,
15
+ getI64Decoder,
16
+ getI64Encoder,
17
+ getStructDecoder,
18
+ getStructEncoder,
19
+ getU64Decoder,
20
+ getU64Encoder,
21
+ type Address,
22
+ type FixedSizeCodec,
23
+ type FixedSizeDecoder,
24
+ type FixedSizeEncoder,
25
+ } from "@solana/kit";
26
+ import {
27
+ getOptionTypeDecoder,
28
+ getOptionTypeEncoder,
29
+ type OptionType,
30
+ type OptionTypeArgs,
31
+ } from ".";
32
+
33
+ export type OptionMinted = {
34
+ optionAccount: Address;
35
+ maker: Address;
36
+ optionType: OptionType;
37
+ strikePrice: number;
38
+ expirationDate: bigint;
39
+ quantity: bigint;
40
+ };
41
+
42
+ export type OptionMintedArgs = {
43
+ optionAccount: Address;
44
+ maker: Address;
45
+ optionType: OptionTypeArgs;
46
+ strikePrice: number;
47
+ expirationDate: number | bigint;
48
+ quantity: number | bigint;
49
+ };
50
+
51
+ export function getOptionMintedEncoder(): FixedSizeEncoder<OptionMintedArgs> {
52
+ return getStructEncoder([
53
+ ["optionAccount", getAddressEncoder()],
54
+ ["maker", getAddressEncoder()],
55
+ ["optionType", getOptionTypeEncoder()],
56
+ ["strikePrice", getF64Encoder()],
57
+ ["expirationDate", getI64Encoder()],
58
+ ["quantity", getU64Encoder()],
59
+ ]);
60
+ }
61
+
62
+ export function getOptionMintedDecoder(): FixedSizeDecoder<OptionMinted> {
63
+ return getStructDecoder([
64
+ ["optionAccount", getAddressDecoder()],
65
+ ["maker", getAddressDecoder()],
66
+ ["optionType", getOptionTypeDecoder()],
67
+ ["strikePrice", getF64Decoder()],
68
+ ["expirationDate", getI64Decoder()],
69
+ ["quantity", getU64Decoder()],
70
+ ]);
71
+ }
72
+
73
+ export function getOptionMintedCodec(): FixedSizeCodec<
74
+ OptionMintedArgs,
75
+ OptionMinted
76
+ > {
77
+ return combineCodec(getOptionMintedEncoder(), getOptionMintedDecoder());
78
+ }
@@ -0,0 +1,38 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+
9
+ import {
10
+ combineCodec,
11
+ getEnumDecoder,
12
+ getEnumEncoder,
13
+ type FixedSizeCodec,
14
+ type FixedSizeDecoder,
15
+ type FixedSizeEncoder,
16
+ } from "@solana/kit";
17
+
18
+ export enum OptionType {
19
+ Call,
20
+ Put,
21
+ }
22
+
23
+ export type OptionTypeArgs = OptionType;
24
+
25
+ export function getOptionTypeEncoder(): FixedSizeEncoder<OptionTypeArgs> {
26
+ return getEnumEncoder(OptionType);
27
+ }
28
+
29
+ export function getOptionTypeDecoder(): FixedSizeDecoder<OptionType> {
30
+ return getEnumDecoder(OptionType);
31
+ }
32
+
33
+ export function getOptionTypeCodec(): FixedSizeCodec<
34
+ OptionTypeArgs,
35
+ OptionType
36
+ > {
37
+ return combineCodec(getOptionTypeEncoder(), getOptionTypeDecoder());
38
+ }
@@ -0,0 +1,82 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+
9
+ import {
10
+ combineCodec,
11
+ getAddressDecoder,
12
+ getAddressEncoder,
13
+ getF64Decoder,
14
+ getF64Encoder,
15
+ getI64Decoder,
16
+ getI64Encoder,
17
+ getStructDecoder,
18
+ getStructEncoder,
19
+ type Address,
20
+ type FixedSizeCodec,
21
+ type FixedSizeDecoder,
22
+ type FixedSizeEncoder,
23
+ } from "@solana/kit";
24
+
25
+ export type OptionValidated = {
26
+ optionAccount: Address;
27
+ premium: number;
28
+ delta: number;
29
+ gamma: number;
30
+ theta: number;
31
+ vega: number;
32
+ rho: number;
33
+ underlyingPrice: number;
34
+ validatedAt: bigint;
35
+ };
36
+
37
+ export type OptionValidatedArgs = {
38
+ optionAccount: Address;
39
+ premium: number;
40
+ delta: number;
41
+ gamma: number;
42
+ theta: number;
43
+ vega: number;
44
+ rho: number;
45
+ underlyingPrice: number;
46
+ validatedAt: number | bigint;
47
+ };
48
+
49
+ export function getOptionValidatedEncoder(): FixedSizeEncoder<OptionValidatedArgs> {
50
+ return getStructEncoder([
51
+ ["optionAccount", getAddressEncoder()],
52
+ ["premium", getF64Encoder()],
53
+ ["delta", getF64Encoder()],
54
+ ["gamma", getF64Encoder()],
55
+ ["theta", getF64Encoder()],
56
+ ["vega", getF64Encoder()],
57
+ ["rho", getF64Encoder()],
58
+ ["underlyingPrice", getF64Encoder()],
59
+ ["validatedAt", getI64Encoder()],
60
+ ]);
61
+ }
62
+
63
+ export function getOptionValidatedDecoder(): FixedSizeDecoder<OptionValidated> {
64
+ return getStructDecoder([
65
+ ["optionAccount", getAddressDecoder()],
66
+ ["premium", getF64Decoder()],
67
+ ["delta", getF64Decoder()],
68
+ ["gamma", getF64Decoder()],
69
+ ["theta", getF64Decoder()],
70
+ ["vega", getF64Decoder()],
71
+ ["rho", getF64Decoder()],
72
+ ["underlyingPrice", getF64Decoder()],
73
+ ["validatedAt", getI64Decoder()],
74
+ ]);
75
+ }
76
+
77
+ export function getOptionValidatedCodec(): FixedSizeCodec<
78
+ OptionValidatedArgs,
79
+ OptionValidated
80
+ > {
81
+ return combineCodec(getOptionValidatedEncoder(), getOptionValidatedDecoder());
82
+ }
@@ -0,0 +1,74 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+
9
+ import {
10
+ combineCodec,
11
+ getAddressDecoder,
12
+ getAddressEncoder,
13
+ getStructDecoder,
14
+ getStructEncoder,
15
+ getU16Decoder,
16
+ getU16Encoder,
17
+ getU64Decoder,
18
+ getU64Encoder,
19
+ type Address,
20
+ type FixedSizeCodec,
21
+ type FixedSizeDecoder,
22
+ type FixedSizeEncoder,
23
+ } from "@solana/kit";
24
+
25
+ export type PoolLoanCreated = {
26
+ poolLoan: Address;
27
+ maker: Address;
28
+ vault: Address;
29
+ principal: bigint;
30
+ rateBps: number;
31
+ collateral: bigint;
32
+ startSlot: bigint;
33
+ };
34
+
35
+ export type PoolLoanCreatedArgs = {
36
+ poolLoan: Address;
37
+ maker: Address;
38
+ vault: Address;
39
+ principal: number | bigint;
40
+ rateBps: number;
41
+ collateral: number | bigint;
42
+ startSlot: number | bigint;
43
+ };
44
+
45
+ export function getPoolLoanCreatedEncoder(): FixedSizeEncoder<PoolLoanCreatedArgs> {
46
+ return getStructEncoder([
47
+ ["poolLoan", getAddressEncoder()],
48
+ ["maker", getAddressEncoder()],
49
+ ["vault", getAddressEncoder()],
50
+ ["principal", getU64Encoder()],
51
+ ["rateBps", getU16Encoder()],
52
+ ["collateral", getU64Encoder()],
53
+ ["startSlot", getU64Encoder()],
54
+ ]);
55
+ }
56
+
57
+ export function getPoolLoanCreatedDecoder(): FixedSizeDecoder<PoolLoanCreated> {
58
+ return getStructDecoder([
59
+ ["poolLoan", getAddressDecoder()],
60
+ ["maker", getAddressDecoder()],
61
+ ["vault", getAddressDecoder()],
62
+ ["principal", getU64Decoder()],
63
+ ["rateBps", getU16Decoder()],
64
+ ["collateral", getU64Decoder()],
65
+ ["startSlot", getU64Decoder()],
66
+ ]);
67
+ }
68
+
69
+ export function getPoolLoanCreatedCodec(): FixedSizeCodec<
70
+ PoolLoanCreatedArgs,
71
+ PoolLoanCreated
72
+ > {
73
+ return combineCodec(getPoolLoanCreatedEncoder(), getPoolLoanCreatedDecoder());
74
+ }
@@ -0,0 +1,74 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+
9
+ import {
10
+ combineCodec,
11
+ getAddressDecoder,
12
+ getAddressEncoder,
13
+ getI64Decoder,
14
+ getI64Encoder,
15
+ getStructDecoder,
16
+ getStructEncoder,
17
+ getU64Decoder,
18
+ getU64Encoder,
19
+ type Address,
20
+ type FixedSizeCodec,
21
+ type FixedSizeDecoder,
22
+ type FixedSizeEncoder,
23
+ } from "@solana/kit";
24
+
25
+ export type PoolLoanRepaid = {
26
+ poolLoan: Address;
27
+ maker: Address;
28
+ principal: bigint;
29
+ interest: bigint;
30
+ protocolFees: bigint;
31
+ totalRepaid: bigint;
32
+ repaidAt: bigint;
33
+ };
34
+
35
+ export type PoolLoanRepaidArgs = {
36
+ poolLoan: Address;
37
+ maker: Address;
38
+ principal: number | bigint;
39
+ interest: number | bigint;
40
+ protocolFees: number | bigint;
41
+ totalRepaid: number | bigint;
42
+ repaidAt: number | bigint;
43
+ };
44
+
45
+ export function getPoolLoanRepaidEncoder(): FixedSizeEncoder<PoolLoanRepaidArgs> {
46
+ return getStructEncoder([
47
+ ["poolLoan", getAddressEncoder()],
48
+ ["maker", getAddressEncoder()],
49
+ ["principal", getU64Encoder()],
50
+ ["interest", getU64Encoder()],
51
+ ["protocolFees", getU64Encoder()],
52
+ ["totalRepaid", getU64Encoder()],
53
+ ["repaidAt", getI64Encoder()],
54
+ ]);
55
+ }
56
+
57
+ export function getPoolLoanRepaidDecoder(): FixedSizeDecoder<PoolLoanRepaid> {
58
+ return getStructDecoder([
59
+ ["poolLoan", getAddressDecoder()],
60
+ ["maker", getAddressDecoder()],
61
+ ["principal", getU64Decoder()],
62
+ ["interest", getU64Decoder()],
63
+ ["protocolFees", getU64Decoder()],
64
+ ["totalRepaid", getU64Decoder()],
65
+ ["repaidAt", getI64Decoder()],
66
+ ]);
67
+ }
68
+
69
+ export function getPoolLoanRepaidCodec(): FixedSizeCodec<
70
+ PoolLoanRepaidArgs,
71
+ PoolLoanRepaid
72
+ > {
73
+ return combineCodec(getPoolLoanRepaidEncoder(), getPoolLoanRepaidDecoder());
74
+ }
@@ -0,0 +1,73 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+
9
+ import {
10
+ combineCodec,
11
+ getAddressDecoder,
12
+ getAddressEncoder,
13
+ getI64Decoder,
14
+ getI64Encoder,
15
+ getStructDecoder,
16
+ getStructEncoder,
17
+ getU64Decoder,
18
+ getU64Encoder,
19
+ type Address,
20
+ type FixedSizeCodec,
21
+ type FixedSizeDecoder,
22
+ type FixedSizeEncoder,
23
+ } from "@solana/kit";
24
+
25
+ export type PositionDeposited = {
26
+ position: Address;
27
+ lender: Address;
28
+ vault: Address;
29
+ amount: bigint;
30
+ totalBalance: bigint;
31
+ timestamp: bigint;
32
+ };
33
+
34
+ export type PositionDepositedArgs = {
35
+ position: Address;
36
+ lender: Address;
37
+ vault: Address;
38
+ amount: number | bigint;
39
+ totalBalance: number | bigint;
40
+ timestamp: number | bigint;
41
+ };
42
+
43
+ export function getPositionDepositedEncoder(): FixedSizeEncoder<PositionDepositedArgs> {
44
+ return getStructEncoder([
45
+ ["position", getAddressEncoder()],
46
+ ["lender", getAddressEncoder()],
47
+ ["vault", getAddressEncoder()],
48
+ ["amount", getU64Encoder()],
49
+ ["totalBalance", getU64Encoder()],
50
+ ["timestamp", getI64Encoder()],
51
+ ]);
52
+ }
53
+
54
+ export function getPositionDepositedDecoder(): FixedSizeDecoder<PositionDeposited> {
55
+ return getStructDecoder([
56
+ ["position", getAddressDecoder()],
57
+ ["lender", getAddressDecoder()],
58
+ ["vault", getAddressDecoder()],
59
+ ["amount", getU64Decoder()],
60
+ ["totalBalance", getU64Decoder()],
61
+ ["timestamp", getI64Decoder()],
62
+ ]);
63
+ }
64
+
65
+ export function getPositionDepositedCodec(): FixedSizeCodec<
66
+ PositionDepositedArgs,
67
+ PositionDeposited
68
+ > {
69
+ return combineCodec(
70
+ getPositionDepositedEncoder(),
71
+ getPositionDepositedDecoder(),
72
+ );
73
+ }
@@ -0,0 +1,81 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+
9
+ import {
10
+ combineCodec,
11
+ getAddressDecoder,
12
+ getAddressEncoder,
13
+ getI64Decoder,
14
+ getI64Encoder,
15
+ getStructDecoder,
16
+ getStructEncoder,
17
+ getU64Decoder,
18
+ getU64Encoder,
19
+ type Address,
20
+ type FixedSizeCodec,
21
+ type FixedSizeDecoder,
22
+ type FixedSizeEncoder,
23
+ } from "@solana/kit";
24
+
25
+ export type PositionWithdrawn = {
26
+ position: Address;
27
+ lender: Address;
28
+ vault: Address;
29
+ amount: bigint;
30
+ principalPortion: bigint;
31
+ interestPortion: bigint;
32
+ remainingBalance: bigint;
33
+ timestamp: bigint;
34
+ };
35
+
36
+ export type PositionWithdrawnArgs = {
37
+ position: Address;
38
+ lender: Address;
39
+ vault: Address;
40
+ amount: number | bigint;
41
+ principalPortion: number | bigint;
42
+ interestPortion: number | bigint;
43
+ remainingBalance: number | bigint;
44
+ timestamp: number | bigint;
45
+ };
46
+
47
+ export function getPositionWithdrawnEncoder(): FixedSizeEncoder<PositionWithdrawnArgs> {
48
+ return getStructEncoder([
49
+ ["position", getAddressEncoder()],
50
+ ["lender", getAddressEncoder()],
51
+ ["vault", getAddressEncoder()],
52
+ ["amount", getU64Encoder()],
53
+ ["principalPortion", getU64Encoder()],
54
+ ["interestPortion", getU64Encoder()],
55
+ ["remainingBalance", getU64Encoder()],
56
+ ["timestamp", getI64Encoder()],
57
+ ]);
58
+ }
59
+
60
+ export function getPositionWithdrawnDecoder(): FixedSizeDecoder<PositionWithdrawn> {
61
+ return getStructDecoder([
62
+ ["position", getAddressDecoder()],
63
+ ["lender", getAddressDecoder()],
64
+ ["vault", getAddressDecoder()],
65
+ ["amount", getU64Decoder()],
66
+ ["principalPortion", getU64Decoder()],
67
+ ["interestPortion", getU64Decoder()],
68
+ ["remainingBalance", getU64Decoder()],
69
+ ["timestamp", getI64Decoder()],
70
+ ]);
71
+ }
72
+
73
+ export function getPositionWithdrawnCodec(): FixedSizeCodec<
74
+ PositionWithdrawnArgs,
75
+ PositionWithdrawn
76
+ > {
77
+ return combineCodec(
78
+ getPositionWithdrawnEncoder(),
79
+ getPositionWithdrawnDecoder(),
80
+ );
81
+ }
@@ -0,0 +1,69 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+
9
+ import {
10
+ combineCodec,
11
+ getAddressDecoder,
12
+ getAddressEncoder,
13
+ getI64Decoder,
14
+ getI64Encoder,
15
+ getStructDecoder,
16
+ getStructEncoder,
17
+ getU16Decoder,
18
+ getU16Encoder,
19
+ type Address,
20
+ type FixedSizeCodec,
21
+ type FixedSizeDecoder,
22
+ type FixedSizeEncoder,
23
+ } from "@solana/kit";
24
+
25
+ export type ProtocolFeeUpdated = {
26
+ vault: Address;
27
+ oldFeeBps: number;
28
+ newFeeBps: number;
29
+ updatedBy: Address;
30
+ updatedAt: bigint;
31
+ };
32
+
33
+ export type ProtocolFeeUpdatedArgs = {
34
+ vault: Address;
35
+ oldFeeBps: number;
36
+ newFeeBps: number;
37
+ updatedBy: Address;
38
+ updatedAt: number | bigint;
39
+ };
40
+
41
+ export function getProtocolFeeUpdatedEncoder(): FixedSizeEncoder<ProtocolFeeUpdatedArgs> {
42
+ return getStructEncoder([
43
+ ["vault", getAddressEncoder()],
44
+ ["oldFeeBps", getU16Encoder()],
45
+ ["newFeeBps", getU16Encoder()],
46
+ ["updatedBy", getAddressEncoder()],
47
+ ["updatedAt", getI64Encoder()],
48
+ ]);
49
+ }
50
+
51
+ export function getProtocolFeeUpdatedDecoder(): FixedSizeDecoder<ProtocolFeeUpdated> {
52
+ return getStructDecoder([
53
+ ["vault", getAddressDecoder()],
54
+ ["oldFeeBps", getU16Decoder()],
55
+ ["newFeeBps", getU16Decoder()],
56
+ ["updatedBy", getAddressDecoder()],
57
+ ["updatedAt", getI64Decoder()],
58
+ ]);
59
+ }
60
+
61
+ export function getProtocolFeeUpdatedCodec(): FixedSizeCodec<
62
+ ProtocolFeeUpdatedArgs,
63
+ ProtocolFeeUpdated
64
+ > {
65
+ return combineCodec(
66
+ getProtocolFeeUpdatedEncoder(),
67
+ getProtocolFeeUpdatedDecoder(),
68
+ );
69
+ }
@@ -0,0 +1,60 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+
9
+ import {
10
+ combineCodec,
11
+ getAddressDecoder,
12
+ getAddressEncoder,
13
+ getI64Decoder,
14
+ getI64Encoder,
15
+ getStructDecoder,
16
+ getStructEncoder,
17
+ type Address,
18
+ type FixedSizeCodec,
19
+ type FixedSizeDecoder,
20
+ type FixedSizeEncoder,
21
+ } from "@solana/kit";
22
+
23
+ export type VaultCreated = {
24
+ vault: Address;
25
+ mint: Address;
26
+ keeper: Address;
27
+ createdAt: bigint;
28
+ };
29
+
30
+ export type VaultCreatedArgs = {
31
+ vault: Address;
32
+ mint: Address;
33
+ keeper: Address;
34
+ createdAt: number | bigint;
35
+ };
36
+
37
+ export function getVaultCreatedEncoder(): FixedSizeEncoder<VaultCreatedArgs> {
38
+ return getStructEncoder([
39
+ ["vault", getAddressEncoder()],
40
+ ["mint", getAddressEncoder()],
41
+ ["keeper", getAddressEncoder()],
42
+ ["createdAt", getI64Encoder()],
43
+ ]);
44
+ }
45
+
46
+ export function getVaultCreatedDecoder(): FixedSizeDecoder<VaultCreated> {
47
+ return getStructDecoder([
48
+ ["vault", getAddressDecoder()],
49
+ ["mint", getAddressDecoder()],
50
+ ["keeper", getAddressDecoder()],
51
+ ["createdAt", getI64Decoder()],
52
+ ]);
53
+ }
54
+
55
+ export function getVaultCreatedCodec(): FixedSizeCodec<
56
+ VaultCreatedArgs,
57
+ VaultCreated
58
+ > {
59
+ return combineCodec(getVaultCreatedEncoder(), getVaultCreatedDecoder());
60
+ }