@meteora-ag/cp-amm-sdk 1.2.6 → 1.2.8

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.
package/dist/index.js CHANGED
@@ -49,7 +49,7 @@ var cp_amm_default = {
49
49
  address: "cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG",
50
50
  metadata: {
51
51
  name: "cp_amm",
52
- version: "0.1.5",
52
+ version: "0.1.6",
53
53
  spec: "0.1.0",
54
54
  description: "Created with Anchor"
55
55
  },
@@ -720,19 +720,19 @@ var cp_amm_default = {
720
720
  }
721
721
  },
722
722
  {
723
- name: "claim_fee_operator",
723
+ name: "operator",
724
724
  docs: [
725
725
  "Claim fee operator"
726
726
  ]
727
727
  },
728
728
  {
729
- name: "operator",
729
+ name: "whitelisted_address",
730
730
  docs: [
731
731
  "Operator"
732
732
  ],
733
733
  signer: true,
734
734
  relations: [
735
- "claim_fee_operator"
735
+ "operator"
736
736
  ]
737
737
  },
738
738
  {
@@ -894,29 +894,35 @@ var cp_amm_default = {
894
894
  ]
895
895
  },
896
896
  {
897
- name: "close_claim_fee_operator",
897
+ name: "close_config",
898
898
  discriminator: [
899
- 38,
900
- 134,
901
- 82,
902
- 216,
899
+ 145,
900
+ 9,
901
+ 72,
902
+ 157,
903
903
  95,
904
- 124,
905
- 17,
906
- 99
904
+ 125,
905
+ 61,
906
+ 85
907
907
  ],
908
908
  accounts: [
909
909
  {
910
- name: "claim_fee_operator",
910
+ name: "config",
911
911
  writable: true
912
912
  },
913
913
  {
914
- name: "rent_receiver",
915
- writable: true
914
+ name: "operator"
916
915
  },
917
916
  {
918
- name: "admin",
919
- signer: true
917
+ name: "whitelisted_address",
918
+ signer: true,
919
+ relations: [
920
+ "operator"
921
+ ]
922
+ },
923
+ {
924
+ name: "rent_receiver",
925
+ writable: true
920
926
  },
921
927
  {
922
928
  name: "event_authority",
@@ -954,25 +960,24 @@ var cp_amm_default = {
954
960
  args: []
955
961
  },
956
962
  {
957
- name: "close_config",
963
+ name: "close_operator_account",
958
964
  discriminator: [
959
- 145,
965
+ 171,
960
966
  9,
961
- 72,
962
- 157,
963
- 95,
964
- 125,
965
- 61,
966
- 85
967
+ 213,
968
+ 74,
969
+ 120,
970
+ 23,
971
+ 3,
972
+ 29
967
973
  ],
968
974
  accounts: [
969
975
  {
970
- name: "config",
976
+ name: "operator",
971
977
  writable: true
972
978
  },
973
979
  {
974
980
  name: "admin",
975
- writable: true,
976
981
  signer: true
977
982
  },
978
983
  {
@@ -1127,9 +1132,14 @@ var cp_amm_default = {
1127
1132
  writable: true
1128
1133
  },
1129
1134
  {
1130
- name: "admin",
1131
- writable: true,
1132
- signer: true
1135
+ name: "operator"
1136
+ },
1137
+ {
1138
+ name: "whitelisted_address",
1139
+ signer: true,
1140
+ relations: [
1141
+ "operator"
1142
+ ]
1133
1143
  },
1134
1144
  {
1135
1145
  name: "rent_receiver",
@@ -1171,20 +1181,23 @@ var cp_amm_default = {
1171
1181
  args: []
1172
1182
  },
1173
1183
  {
1174
- name: "create_claim_fee_operator",
1184
+ name: "create_config",
1185
+ docs: [
1186
+ "OPERATOR FUNCTIONS /////"
1187
+ ],
1175
1188
  discriminator: [
1176
- 169,
1177
- 62,
1189
+ 201,
1178
1190
  207,
1179
- 107,
1180
- 58,
1181
- 187,
1182
- 162,
1183
- 109
1191
+ 243,
1192
+ 114,
1193
+ 75,
1194
+ 111,
1195
+ 47,
1196
+ 189
1184
1197
  ],
1185
1198
  accounts: [
1186
1199
  {
1187
- name: "claim_fee_operator",
1200
+ name: "config",
1188
1201
  writable: true,
1189
1202
  pda: {
1190
1203
  seeds: [
@@ -1192,21 +1205,16 @@ var cp_amm_default = {
1192
1205
  kind: "const",
1193
1206
  value: [
1194
1207
  99,
1195
- 102,
1196
- 95,
1197
- 111,
1198
- 112,
1199
- 101,
1200
- 114,
1201
- 97,
1202
- 116,
1203
1208
  111,
1204
- 114
1209
+ 110,
1210
+ 102,
1211
+ 105,
1212
+ 103
1205
1213
  ]
1206
1214
  },
1207
1215
  {
1208
- kind: "account",
1209
- path: "operator"
1216
+ kind: "arg",
1217
+ path: "index"
1210
1218
  }
1211
1219
  ]
1212
1220
  }
@@ -1215,7 +1223,14 @@ var cp_amm_default = {
1215
1223
  name: "operator"
1216
1224
  },
1217
1225
  {
1218
- name: "admin",
1226
+ name: "whitelisted_address",
1227
+ signer: true,
1228
+ relations: [
1229
+ "operator"
1230
+ ]
1231
+ },
1232
+ {
1233
+ name: "payer",
1219
1234
  writable: true,
1220
1235
  signer: true
1221
1236
  },
@@ -1256,22 +1271,32 @@ var cp_amm_default = {
1256
1271
  name: "program"
1257
1272
  }
1258
1273
  ],
1259
- args: []
1274
+ args: [
1275
+ {
1276
+ name: "index",
1277
+ type: "u64"
1278
+ },
1279
+ {
1280
+ name: "config_parameters",
1281
+ type: {
1282
+ defined: {
1283
+ name: "StaticConfigParameters"
1284
+ }
1285
+ }
1286
+ }
1287
+ ]
1260
1288
  },
1261
1289
  {
1262
- name: "create_config",
1263
- docs: [
1264
- "ADMIN FUNCTIONS /////"
1265
- ],
1290
+ name: "create_dynamic_config",
1266
1291
  discriminator: [
1267
- 201,
1268
- 207,
1269
- 243,
1270
- 114,
1271
- 75,
1272
- 111,
1273
- 47,
1274
- 189
1292
+ 81,
1293
+ 251,
1294
+ 122,
1295
+ 78,
1296
+ 66,
1297
+ 57,
1298
+ 208,
1299
+ 82
1275
1300
  ],
1276
1301
  accounts: [
1277
1302
  {
@@ -1298,7 +1323,17 @@ var cp_amm_default = {
1298
1323
  }
1299
1324
  },
1300
1325
  {
1301
- name: "admin",
1326
+ name: "operator"
1327
+ },
1328
+ {
1329
+ name: "whitelisted_address",
1330
+ signer: true,
1331
+ relations: [
1332
+ "operator"
1333
+ ]
1334
+ },
1335
+ {
1336
+ name: "payer",
1302
1337
  writable: true,
1303
1338
  signer: true
1304
1339
  },
@@ -1348,50 +1383,62 @@ var cp_amm_default = {
1348
1383
  name: "config_parameters",
1349
1384
  type: {
1350
1385
  defined: {
1351
- name: "StaticConfigParameters"
1386
+ name: "DynamicConfigParameters"
1352
1387
  }
1353
1388
  }
1354
1389
  }
1355
1390
  ]
1356
1391
  },
1357
1392
  {
1358
- name: "create_dynamic_config",
1393
+ name: "create_operator_account",
1394
+ docs: [
1395
+ "ADMIN FUNCTIONS /////"
1396
+ ],
1359
1397
  discriminator: [
1360
- 81,
1361
- 251,
1362
- 122,
1363
- 78,
1364
- 66,
1365
- 57,
1366
- 208,
1367
- 82
1398
+ 221,
1399
+ 64,
1400
+ 246,
1401
+ 149,
1402
+ 240,
1403
+ 153,
1404
+ 229,
1405
+ 163
1368
1406
  ],
1369
1407
  accounts: [
1370
1408
  {
1371
- name: "config",
1409
+ name: "operator",
1372
1410
  writable: true,
1373
1411
  pda: {
1374
1412
  seeds: [
1375
1413
  {
1376
1414
  kind: "const",
1377
1415
  value: [
1378
- 99,
1379
1416
  111,
1380
- 110,
1381
- 102,
1382
- 105,
1383
- 103
1417
+ 112,
1418
+ 101,
1419
+ 114,
1420
+ 97,
1421
+ 116,
1422
+ 111,
1423
+ 114
1384
1424
  ]
1385
1425
  },
1386
1426
  {
1387
- kind: "arg",
1388
- path: "index"
1427
+ kind: "account",
1428
+ path: "whitelisted_address"
1389
1429
  }
1390
1430
  ]
1391
1431
  }
1392
1432
  },
1433
+ {
1434
+ name: "whitelisted_address"
1435
+ },
1393
1436
  {
1394
1437
  name: "admin",
1438
+ signer: true
1439
+ },
1440
+ {
1441
+ name: "payer",
1395
1442
  writable: true,
1396
1443
  signer: true
1397
1444
  },
@@ -1434,16 +1481,8 @@ var cp_amm_default = {
1434
1481
  ],
1435
1482
  args: [
1436
1483
  {
1437
- name: "index",
1438
- type: "u64"
1439
- },
1440
- {
1441
- name: "config_parameters",
1442
- type: {
1443
- defined: {
1444
- name: "DynamicConfigParameters"
1445
- }
1446
- }
1484
+ name: "permission",
1485
+ type: "u128"
1447
1486
  }
1448
1487
  ]
1449
1488
  },
@@ -1643,7 +1682,17 @@ var cp_amm_default = {
1643
1682
  name: "token_mint"
1644
1683
  },
1645
1684
  {
1646
- name: "admin",
1685
+ name: "operator"
1686
+ },
1687
+ {
1688
+ name: "whitelisted_address",
1689
+ signer: true,
1690
+ relations: [
1691
+ "operator"
1692
+ ]
1693
+ },
1694
+ {
1695
+ name: "payer",
1647
1696
  writable: true,
1648
1697
  signer: true
1649
1698
  },
@@ -1686,6 +1735,40 @@ var cp_amm_default = {
1686
1735
  ],
1687
1736
  args: []
1688
1737
  },
1738
+ {
1739
+ name: "dummy_ix",
1740
+ discriminator: [
1741
+ 234,
1742
+ 95,
1743
+ 176,
1744
+ 185,
1745
+ 7,
1746
+ 42,
1747
+ 35,
1748
+ 159
1749
+ ],
1750
+ accounts: [
1751
+ {
1752
+ name: "pod_aligned_fee_time_scheduler"
1753
+ },
1754
+ {
1755
+ name: "pod_aligned_fee_rate_limiter"
1756
+ },
1757
+ {
1758
+ name: "pod_aligned_fee_market_cap_scheduler"
1759
+ }
1760
+ ],
1761
+ args: [
1762
+ {
1763
+ name: "_ixs",
1764
+ type: {
1765
+ defined: {
1766
+ name: "DummyParams"
1767
+ }
1768
+ }
1769
+ }
1770
+ ]
1771
+ },
1689
1772
  {
1690
1773
  name: "fund_reward",
1691
1774
  discriminator: [
@@ -3247,8 +3330,14 @@ var cp_amm_default = {
3247
3330
  writable: true
3248
3331
  },
3249
3332
  {
3250
- name: "admin",
3251
- signer: true
3333
+ name: "operator"
3334
+ },
3335
+ {
3336
+ name: "whitelisted_address",
3337
+ signer: true,
3338
+ relations: [
3339
+ "operator"
3340
+ ]
3252
3341
  },
3253
3342
  {
3254
3343
  name: "event_authority",
@@ -3628,7 +3717,7 @@ var cp_amm_default = {
3628
3717
  ],
3629
3718
  args: [
3630
3719
  {
3631
- name: "params",
3720
+ name: "_params",
3632
3721
  type: {
3633
3722
  defined: {
3634
3723
  name: "SwapParameters"
@@ -3769,7 +3858,7 @@ var cp_amm_default = {
3769
3858
  ],
3770
3859
  args: [
3771
3860
  {
3772
- name: "params",
3861
+ name: "_params",
3773
3862
  type: {
3774
3863
  defined: {
3775
3864
  name: "SwapParameters2"
@@ -3779,16 +3868,16 @@ var cp_amm_default = {
3779
3868
  ]
3780
3869
  },
3781
3870
  {
3782
- name: "update_reward_duration",
3871
+ name: "update_pool_fees",
3783
3872
  discriminator: [
3784
- 138,
3785
- 174,
3786
- 196,
3787
- 169,
3788
- 213,
3789
- 235,
3790
- 254,
3791
- 107
3873
+ 118,
3874
+ 217,
3875
+ 203,
3876
+ 179,
3877
+ 60,
3878
+ 8,
3879
+ 70,
3880
+ 89
3792
3881
  ],
3793
3882
  accounts: [
3794
3883
  {
@@ -3796,13 +3885,84 @@ var cp_amm_default = {
3796
3885
  writable: true
3797
3886
  },
3798
3887
  {
3799
- name: "signer",
3800
- signer: true
3888
+ name: "operator"
3801
3889
  },
3802
3890
  {
3803
- name: "event_authority",
3804
- pda: {
3805
- seeds: [
3891
+ name: "whitelisted_address",
3892
+ signer: true,
3893
+ relations: [
3894
+ "operator"
3895
+ ]
3896
+ },
3897
+ {
3898
+ name: "event_authority",
3899
+ pda: {
3900
+ seeds: [
3901
+ {
3902
+ kind: "const",
3903
+ value: [
3904
+ 95,
3905
+ 95,
3906
+ 101,
3907
+ 118,
3908
+ 101,
3909
+ 110,
3910
+ 116,
3911
+ 95,
3912
+ 97,
3913
+ 117,
3914
+ 116,
3915
+ 104,
3916
+ 111,
3917
+ 114,
3918
+ 105,
3919
+ 116,
3920
+ 121
3921
+ ]
3922
+ }
3923
+ ]
3924
+ }
3925
+ },
3926
+ {
3927
+ name: "program"
3928
+ }
3929
+ ],
3930
+ args: [
3931
+ {
3932
+ name: "params",
3933
+ type: {
3934
+ defined: {
3935
+ name: "UpdatePoolFeesParameters"
3936
+ }
3937
+ }
3938
+ }
3939
+ ]
3940
+ },
3941
+ {
3942
+ name: "update_reward_duration",
3943
+ discriminator: [
3944
+ 138,
3945
+ 174,
3946
+ 196,
3947
+ 169,
3948
+ 213,
3949
+ 235,
3950
+ 254,
3951
+ 107
3952
+ ],
3953
+ accounts: [
3954
+ {
3955
+ name: "pool",
3956
+ writable: true
3957
+ },
3958
+ {
3959
+ name: "signer",
3960
+ signer: true
3961
+ },
3962
+ {
3963
+ name: "event_authority",
3964
+ pda: {
3965
+ seeds: [
3806
3966
  {
3807
3967
  kind: "const",
3808
3968
  value: [
@@ -3989,19 +4149,6 @@ var cp_amm_default = {
3989
4149
  }
3990
4150
  ],
3991
4151
  accounts: [
3992
- {
3993
- name: "ClaimFeeOperator",
3994
- discriminator: [
3995
- 166,
3996
- 48,
3997
- 134,
3998
- 86,
3999
- 34,
4000
- 200,
4001
- 188,
4002
- 150
4003
- ]
4004
- },
4005
4152
  {
4006
4153
  name: "Config",
4007
4154
  discriminator: [
@@ -4015,6 +4162,58 @@ var cp_amm_default = {
4015
4162
  130
4016
4163
  ]
4017
4164
  },
4165
+ {
4166
+ name: "Operator",
4167
+ discriminator: [
4168
+ 219,
4169
+ 31,
4170
+ 188,
4171
+ 145,
4172
+ 69,
4173
+ 139,
4174
+ 204,
4175
+ 117
4176
+ ]
4177
+ },
4178
+ {
4179
+ name: "PodAlignedFeeMarketCapScheduler",
4180
+ discriminator: [
4181
+ 251,
4182
+ 130,
4183
+ 208,
4184
+ 253,
4185
+ 245,
4186
+ 27,
4187
+ 145,
4188
+ 203
4189
+ ]
4190
+ },
4191
+ {
4192
+ name: "PodAlignedFeeRateLimiter",
4193
+ discriminator: [
4194
+ 160,
4195
+ 219,
4196
+ 8,
4197
+ 251,
4198
+ 179,
4199
+ 7,
4200
+ 16,
4201
+ 117
4202
+ ]
4203
+ },
4204
+ {
4205
+ name: "PodAlignedFeeTimeScheduler",
4206
+ discriminator: [
4207
+ 239,
4208
+ 132,
4209
+ 138,
4210
+ 213,
4211
+ 67,
4212
+ 154,
4213
+ 130,
4214
+ 70
4215
+ ]
4216
+ },
4018
4217
  {
4019
4218
  name: "Pool",
4020
4219
  discriminator: [
@@ -4069,19 +4268,6 @@ var cp_amm_default = {
4069
4268
  }
4070
4269
  ],
4071
4270
  events: [
4072
- {
4073
- name: "EvtAddLiquidity",
4074
- discriminator: [
4075
- 175,
4076
- 242,
4077
- 8,
4078
- 157,
4079
- 30,
4080
- 247,
4081
- 185,
4082
- 169
4083
- ]
4084
- },
4085
4271
  {
4086
4272
  name: "EvtClaimPartnerFee",
4087
4273
  discriminator: [
@@ -4134,19 +4320,6 @@ var cp_amm_default = {
4134
4320
  231
4135
4321
  ]
4136
4322
  },
4137
- {
4138
- name: "EvtCloseClaimFeeOperator",
4139
- discriminator: [
4140
- 111,
4141
- 39,
4142
- 37,
4143
- 55,
4144
- 110,
4145
- 216,
4146
- 194,
4147
- 23
4148
- ]
4149
- },
4150
4323
  {
4151
4324
  name: "EvtCloseConfig",
4152
4325
  discriminator: [
@@ -4173,19 +4346,6 @@ var cp_amm_default = {
4173
4346
  178
4174
4347
  ]
4175
4348
  },
4176
- {
4177
- name: "EvtCreateClaimFeeOperator",
4178
- discriminator: [
4179
- 21,
4180
- 6,
4181
- 153,
4182
- 120,
4183
- 68,
4184
- 116,
4185
- 28,
4186
- 177
4187
- ]
4188
- },
4189
4349
  {
4190
4350
  name: "EvtCreateConfig",
4191
4351
  discriminator: [
@@ -4316,19 +4476,6 @@ var cp_amm_default = {
4316
4476
  11
4317
4477
  ]
4318
4478
  },
4319
- {
4320
- name: "EvtRemoveLiquidity",
4321
- discriminator: [
4322
- 87,
4323
- 46,
4324
- 88,
4325
- 98,
4326
- 175,
4327
- 96,
4328
- 34,
4329
- 91
4330
- ]
4331
- },
4332
4479
  {
4333
4480
  name: "EvtSetPoolStatus",
4334
4481
  discriminator: [
@@ -4355,19 +4502,6 @@ var cp_amm_default = {
4355
4502
  103
4356
4503
  ]
4357
4504
  },
4358
- {
4359
- name: "EvtSwap",
4360
- discriminator: [
4361
- 27,
4362
- 60,
4363
- 21,
4364
- 213,
4365
- 138,
4366
- 170,
4367
- 187,
4368
- 147
4369
- ]
4370
- },
4371
4505
  {
4372
4506
  name: "EvtSwap2",
4373
4507
  discriminator: [
@@ -4381,6 +4515,19 @@ var cp_amm_default = {
4381
4515
  153
4382
4516
  ]
4383
4517
  },
4518
+ {
4519
+ name: "EvtUpdatePoolFees",
4520
+ discriminator: [
4521
+ 76,
4522
+ 165,
4523
+ 246,
4524
+ 102,
4525
+ 102,
4526
+ 217,
4527
+ 156,
4528
+ 44
4529
+ ]
4530
+ },
4384
4531
  {
4385
4532
  name: "EvtUpdateRewardDuration",
4386
4533
  discriminator: [
@@ -4674,7 +4821,7 @@ var cp_amm_default = {
4674
4821
  },
4675
4822
  {
4676
4823
  code: 6050,
4677
- name: "InvalidFeeScheduler",
4824
+ name: "InvalidFeeTimeScheduler",
4678
4825
  msg: "Invalid fee scheduler"
4679
4826
  },
4680
4827
  {
@@ -4686,6 +4833,41 @@ var cp_amm_default = {
4686
4833
  code: 6052,
4687
4834
  name: "InvalidPoolVersion",
4688
4835
  msg: "Invalid pool version"
4836
+ },
4837
+ {
4838
+ code: 6053,
4839
+ name: "InvalidAuthority",
4840
+ msg: "Invalid authority to do that action"
4841
+ },
4842
+ {
4843
+ code: 6054,
4844
+ name: "InvalidPermission",
4845
+ msg: "Invalid permission"
4846
+ },
4847
+ {
4848
+ code: 6055,
4849
+ name: "InvalidFeeMarketCapScheduler",
4850
+ msg: "Invalid fee market cap scheduler"
4851
+ },
4852
+ {
4853
+ code: 6056,
4854
+ name: "CannotUpdateBaseFee",
4855
+ msg: "Cannot update base fee"
4856
+ },
4857
+ {
4858
+ code: 6057,
4859
+ name: "InvalidDynamicFeeParameters",
4860
+ msg: "Invalid dynamic fee parameters"
4861
+ },
4862
+ {
4863
+ code: 6058,
4864
+ name: "InvalidUpdatePoolFeesParameters",
4865
+ msg: "Invalid update pool fees parameters"
4866
+ },
4867
+ {
4868
+ code: 6059,
4869
+ name: "MissingOperatorAccount",
4870
+ msg: "Missing operator account"
4689
4871
  }
4690
4872
  ],
4691
4873
  types: [
@@ -4719,7 +4901,7 @@ var cp_amm_default = {
4719
4901
  }
4720
4902
  },
4721
4903
  {
4722
- name: "BaseFeeConfig",
4904
+ name: "BaseFeeInfo",
4723
4905
  serialization: "bytemuck",
4724
4906
  repr: {
4725
4907
  kind: "c"
@@ -4728,38 +4910,13 @@ var cp_amm_default = {
4728
4910
  kind: "struct",
4729
4911
  fields: [
4730
4912
  {
4731
- name: "cliff_fee_numerator",
4732
- type: "u64"
4733
- },
4734
- {
4735
- name: "base_fee_mode",
4736
- type: "u8"
4737
- },
4738
- {
4739
- name: "padding",
4740
- type: {
4741
- array: [
4742
- "u8",
4743
- 5
4744
- ]
4745
- }
4746
- },
4747
- {
4748
- name: "first_factor",
4749
- type: "u16"
4750
- },
4751
- {
4752
- name: "second_factor",
4913
+ name: "data",
4753
4914
  type: {
4754
4915
  array: [
4755
4916
  "u8",
4756
- 8
4917
+ 32
4757
4918
  ]
4758
4919
  }
4759
- },
4760
- {
4761
- name: "third_factor",
4762
- type: "u64"
4763
4920
  }
4764
4921
  ]
4765
4922
  }
@@ -4770,29 +4927,13 @@ var cp_amm_default = {
4770
4927
  kind: "struct",
4771
4928
  fields: [
4772
4929
  {
4773
- name: "cliff_fee_numerator",
4774
- type: "u64"
4775
- },
4776
- {
4777
- name: "first_factor",
4778
- type: "u16"
4779
- },
4780
- {
4781
- name: "second_factor",
4930
+ name: "data",
4782
4931
  type: {
4783
4932
  array: [
4784
4933
  "u8",
4785
- 8
4934
+ 30
4786
4935
  ]
4787
4936
  }
4788
- },
4789
- {
4790
- name: "third_factor",
4791
- type: "u64"
4792
- },
4793
- {
4794
- name: "base_fee_mode",
4795
- type: "u8"
4796
4937
  }
4797
4938
  ]
4798
4939
  }
@@ -4803,6 +4944,26 @@ var cp_amm_default = {
4803
4944
  repr: {
4804
4945
  kind: "c"
4805
4946
  },
4947
+ type: {
4948
+ kind: "struct",
4949
+ fields: [
4950
+ {
4951
+ name: "base_fee_info",
4952
+ type: {
4953
+ defined: {
4954
+ name: "BaseFeeInfo"
4955
+ }
4956
+ }
4957
+ },
4958
+ {
4959
+ name: "padding_1",
4960
+ type: "u64"
4961
+ }
4962
+ ]
4963
+ }
4964
+ },
4965
+ {
4966
+ name: "BorshFeeMarketCapScheduler",
4806
4967
  type: {
4807
4968
  kind: "struct",
4808
4969
  fields: [
@@ -4811,70 +4972,122 @@ var cp_amm_default = {
4811
4972
  type: "u64"
4812
4973
  },
4813
4974
  {
4814
- name: "base_fee_mode",
4815
- type: "u8"
4975
+ name: "number_of_period",
4976
+ type: "u16"
4816
4977
  },
4817
4978
  {
4818
- name: "padding_0",
4819
- type: {
4820
- array: [
4821
- "u8",
4822
- 5
4823
- ]
4824
- }
4979
+ name: "sqrt_price_step_bps",
4980
+ type: "u32"
4825
4981
  },
4826
4982
  {
4827
- name: "first_factor",
4828
- type: "u16"
4983
+ name: "scheduler_expiration_duration",
4984
+ type: "u32"
4985
+ },
4986
+ {
4987
+ name: "reduction_factor",
4988
+ type: "u64"
4989
+ },
4990
+ {
4991
+ name: "base_fee_mode",
4992
+ type: "u8"
4829
4993
  },
4830
4994
  {
4831
- name: "second_factor",
4995
+ name: "padding",
4832
4996
  type: {
4833
4997
  array: [
4834
4998
  "u8",
4835
- 8
4999
+ 3
4836
5000
  ]
4837
5001
  }
4838
- },
5002
+ }
5003
+ ]
5004
+ }
5005
+ },
5006
+ {
5007
+ name: "BorshFeeRateLimiter",
5008
+ docs: [
5009
+ "we denote reference_amount = x0, cliff_fee_numerator = c, fee_increment = i",
5010
+ "if input_amount <= x0, then fee = input_amount * c",
5011
+ "",
5012
+ "if input_amount > x0, then input_amount = x0 + (a * x0 + b)",
5013
+ "if a < max_index",
5014
+ "then fee = x0 * c + x0 * (c + i) + .... + x0 * (c + i*a) + b * (c + i * (a+1))",
5015
+ "then fee = x0 * (c + c*a + i*a*(a+1)/2) + b * (c + i * (a+1))",
5016
+ "",
5017
+ "if a >= max_index",
5018
+ "if a = max_index + d, input_amount = x0 + max_index * x0 + (d * x0 + b)",
5019
+ "then fee = x0 * (c + c*max_index + i*max_index*(max_index+1)/2) + (d * x0 + b) * MAX_FEE"
5020
+ ],
5021
+ type: {
5022
+ kind: "struct",
5023
+ fields: [
4839
5024
  {
4840
- name: "third_factor",
5025
+ name: "cliff_fee_numerator",
4841
5026
  type: "u64"
4842
5027
  },
4843
5028
  {
4844
- name: "padding_1",
5029
+ name: "fee_increment_bps",
5030
+ type: "u16"
5031
+ },
5032
+ {
5033
+ name: "max_limiter_duration",
5034
+ type: "u32"
5035
+ },
5036
+ {
5037
+ name: "max_fee_bps",
5038
+ type: "u32"
5039
+ },
5040
+ {
5041
+ name: "reference_amount",
4845
5042
  type: "u64"
5043
+ },
5044
+ {
5045
+ name: "base_fee_mode",
5046
+ type: "u8"
5047
+ },
5048
+ {
5049
+ name: "padding",
5050
+ type: {
5051
+ array: [
5052
+ "u8",
5053
+ 3
5054
+ ]
5055
+ }
4846
5056
  }
4847
5057
  ]
4848
5058
  }
4849
5059
  },
4850
5060
  {
4851
- name: "ClaimFeeOperator",
4852
- docs: [
4853
- "Parameter that set by the protocol"
4854
- ],
4855
- serialization: "bytemuck",
4856
- repr: {
4857
- kind: "c"
4858
- },
5061
+ name: "BorshFeeTimeScheduler",
4859
5062
  type: {
4860
5063
  kind: "struct",
4861
5064
  fields: [
4862
5065
  {
4863
- name: "operator",
4864
- docs: [
4865
- "operator"
4866
- ],
4867
- type: "pubkey"
5066
+ name: "cliff_fee_numerator",
5067
+ type: "u64"
4868
5068
  },
4869
5069
  {
4870
- name: "_padding",
4871
- docs: [
4872
- "Reserve"
4873
- ],
5070
+ name: "number_of_period",
5071
+ type: "u16"
5072
+ },
5073
+ {
5074
+ name: "period_frequency",
5075
+ type: "u64"
5076
+ },
5077
+ {
5078
+ name: "reduction_factor",
5079
+ type: "u64"
5080
+ },
5081
+ {
5082
+ name: "base_fee_mode",
5083
+ type: "u8"
5084
+ },
5085
+ {
5086
+ name: "padding",
4874
5087
  type: {
4875
5088
  array: [
4876
5089
  "u8",
4877
- 128
5090
+ 3
4878
5091
  ]
4879
5092
  }
4880
5093
  }
@@ -4985,6 +5198,38 @@ var cp_amm_default = {
4985
5198
  ]
4986
5199
  }
4987
5200
  },
5201
+ {
5202
+ name: "DummyParams",
5203
+ type: {
5204
+ kind: "struct",
5205
+ fields: [
5206
+ {
5207
+ name: "borsh_fee_time_scheduler_params",
5208
+ type: {
5209
+ defined: {
5210
+ name: "BorshFeeTimeScheduler"
5211
+ }
5212
+ }
5213
+ },
5214
+ {
5215
+ name: "borsh_fee_rate_limiter_params",
5216
+ type: {
5217
+ defined: {
5218
+ name: "BorshFeeRateLimiter"
5219
+ }
5220
+ }
5221
+ },
5222
+ {
5223
+ name: "borsh_fee_market_cap_scheduler_params",
5224
+ type: {
5225
+ defined: {
5226
+ name: "BorshFeeMarketCapScheduler"
5227
+ }
5228
+ }
5229
+ }
5230
+ ]
5231
+ }
5232
+ },
4988
5233
  {
4989
5234
  name: "DynamicConfigParameters",
4990
5235
  type: {
@@ -5164,50 +5409,6 @@ var cp_amm_default = {
5164
5409
  ]
5165
5410
  }
5166
5411
  },
5167
- {
5168
- name: "EvtAddLiquidity",
5169
- type: {
5170
- kind: "struct",
5171
- fields: [
5172
- {
5173
- name: "pool",
5174
- type: "pubkey"
5175
- },
5176
- {
5177
- name: "position",
5178
- type: "pubkey"
5179
- },
5180
- {
5181
- name: "owner",
5182
- type: "pubkey"
5183
- },
5184
- {
5185
- name: "params",
5186
- type: {
5187
- defined: {
5188
- name: "AddLiquidityParameters"
5189
- }
5190
- }
5191
- },
5192
- {
5193
- name: "token_a_amount",
5194
- type: "u64"
5195
- },
5196
- {
5197
- name: "token_b_amount",
5198
- type: "u64"
5199
- },
5200
- {
5201
- name: "total_amount_a",
5202
- type: "u64"
5203
- },
5204
- {
5205
- name: "total_amount_b",
5206
- type: "u64"
5207
- }
5208
- ]
5209
- }
5210
- },
5211
5412
  {
5212
5413
  name: "EvtClaimPartnerFee",
5213
5414
  type: {
@@ -5308,25 +5509,6 @@ var cp_amm_default = {
5308
5509
  ]
5309
5510
  }
5310
5511
  },
5311
- {
5312
- name: "EvtCloseClaimFeeOperator",
5313
- docs: [
5314
- "Close claim fee operator"
5315
- ],
5316
- type: {
5317
- kind: "struct",
5318
- fields: [
5319
- {
5320
- name: "claim_fee_operator",
5321
- type: "pubkey"
5322
- },
5323
- {
5324
- name: "operator",
5325
- type: "pubkey"
5326
- }
5327
- ]
5328
- }
5329
- },
5330
5512
  {
5331
5513
  name: "EvtCloseConfig",
5332
5514
  docs: [
@@ -5376,21 +5558,6 @@ var cp_amm_default = {
5376
5558
  ]
5377
5559
  }
5378
5560
  },
5379
- {
5380
- name: "EvtCreateClaimFeeOperator",
5381
- docs: [
5382
- "Create claim fee operator"
5383
- ],
5384
- type: {
5385
- kind: "struct",
5386
- fields: [
5387
- {
5388
- name: "operator",
5389
- type: "pubkey"
5390
- }
5391
- ]
5392
- }
5393
- },
5394
5561
  {
5395
5562
  name: "EvtCreateConfig",
5396
5563
  docs: [
@@ -5804,42 +5971,6 @@ var cp_amm_default = {
5804
5971
  ]
5805
5972
  }
5806
5973
  },
5807
- {
5808
- name: "EvtRemoveLiquidity",
5809
- type: {
5810
- kind: "struct",
5811
- fields: [
5812
- {
5813
- name: "pool",
5814
- type: "pubkey"
5815
- },
5816
- {
5817
- name: "position",
5818
- type: "pubkey"
5819
- },
5820
- {
5821
- name: "owner",
5822
- type: "pubkey"
5823
- },
5824
- {
5825
- name: "params",
5826
- type: {
5827
- defined: {
5828
- name: "RemoveLiquidityParameters"
5829
- }
5830
- }
5831
- },
5832
- {
5833
- name: "token_a_amount",
5834
- type: "u64"
5835
- },
5836
- {
5837
- name: "token_b_amount",
5838
- type: "u64"
5839
- }
5840
- ]
5841
- }
5842
- },
5843
5974
  {
5844
5975
  name: "EvtSetPoolStatus",
5845
5976
  type: {
@@ -5920,50 +6051,6 @@ var cp_amm_default = {
5920
6051
  ]
5921
6052
  }
5922
6053
  },
5923
- {
5924
- name: "EvtSwap",
5925
- type: {
5926
- kind: "struct",
5927
- fields: [
5928
- {
5929
- name: "pool",
5930
- type: "pubkey"
5931
- },
5932
- {
5933
- name: "trade_direction",
5934
- type: "u8"
5935
- },
5936
- {
5937
- name: "has_referral",
5938
- type: "bool"
5939
- },
5940
- {
5941
- name: "params",
5942
- type: {
5943
- defined: {
5944
- name: "SwapParameters"
5945
- }
5946
- }
5947
- },
5948
- {
5949
- name: "swap_result",
5950
- type: {
5951
- defined: {
5952
- name: "SwapResult"
5953
- }
5954
- }
5955
- },
5956
- {
5957
- name: "actual_amount_in",
5958
- type: "u64"
5959
- },
5960
- {
5961
- name: "current_timestamp",
5962
- type: "u64"
5963
- }
5964
- ]
5965
- }
5966
- },
5967
6054
  {
5968
6055
  name: "EvtSwap2",
5969
6056
  type: {
@@ -6028,6 +6115,30 @@ var cp_amm_default = {
6028
6115
  ]
6029
6116
  }
6030
6117
  },
6118
+ {
6119
+ name: "EvtUpdatePoolFees",
6120
+ type: {
6121
+ kind: "struct",
6122
+ fields: [
6123
+ {
6124
+ name: "pool",
6125
+ type: "pubkey"
6126
+ },
6127
+ {
6128
+ name: "operator",
6129
+ type: "pubkey"
6130
+ },
6131
+ {
6132
+ name: "params",
6133
+ type: {
6134
+ defined: {
6135
+ name: "UpdatePoolFeesParameters"
6136
+ }
6137
+ }
6138
+ }
6139
+ ]
6140
+ }
6141
+ },
6031
6142
  {
6032
6143
  name: "EvtUpdateRewardDuration",
6033
6144
  type: {
@@ -6143,7 +6254,7 @@ var cp_amm_default = {
6143
6254
  {
6144
6255
  name: "sqrt_price",
6145
6256
  docs: [
6146
- "The init price of the pool as a sqrt(token_b/token_a) Q64.64 value"
6257
+ "The init price of the pool as a sqrt(token_b/token_a) Q64.64 value. Market cap fee scheduler minimum price will be derived from this value"
6147
6258
  ],
6148
6259
  type: "u128"
6149
6260
  },
@@ -6186,20 +6297,180 @@ var cp_amm_default = {
6186
6297
  type: "u128"
6187
6298
  },
6188
6299
  {
6189
- name: "sqrt_price",
6190
- docs: [
6191
- "The init price of the pool as a sqrt(token_b/token_a) Q64.64 value"
6192
- ],
6193
- type: "u128"
6300
+ name: "sqrt_price",
6301
+ docs: [
6302
+ "The init price of the pool as a sqrt(token_b/token_a) Q64.64 value"
6303
+ ],
6304
+ type: "u128"
6305
+ },
6306
+ {
6307
+ name: "activation_point",
6308
+ docs: [
6309
+ "activation point"
6310
+ ],
6311
+ type: {
6312
+ option: "u64"
6313
+ }
6314
+ }
6315
+ ]
6316
+ }
6317
+ },
6318
+ {
6319
+ name: "Operator",
6320
+ serialization: "bytemuck",
6321
+ repr: {
6322
+ kind: "c"
6323
+ },
6324
+ type: {
6325
+ kind: "struct",
6326
+ fields: [
6327
+ {
6328
+ name: "whitelisted_address",
6329
+ type: "pubkey"
6330
+ },
6331
+ {
6332
+ name: "permission",
6333
+ type: "u128"
6334
+ },
6335
+ {
6336
+ name: "padding",
6337
+ type: {
6338
+ array: [
6339
+ "u64",
6340
+ 2
6341
+ ]
6342
+ }
6343
+ }
6344
+ ]
6345
+ }
6346
+ },
6347
+ {
6348
+ name: "PodAlignedFeeMarketCapScheduler",
6349
+ serialization: "bytemuck",
6350
+ repr: {
6351
+ kind: "c"
6352
+ },
6353
+ type: {
6354
+ kind: "struct",
6355
+ fields: [
6356
+ {
6357
+ name: "cliff_fee_numerator",
6358
+ type: "u64"
6359
+ },
6360
+ {
6361
+ name: "base_fee_mode",
6362
+ type: "u8"
6363
+ },
6364
+ {
6365
+ name: "padding",
6366
+ type: {
6367
+ array: [
6368
+ "u8",
6369
+ 5
6370
+ ]
6371
+ }
6372
+ },
6373
+ {
6374
+ name: "number_of_period",
6375
+ type: "u16"
6376
+ },
6377
+ {
6378
+ name: "sqrt_price_step_bps",
6379
+ type: "u32"
6380
+ },
6381
+ {
6382
+ name: "scheduler_expiration_duration",
6383
+ type: "u32"
6384
+ },
6385
+ {
6386
+ name: "reduction_factor",
6387
+ type: "u64"
6388
+ }
6389
+ ]
6390
+ }
6391
+ },
6392
+ {
6393
+ name: "PodAlignedFeeRateLimiter",
6394
+ serialization: "bytemuck",
6395
+ repr: {
6396
+ kind: "c"
6397
+ },
6398
+ type: {
6399
+ kind: "struct",
6400
+ fields: [
6401
+ {
6402
+ name: "cliff_fee_numerator",
6403
+ type: "u64"
6404
+ },
6405
+ {
6406
+ name: "base_fee_mode",
6407
+ type: "u8"
6408
+ },
6409
+ {
6410
+ name: "padding",
6411
+ type: {
6412
+ array: [
6413
+ "u8",
6414
+ 5
6415
+ ]
6416
+ }
6417
+ },
6418
+ {
6419
+ name: "fee_increment_bps",
6420
+ type: "u16"
6421
+ },
6422
+ {
6423
+ name: "max_limiter_duration",
6424
+ type: "u32"
6425
+ },
6426
+ {
6427
+ name: "max_fee_bps",
6428
+ type: "u32"
6429
+ },
6430
+ {
6431
+ name: "reference_amount",
6432
+ type: "u64"
6433
+ }
6434
+ ]
6435
+ }
6436
+ },
6437
+ {
6438
+ name: "PodAlignedFeeTimeScheduler",
6439
+ serialization: "bytemuck",
6440
+ repr: {
6441
+ kind: "c"
6442
+ },
6443
+ type: {
6444
+ kind: "struct",
6445
+ fields: [
6446
+ {
6447
+ name: "cliff_fee_numerator",
6448
+ type: "u64"
6449
+ },
6450
+ {
6451
+ name: "base_fee_mode",
6452
+ type: "u8"
6194
6453
  },
6195
6454
  {
6196
- name: "activation_point",
6197
- docs: [
6198
- "activation point"
6199
- ],
6455
+ name: "padding",
6200
6456
  type: {
6201
- option: "u64"
6457
+ array: [
6458
+ "u8",
6459
+ 5
6460
+ ]
6202
6461
  }
6462
+ },
6463
+ {
6464
+ name: "number_of_period",
6465
+ type: "u16"
6466
+ },
6467
+ {
6468
+ name: "period_frequency",
6469
+ type: "u64"
6470
+ },
6471
+ {
6472
+ name: "reduction_factor",
6473
+ type: "u64"
6203
6474
  }
6204
6475
  ]
6205
6476
  }
@@ -6367,7 +6638,7 @@ var cp_amm_default = {
6367
6638
  {
6368
6639
  name: "collect_fee_mode",
6369
6640
  docs: [
6370
- "0 is collect fee in both token, 1 only collect fee in token a, 2 only collect fee in token b"
6641
+ "0 is collect fee in both token, 1 only collect fee only in token b"
6371
6642
  ],
6372
6643
  type: "u8"
6373
6644
  },
@@ -6488,18 +6759,6 @@ var cp_amm_default = {
6488
6759
  }
6489
6760
  }
6490
6761
  },
6491
- {
6492
- name: "padding",
6493
- docs: [
6494
- "padding"
6495
- ],
6496
- type: {
6497
- array: [
6498
- "u8",
6499
- 3
6500
- ]
6501
- }
6502
- },
6503
6762
  {
6504
6763
  name: "dynamic_fee",
6505
6764
  docs: [
@@ -6529,7 +6788,7 @@ var cp_amm_default = {
6529
6788
  name: "base_fee",
6530
6789
  type: {
6531
6790
  defined: {
6532
- name: "BaseFeeConfig"
6791
+ name: "BaseFeeInfo"
6533
6792
  }
6534
6793
  }
6535
6794
  },
@@ -6651,16 +6910,8 @@ var cp_amm_default = {
6651
6910
  }
6652
6911
  },
6653
6912
  {
6654
- name: "padding_1",
6655
- docs: [
6656
- "padding"
6657
- ],
6658
- type: {
6659
- array: [
6660
- "u64",
6661
- 2
6662
- ]
6663
- }
6913
+ name: "init_sqrt_price",
6914
+ type: "u128"
6664
6915
  }
6665
6916
  ]
6666
6917
  }
@@ -7240,41 +7491,6 @@ var cp_amm_default = {
7240
7491
  ]
7241
7492
  }
7242
7493
  },
7243
- {
7244
- name: "SwapResult",
7245
- docs: [
7246
- "Encodes all results of swapping"
7247
- ],
7248
- type: {
7249
- kind: "struct",
7250
- fields: [
7251
- {
7252
- name: "output_amount",
7253
- type: "u64"
7254
- },
7255
- {
7256
- name: "next_sqrt_price",
7257
- type: "u128"
7258
- },
7259
- {
7260
- name: "lp_fee",
7261
- type: "u64"
7262
- },
7263
- {
7264
- name: "protocol_fee",
7265
- type: "u64"
7266
- },
7267
- {
7268
- name: "partner_fee",
7269
- type: "u64"
7270
- },
7271
- {
7272
- name: "referral_fee",
7273
- type: "u64"
7274
- }
7275
- ]
7276
- }
7277
- },
7278
7494
  {
7279
7495
  name: "SwapResult2",
7280
7496
  type: {
@@ -7353,6 +7569,41 @@ var cp_amm_default = {
7353
7569
  ]
7354
7570
  }
7355
7571
  },
7572
+ {
7573
+ name: "UpdatePoolFeesParameters",
7574
+ type: {
7575
+ kind: "struct",
7576
+ fields: [
7577
+ {
7578
+ name: "cliff_fee_numerator",
7579
+ docs: [
7580
+ "Base fee update mode:",
7581
+ "- None: skip base fee update",
7582
+ "- Some: update new cliff_fee_numerator if base fee is static"
7583
+ ],
7584
+ type: {
7585
+ option: "u64"
7586
+ }
7587
+ },
7588
+ {
7589
+ name: "dynamic_fee",
7590
+ docs: [
7591
+ "Dynamic fee update mode:",
7592
+ "- None: skip dynamic fee update",
7593
+ "- Some(with default value): disable dynamic fee",
7594
+ "- Some(with non default value): enable dynamic fee if disabled or update dynamic fee if enabled"
7595
+ ],
7596
+ type: {
7597
+ option: {
7598
+ defined: {
7599
+ name: "DynamicFeeParameters"
7600
+ }
7601
+ }
7602
+ }
7603
+ }
7604
+ ]
7605
+ }
7606
+ },
7356
7607
  {
7357
7608
  name: "UserRewardInfo",
7358
7609
  serialization: "bytemuck",
@@ -7479,6 +7730,94 @@ var cp_amm_default = {
7479
7730
  ]
7480
7731
  }
7481
7732
  }
7733
+ ],
7734
+ constants: [
7735
+ {
7736
+ name: "BIN_STEP_BPS_DEFAULT",
7737
+ type: "u16",
7738
+ value: "1"
7739
+ },
7740
+ {
7741
+ name: "BIN_STEP_U128_DEFAULT_LE_BYTES",
7742
+ type: {
7743
+ array: [
7744
+ "u8",
7745
+ 16
7746
+ ]
7747
+ },
7748
+ value: "[203, 16, 199, 186, 184, 141, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0]"
7749
+ },
7750
+ {
7751
+ name: "CUSTOMIZABLE_POOL_PREFIX",
7752
+ type: "bytes",
7753
+ value: "[99, 112, 111, 111, 108]"
7754
+ },
7755
+ {
7756
+ name: "FEE_DENOMINATOR",
7757
+ docs: [
7758
+ "Default fee denominator. DO NOT simply update it as it will break logic that depends on it as default value."
7759
+ ],
7760
+ type: "u64",
7761
+ value: "1000000000"
7762
+ },
7763
+ {
7764
+ name: "MAX_BASIS_POINT",
7765
+ docs: [
7766
+ "Max basis point. 100% in pct"
7767
+ ],
7768
+ type: "u64",
7769
+ value: "10000"
7770
+ },
7771
+ {
7772
+ name: "MAX_SQRT_PRICE_LE_BYTES",
7773
+ type: {
7774
+ array: [
7775
+ "u8",
7776
+ 16
7777
+ ]
7778
+ },
7779
+ value: "[155, 87, 105, 78, 169, 26, 92, 132, 177, 196, 254, 255, 0, 0, 0, 0]"
7780
+ },
7781
+ {
7782
+ name: "MIN_SQRT_PRICE_LE_BYTES",
7783
+ type: {
7784
+ array: [
7785
+ "u8",
7786
+ 16
7787
+ ]
7788
+ },
7789
+ value: "[80, 59, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]"
7790
+ },
7791
+ {
7792
+ name: "POOL_AUTHORITY_PREFIX",
7793
+ type: "bytes",
7794
+ value: "[112, 111, 111, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121]"
7795
+ },
7796
+ {
7797
+ name: "POOL_PREFIX",
7798
+ type: "bytes",
7799
+ value: "[112, 111, 111, 108]"
7800
+ },
7801
+ {
7802
+ name: "POSITION_NFT_ACCOUNT_PREFIX",
7803
+ type: "bytes",
7804
+ value: "[112, 111, 115, 105, 116, 105, 111, 110, 95, 110, 102, 116, 95, 97, 99, 99, 111, 117, 110, 116]"
7805
+ },
7806
+ {
7807
+ name: "POSITION_PREFIX",
7808
+ type: "bytes",
7809
+ value: "[112, 111, 115, 105, 116, 105, 111, 110]"
7810
+ },
7811
+ {
7812
+ name: "SPLIT_POSITION_DENOMINATOR",
7813
+ type: "u32",
7814
+ value: "1000000000"
7815
+ },
7816
+ {
7817
+ name: "TOKEN_VAULT_PREFIX",
7818
+ type: "bytes",
7819
+ value: "[116, 111, 107, 101, 110, 95, 118, 97, 117, 108, 116]"
7820
+ }
7482
7821
  ]
7483
7822
  };
7484
7823
 
@@ -7501,9 +7840,11 @@ var ActivationPoint = /* @__PURE__ */ ((ActivationPoint2) => {
7501
7840
  return ActivationPoint2;
7502
7841
  })(ActivationPoint || {});
7503
7842
  var BaseFeeMode = /* @__PURE__ */ ((BaseFeeMode3) => {
7504
- BaseFeeMode3[BaseFeeMode3["FeeSchedulerLinear"] = 0] = "FeeSchedulerLinear";
7505
- BaseFeeMode3[BaseFeeMode3["FeeSchedulerExponential"] = 1] = "FeeSchedulerExponential";
7843
+ BaseFeeMode3[BaseFeeMode3["FeeTimeSchedulerLinear"] = 0] = "FeeTimeSchedulerLinear";
7844
+ BaseFeeMode3[BaseFeeMode3["FeeTimeSchedulerExponential"] = 1] = "FeeTimeSchedulerExponential";
7506
7845
  BaseFeeMode3[BaseFeeMode3["RateLimiter"] = 2] = "RateLimiter";
7846
+ BaseFeeMode3[BaseFeeMode3["FeeMarketCapSchedulerLinear"] = 3] = "FeeMarketCapSchedulerLinear";
7847
+ BaseFeeMode3[BaseFeeMode3["FeeMarketCapSchedulerExponential"] = 4] = "FeeMarketCapSchedulerExponential";
7507
7848
  return BaseFeeMode3;
7508
7849
  })(BaseFeeMode || {});
7509
7850
  var CollectFeeMode = /* @__PURE__ */ ((CollectFeeMode3) => {
@@ -7521,10 +7862,10 @@ var ActivationType = /* @__PURE__ */ ((ActivationType3) => {
7521
7862
  ActivationType3[ActivationType3["Timestamp"] = 1] = "Timestamp";
7522
7863
  return ActivationType3;
7523
7864
  })(ActivationType || {});
7524
- var PoolVersion = /* @__PURE__ */ ((PoolVersion5) => {
7525
- PoolVersion5[PoolVersion5["V0"] = 0] = "V0";
7526
- PoolVersion5[PoolVersion5["V1"] = 1] = "V1";
7527
- return PoolVersion5;
7865
+ var PoolVersion = /* @__PURE__ */ ((PoolVersion4) => {
7866
+ PoolVersion4[PoolVersion4["V0"] = 0] = "V0";
7867
+ PoolVersion4[PoolVersion4["V1"] = 1] = "V1";
7868
+ return PoolVersion4;
7528
7869
  })(PoolVersion || {});
7529
7870
  var PoolStatus = /* @__PURE__ */ ((PoolStatus2) => {
7530
7871
  PoolStatus2[PoolStatus2["Enable"] = 0] = "Enable";
@@ -7578,7 +7919,8 @@ var U16_MAX = 65535;
7578
7919
  var MAX_RATE_LIMITER_DURATION_IN_SECONDS = 43200;
7579
7920
  var MAX_RATE_LIMITER_DURATION_IN_SLOTS = 108e3;
7580
7921
  var SPLIT_POSITION_DENOMINATOR = 1e9;
7581
- var CURRENT_POOL_VERSION = 0 /* V0 */;
7922
+ var CURRENT_POOL_VERSION = 1 /* V1 */;
7923
+ var FEE_PADDING = Array.from(Buffer.alloc(3));
7582
7924
 
7583
7925
  // src/pda.ts
7584
7926
  function getFirstKey(key1, key2) {
@@ -7666,6 +8008,12 @@ function derivePositionNftAccount(positionNftMint) {
7666
8008
  CP_AMM_PROGRAM_ID
7667
8009
  )[0];
7668
8010
  }
8011
+ function deriveOperatorAddress(whitelistedAddress) {
8012
+ return _web3js.PublicKey.findProgramAddressSync(
8013
+ [Buffer.from("operator"), whitelistedAddress.toBuffer()],
8014
+ CP_AMM_PROGRAM_ID
8015
+ )[0];
8016
+ }
7669
8017
 
7670
8018
  // src/helpers/token.ts
7671
8019
  var _bytes = require('@coral-xyz/anchor/dist/cjs/utils/bytes');
@@ -8102,6 +8450,7 @@ function offsetBasedFilter(value, offset) {
8102
8450
 
8103
8451
 
8104
8452
 
8453
+
8105
8454
  function calculatePreFeeAmount(transferFee, postFeeAmount) {
8106
8455
  if (postFeeAmount.isZero()) {
8107
8456
  return new (0, _anchor.BN)(0);
@@ -8175,6 +8524,61 @@ function calculateTransferFeeExcludedAmount(transferFeeIncludedAmount, mint, cur
8175
8524
  transferFee: new (0, _anchor.BN)(transferFee.toString())
8176
8525
  };
8177
8526
  }
8527
+ function hasTransferHookExtension(connection, mint) {
8528
+ return __async(this, null, function* () {
8529
+ try {
8530
+ const mintAccountInfo = yield connection.getAccountInfo(mint);
8531
+ if (!mintAccountInfo) {
8532
+ return { hasTransferHook: false };
8533
+ }
8534
+ const isToken2022 = mintAccountInfo.owner.equals(_spltoken.TOKEN_2022_PROGRAM_ID);
8535
+ if (!isToken2022) {
8536
+ return { hasTransferHook: false };
8537
+ }
8538
+ const parsedInfo = yield connection.getParsedAccountInfo(mint);
8539
+ if (parsedInfo.value && "parsed" in parsedInfo.value.data) {
8540
+ const parsedData = parsedInfo.value.data.parsed;
8541
+ if (parsedData && parsedData.info && parsedData.info.extensions) {
8542
+ const extensions = parsedData.info.extensions;
8543
+ const transferHookExtension = extensions.find(
8544
+ (ext) => ext.extension === "transferHook"
8545
+ );
8546
+ if (transferHookExtension && transferHookExtension.state) {
8547
+ return {
8548
+ hasTransferHook: true,
8549
+ transferHookState: {
8550
+ authority: transferHookExtension.state.authority,
8551
+ programId: transferHookExtension.state.programId
8552
+ }
8553
+ };
8554
+ }
8555
+ }
8556
+ }
8557
+ return { hasTransferHook: false };
8558
+ } catch (error) {
8559
+ return { hasTransferHook: false };
8560
+ }
8561
+ });
8562
+ }
8563
+ function validateNoTransferHook(connection, tokenAMint, tokenBMint) {
8564
+ return __async(this, null, function* () {
8565
+ var _a, _b;
8566
+ const [tokenACheck, tokenBCheck] = yield Promise.all([
8567
+ hasTransferHookExtension(connection, tokenAMint),
8568
+ hasTransferHookExtension(connection, tokenBMint)
8569
+ ]);
8570
+ if (tokenACheck.hasTransferHook) {
8571
+ throw new Error(
8572
+ `Token A (${tokenAMint.toBase58()}) has a transfer hook extension. Transfer hook might prevent permissionless pool creation. Transfer hook program: ${(_a = tokenACheck.transferHookState) == null ? void 0 : _a.programId}`
8573
+ );
8574
+ }
8575
+ if (tokenBCheck.hasTransferHook) {
8576
+ throw new Error(
8577
+ `Token B (${tokenBMint.toBase58()}) has a transfer hook extension. Transfer hook might prevent permissionless pool creation. Transfer hook program: ${(_b = tokenBCheck.transferHookState) == null ? void 0 : _b.programId}`
8578
+ );
8579
+ }
8580
+ });
8581
+ }
8178
8582
 
8179
8583
  // src/helpers/vestings.ts
8180
8584
 
@@ -8420,35 +8824,27 @@ function getTotalFeeNumerator(poolFees, baseFeeNumerator, maxFeeNumerator) {
8420
8824
  const totalFeeNumerator = dynamicFeeNumerator.add(baseFeeNumerator);
8421
8825
  return _anchor.BN.min(totalFeeNumerator, maxFeeNumerator);
8422
8826
  }
8423
- function getTotalTradingFeeFromIncludedFeeAmount(poolFees, currentPoint, activationPoint, includedFeeAmount, tradeDirection, maxFeeNumerator) {
8424
- const baseFeeHandler = getBaseFeeHandler(
8425
- poolFees.baseFee.cliffFeeNumerator,
8426
- poolFees.baseFee.firstFactor,
8427
- poolFees.baseFee.secondFactor,
8428
- poolFees.baseFee.thirdFactor,
8429
- poolFees.baseFee.baseFeeMode
8430
- );
8827
+ function getTotalTradingFeeFromIncludedFeeAmount(poolFees, currentPoint, activationPoint, includedFeeAmount, tradeDirection, maxFeeNumerator, initSqrtPrice, currentSqrtPrice) {
8828
+ const baseFeeHandler = getBaseFeeHandler(poolFees.baseFee.baseFeeInfo.data);
8431
8829
  const baseFeeNumerator = baseFeeHandler.getBaseFeeNumeratorFromIncludedFeeAmount(
8432
8830
  currentPoint,
8433
8831
  activationPoint,
8434
8832
  tradeDirection,
8435
- includedFeeAmount
8833
+ includedFeeAmount,
8834
+ initSqrtPrice,
8835
+ currentSqrtPrice
8436
8836
  );
8437
8837
  return getTotalFeeNumerator(poolFees, baseFeeNumerator, maxFeeNumerator);
8438
8838
  }
8439
- function getTotalTradingFeeFromExcludedFeeAmount(poolFees, currentPoint, activationPoint, excludedFeeAmount, tradeDirection, maxFeeNumerator) {
8440
- const baseFeeHandler = getBaseFeeHandler(
8441
- poolFees.baseFee.cliffFeeNumerator,
8442
- poolFees.baseFee.firstFactor,
8443
- poolFees.baseFee.secondFactor,
8444
- poolFees.baseFee.thirdFactor,
8445
- poolFees.baseFee.baseFeeMode
8446
- );
8839
+ function getTotalTradingFeeFromExcludedFeeAmount(poolFees, currentPoint, activationPoint, excludedFeeAmount, tradeDirection, maxFeeNumerator, initSqrtPrice, currentSqrtPrice) {
8840
+ const baseFeeHandler = getBaseFeeHandler(poolFees.baseFee.baseFeeInfo.data);
8447
8841
  const baseFeeNumerator = baseFeeHandler.getBaseFeeNumeratorFromExcludedFeeAmount(
8448
8842
  currentPoint,
8449
8843
  activationPoint,
8450
8844
  tradeDirection,
8451
- excludedFeeAmount
8845
+ excludedFeeAmount,
8846
+ initSqrtPrice,
8847
+ currentSqrtPrice
8452
8848
  );
8453
8849
  return getTotalFeeNumerator(poolFees, baseFeeNumerator, maxFeeNumerator);
8454
8850
  }
@@ -8766,28 +9162,60 @@ function getFeeNumeratorFromExcludedFeeAmount(excludedFeeAmount, referenceAmount
8766
9162
  return feeNumerator;
8767
9163
  }
8768
9164
 
9165
+ // src/math/poolFees/feeTimeScheduler.ts
9166
+
9167
+
8769
9168
  // src/math/poolFees/feeScheduler.ts
8770
9169
 
9170
+ function getFeeNumeratorOnLinearFeeScheduler(cliffFeeNumerator, reductionFactor, period) {
9171
+ const reduction = new (0, _bnjs2.default)(period).mul(reductionFactor);
9172
+ return cliffFeeNumerator.sub(reduction);
9173
+ }
9174
+ function getFeeNumeratorOnExponentialFeeScheduler(cliffFeeNumerator, reductionFactor, period) {
9175
+ if (period === 0) {
9176
+ return cliffFeeNumerator;
9177
+ }
9178
+ const basisPointMax = new (0, _bnjs2.default)(BASIS_POINT_MAX);
9179
+ const bps = new (0, _bnjs2.default)(reductionFactor).shln(64).div(basisPointMax);
9180
+ const base = ONE_Q64.sub(bps);
9181
+ const result = pow(base, new (0, _bnjs2.default)(period));
9182
+ return cliffFeeNumerator.mul(result).div(ONE_Q64);
9183
+ }
8771
9184
  function getMaxBaseFeeNumerator(cliffFeeNumerator) {
8772
9185
  return cliffFeeNumerator;
8773
9186
  }
8774
- function getMinBaseFeeNumerator(cliffFeeNumerator, numberOfPeriod, reductionFactor, feeSchedulerMode) {
8775
- return getBaseFeeNumeratorByPeriod(
8776
- cliffFeeNumerator,
8777
- numberOfPeriod,
8778
- new (0, _bnjs2.default)(numberOfPeriod),
8779
- reductionFactor,
8780
- feeSchedulerMode
8781
- );
9187
+
9188
+ // src/math/poolFees/feeTimeScheduler.ts
9189
+ function toPodAlignedFeeTimeScheduler(borshFeeScheduler) {
9190
+ return {
9191
+ cliffFeeNumerator: borshFeeScheduler.cliffFeeNumerator,
9192
+ baseFeeMode: borshFeeScheduler.baseFeeMode,
9193
+ padding: new Array(16).fill(0),
9194
+ // Assumes default/rust alignment of 16
9195
+ numberOfPeriod: borshFeeScheduler.numberOfPeriod,
9196
+ periodFrequency: borshFeeScheduler.periodFrequency,
9197
+ reductionFactor: borshFeeScheduler.reductionFactor
9198
+ };
9199
+ }
9200
+ function toBorshFeeTimeScheduler(podAlignedFeeScheduler) {
9201
+ return {
9202
+ cliffFeeNumerator: podAlignedFeeScheduler.cliffFeeNumerator,
9203
+ numberOfPeriod: podAlignedFeeScheduler.numberOfPeriod,
9204
+ periodFrequency: podAlignedFeeScheduler.periodFrequency,
9205
+ reductionFactor: podAlignedFeeScheduler.reductionFactor,
9206
+ baseFeeMode: podAlignedFeeScheduler.baseFeeMode,
9207
+ padding: new Array(16).fill(0)
9208
+ // Assumes default/rust alignment of 16
9209
+ };
8782
9210
  }
8783
- function getBaseFeeNumeratorByPeriod(cliffFeeNumerator, numberOfPeriod, period, reductionFactor, feeSchedulerMode) {
9211
+ function getFeeTimeBaseFeeNumeratorByPeriod(cliffFeeNumerator, numberOfPeriod, period, reductionFactor, feeTimeSchedulerMode) {
8784
9212
  const periodValue = _bnjs2.default.min(period, new (0, _bnjs2.default)(numberOfPeriod));
8785
9213
  const periodNumber = periodValue.toNumber();
8786
9214
  if (periodNumber > U16_MAX) {
8787
9215
  throw new Error("Math overflow");
8788
9216
  }
8789
- switch (feeSchedulerMode) {
8790
- case 0 /* FeeSchedulerLinear */: {
9217
+ switch (feeTimeSchedulerMode) {
9218
+ case 0 /* FeeTimeSchedulerLinear */: {
8791
9219
  const feeNumerator = getFeeNumeratorOnLinearFeeScheduler(
8792
9220
  cliffFeeNumerator,
8793
9221
  reductionFactor,
@@ -8795,7 +9223,7 @@ function getBaseFeeNumeratorByPeriod(cliffFeeNumerator, numberOfPeriod, period,
8795
9223
  );
8796
9224
  return feeNumerator;
8797
9225
  }
8798
- case 1 /* FeeSchedulerExponential */: {
9226
+ case 1 /* FeeTimeSchedulerExponential */: {
8799
9227
  const feeNumerator = getFeeNumeratorOnExponentialFeeScheduler(
8800
9228
  cliffFeeNumerator,
8801
9229
  reductionFactor,
@@ -8804,42 +9232,103 @@ function getBaseFeeNumeratorByPeriod(cliffFeeNumerator, numberOfPeriod, period,
8804
9232
  return feeNumerator;
8805
9233
  }
8806
9234
  default:
8807
- throw new Error("Invalid fee scheduler mode");
9235
+ throw new Error("Invalid fee time scheduler mode");
8808
9236
  }
8809
9237
  }
8810
- function getFeeNumeratorOnLinearFeeScheduler(cliffFeeNumerator, reductionFactor, period) {
8811
- const reduction = new (0, _bnjs2.default)(period).mul(reductionFactor);
8812
- return cliffFeeNumerator.sub(reduction);
8813
- }
8814
- function getFeeNumeratorOnExponentialFeeScheduler(cliffFeeNumerator, reductionFactor, period) {
8815
- if (period === 0) {
9238
+ function getFeeTimeBaseFeeNumerator(cliffFeeNumerator, numberOfPeriod, periodFrequency, reductionFactor, feeTimeSchedulerMode, currentPoint, activationPoint) {
9239
+ if (periodFrequency.isZero()) {
8816
9240
  return cliffFeeNumerator;
8817
9241
  }
8818
- const basisPointMax = new (0, _bnjs2.default)(BASIS_POINT_MAX);
8819
- const bps = new (0, _bnjs2.default)(reductionFactor).shln(64).div(basisPointMax);
8820
- const base = ONE_Q64.sub(bps);
8821
- const result = pow(base, new (0, _bnjs2.default)(period));
8822
- return cliffFeeNumerator.mul(result).div(ONE_Q64);
9242
+ let period;
9243
+ if (currentPoint.lt(activationPoint)) {
9244
+ period = new (0, _bnjs2.default)(numberOfPeriod);
9245
+ } else {
9246
+ period = currentPoint.sub(activationPoint).div(periodFrequency);
9247
+ if (period.gt(new (0, _bnjs2.default)(numberOfPeriod))) {
9248
+ period = new (0, _bnjs2.default)(numberOfPeriod);
9249
+ }
9250
+ }
9251
+ return getFeeTimeBaseFeeNumeratorByPeriod(
9252
+ cliffFeeNumerator,
9253
+ numberOfPeriod,
9254
+ period,
9255
+ reductionFactor,
9256
+ feeTimeSchedulerMode
9257
+ );
8823
9258
  }
8824
- function getBaseFeeNumerator(cliffFeeNumerator, numberOfPeriod, periodFrequency, reductionFactor, feeSchedulerMode, currentPoint, activationPoint) {
8825
- if (periodFrequency.isZero()) {
8826
- return cliffFeeNumerator;
9259
+ function getFeeTimeMinBaseFeeNumerator(cliffFeeNumerator, numberOfPeriod, reductionFactor, feeTimeSchedulerMode) {
9260
+ return getFeeTimeBaseFeeNumeratorByPeriod(
9261
+ cliffFeeNumerator,
9262
+ numberOfPeriod,
9263
+ new (0, _bnjs2.default)(numberOfPeriod),
9264
+ reductionFactor,
9265
+ feeTimeSchedulerMode
9266
+ );
9267
+ }
9268
+
9269
+ // src/math/poolFees/feeMarketCapScheduler.ts
9270
+
9271
+ function getFeeMarketCapBaseFeeNumeratorByPeriod(cliffFeeNumerator, numberOfPeriod, period, reductionFactor, feeMarketCapSchedulerMode) {
9272
+ const periodValue = _bnjs2.default.min(period, new (0, _bnjs2.default)(numberOfPeriod));
9273
+ const periodNumber = periodValue.toNumber();
9274
+ switch (feeMarketCapSchedulerMode) {
9275
+ case 3 /* FeeMarketCapSchedulerLinear */: {
9276
+ const feeNumerator = getFeeNumeratorOnLinearFeeScheduler(
9277
+ cliffFeeNumerator,
9278
+ reductionFactor,
9279
+ periodNumber
9280
+ );
9281
+ return feeNumerator;
9282
+ }
9283
+ case 4 /* FeeMarketCapSchedulerExponential */: {
9284
+ const feeNumerator = getFeeNumeratorOnExponentialFeeScheduler(
9285
+ cliffFeeNumerator,
9286
+ reductionFactor,
9287
+ periodNumber
9288
+ );
9289
+ return feeNumerator;
9290
+ }
9291
+ default:
9292
+ throw new Error("Invalid fee market cap scheduler mode");
8827
9293
  }
9294
+ }
9295
+ function getFeeMarketCapBaseFeeNumerator(cliffFeeNumerator, numberOfPeriod, sqrtPriceStepBps, schedulerExpirationDuration, reductionFactor, feeMarketCapSchedulerMode, currentPoint, activationPoint, initSqrtPrice, currentSqrtPrice) {
9296
+ const schedulerExpirationPoint = activationPoint.add(
9297
+ new (0, _bnjs2.default)(schedulerExpirationDuration)
9298
+ );
8828
9299
  let period;
8829
- if (currentPoint.lt(activationPoint)) {
9300
+ if (currentPoint.gt(schedulerExpirationPoint) || currentPoint.lt(activationPoint)) {
8830
9301
  period = new (0, _bnjs2.default)(numberOfPeriod);
8831
9302
  } else {
8832
- period = currentPoint.sub(activationPoint).div(periodFrequency);
8833
- if (period.gt(new (0, _bnjs2.default)(numberOfPeriod))) {
8834
- period = new (0, _bnjs2.default)(numberOfPeriod);
9303
+ if (currentSqrtPrice.lte(initSqrtPrice)) {
9304
+ period = new (0, _bnjs2.default)(0);
9305
+ } else {
9306
+ const maxBps = new (0, _bnjs2.default)(BASIS_POINT_MAX);
9307
+ const stepBps = new (0, _bnjs2.default)(sqrtPriceStepBps);
9308
+ const passedPeriod = currentSqrtPrice.sub(initSqrtPrice).mul(maxBps).div(initSqrtPrice).div(stepBps);
9309
+ if (passedPeriod.gt(new (0, _bnjs2.default)(numberOfPeriod))) {
9310
+ period = new (0, _bnjs2.default)(numberOfPeriod);
9311
+ } else {
9312
+ period = passedPeriod;
9313
+ }
8835
9314
  }
9315
+ period = _bnjs2.default.min(period, new (0, _bnjs2.default)(numberOfPeriod));
8836
9316
  }
8837
- return getBaseFeeNumeratorByPeriod(
9317
+ return getFeeMarketCapBaseFeeNumeratorByPeriod(
8838
9318
  cliffFeeNumerator,
8839
9319
  numberOfPeriod,
8840
9320
  period,
8841
9321
  reductionFactor,
8842
- feeSchedulerMode
9322
+ feeMarketCapSchedulerMode
9323
+ );
9324
+ }
9325
+ function getFeeMarketCapMinBaseFeeNumerator(cliffFeeNumerator, numberOfPeriod, reductionFactor, feeMarketCapSchedulerMode) {
9326
+ return getFeeMarketCapBaseFeeNumeratorByPeriod(
9327
+ cliffFeeNumerator,
9328
+ numberOfPeriod,
9329
+ new (0, _bnjs2.default)(numberOfPeriod),
9330
+ reductionFactor,
9331
+ feeMarketCapSchedulerMode
8843
9332
  );
8844
9333
  }
8845
9334
 
@@ -8864,7 +9353,7 @@ var FeeRateLimiter = class {
8864
9353
  poolVersion
8865
9354
  );
8866
9355
  }
8867
- getBaseFeeNumeratorFromIncludedFeeAmount(currentPoint, activationPoint, tradeDirection, includedFeeAmount) {
9356
+ getBaseFeeNumeratorFromIncludedFeeAmount(currentPoint, activationPoint, tradeDirection, includedFeeAmount, _initSqrtPrice, _currentSqrtPrice) {
8868
9357
  if (isRateLimiterApplied(
8869
9358
  this.referenceAmount,
8870
9359
  this.maxLimiterDuration,
@@ -8885,7 +9374,7 @@ var FeeRateLimiter = class {
8885
9374
  return this.cliffFeeNumerator;
8886
9375
  }
8887
9376
  }
8888
- getBaseFeeNumeratorFromExcludedFeeAmount(currentPoint, activationPoint, tradeDirection, excludedFeeAmount) {
9377
+ getBaseFeeNumeratorFromExcludedFeeAmount(currentPoint, activationPoint, tradeDirection, excludedFeeAmount, _initSqrtPrice, _currentSqrtPrice) {
8889
9378
  if (isRateLimiterApplied(
8890
9379
  this.referenceAmount,
8891
9380
  this.maxLimiterDuration,
@@ -8906,88 +9395,178 @@ var FeeRateLimiter = class {
8906
9395
  return this.cliffFeeNumerator;
8907
9396
  }
8908
9397
  }
9398
+ validateBaseFeeIsStatic(currentPoint, activationPoint) {
9399
+ return validateFeeRateLimiterBaseFeeIsStatic(
9400
+ currentPoint,
9401
+ activationPoint,
9402
+ this.maxLimiterDuration,
9403
+ this.referenceAmount,
9404
+ this.maxFeeBps,
9405
+ this.feeIncrementBps
9406
+ );
9407
+ }
9408
+ getMinBaseFeeNumerator() {
9409
+ return this.cliffFeeNumerator;
9410
+ }
8909
9411
  };
8910
- var FeeScheduler = class {
8911
- constructor(cliffFeeNumerator, numberOfPeriod, periodFrequency, reductionFactor, feeSchedulerMode) {
9412
+ var FeeTimeScheduler = class {
9413
+ constructor(cliffFeeNumerator, numberOfPeriod, periodFrequency, reductionFactor, feeTimeSchedulerMode) {
8912
9414
  this.cliffFeeNumerator = cliffFeeNumerator;
8913
9415
  this.numberOfPeriod = numberOfPeriod;
8914
9416
  this.periodFrequency = periodFrequency;
8915
9417
  this.reductionFactor = reductionFactor;
8916
- this.feeSchedulerMode = feeSchedulerMode;
9418
+ this.feeTimeSchedulerMode = feeTimeSchedulerMode;
8917
9419
  }
8918
9420
  validate(collectFeeMode, activationType, poolVersion) {
8919
- return validateFeeScheduler(
9421
+ return validateFeeTimeScheduler(
8920
9422
  this.numberOfPeriod,
8921
9423
  this.periodFrequency,
8922
9424
  this.reductionFactor,
8923
9425
  this.cliffFeeNumerator,
8924
- this.feeSchedulerMode,
9426
+ this.feeTimeSchedulerMode,
8925
9427
  poolVersion
8926
9428
  );
8927
9429
  }
8928
- getBaseFeeNumeratorFromIncludedFeeAmount(currentPoint, activationPoint) {
8929
- return getBaseFeeNumerator(
9430
+ getBaseFeeNumeratorFromIncludedFeeAmount(currentPoint, activationPoint, _tradeDirection, _includedFeeAmount, _initSqrtPrice, _currentSqrtPrice) {
9431
+ return getFeeTimeBaseFeeNumerator(
8930
9432
  this.cliffFeeNumerator,
8931
9433
  this.numberOfPeriod,
8932
9434
  this.periodFrequency,
8933
9435
  this.reductionFactor,
8934
- this.feeSchedulerMode,
9436
+ this.feeTimeSchedulerMode,
8935
9437
  currentPoint,
8936
9438
  activationPoint
8937
9439
  );
8938
9440
  }
8939
- getBaseFeeNumeratorFromExcludedFeeAmount(currentPoint, activationPoint) {
8940
- return getBaseFeeNumerator(
9441
+ getBaseFeeNumeratorFromExcludedFeeAmount(currentPoint, activationPoint, _tradeDirection, _excludedFeeAmount, _initSqrtPrice, _currentSqrtPrice) {
9442
+ return getFeeTimeBaseFeeNumerator(
8941
9443
  this.cliffFeeNumerator,
8942
9444
  this.numberOfPeriod,
8943
9445
  this.periodFrequency,
8944
9446
  this.reductionFactor,
8945
- this.feeSchedulerMode,
9447
+ this.feeTimeSchedulerMode,
8946
9448
  currentPoint,
8947
9449
  activationPoint
8948
9450
  );
8949
9451
  }
9452
+ validateBaseFeeIsStatic(currentPoint, activationPoint) {
9453
+ return validateFeeTimeSchedulerBaseFeeIsStatic(
9454
+ currentPoint,
9455
+ activationPoint,
9456
+ new (0, _bnjs2.default)(this.numberOfPeriod),
9457
+ this.periodFrequency
9458
+ );
9459
+ }
9460
+ getMinBaseFeeNumerator() {
9461
+ return getFeeTimeMinBaseFeeNumerator(
9462
+ this.cliffFeeNumerator,
9463
+ this.numberOfPeriod,
9464
+ this.reductionFactor,
9465
+ this.feeTimeSchedulerMode
9466
+ );
9467
+ }
9468
+ };
9469
+ var FeeMarketCapScheduler = class {
9470
+ constructor(cliffFeeNumerator, numberOfPeriod, sqrtPriceStepBps, schedulerExpirationDuration, reductionFactor, feeMarketCapSchedulerMode) {
9471
+ this.cliffFeeNumerator = cliffFeeNumerator;
9472
+ this.numberOfPeriod = numberOfPeriod;
9473
+ this.sqrtPriceStepBps = sqrtPriceStepBps;
9474
+ this.schedulerExpirationDuration = schedulerExpirationDuration;
9475
+ this.reductionFactor = reductionFactor;
9476
+ this.feeMarketCapSchedulerMode = feeMarketCapSchedulerMode;
9477
+ }
9478
+ validate(_collectFeeMode, _activationType, poolVersion) {
9479
+ return validateFeeMarketCapScheduler(
9480
+ this.cliffFeeNumerator,
9481
+ this.numberOfPeriod,
9482
+ new (0, _bnjs2.default)(this.sqrtPriceStepBps),
9483
+ this.reductionFactor,
9484
+ new (0, _bnjs2.default)(this.schedulerExpirationDuration),
9485
+ this.feeMarketCapSchedulerMode,
9486
+ poolVersion
9487
+ );
9488
+ }
9489
+ getBaseFeeNumeratorFromIncludedFeeAmount(currentPoint, activationPoint, _tradeDirection, _includedFeeAmount, initSqrtPrice, currentSqrtPrice) {
9490
+ return getFeeMarketCapBaseFeeNumerator(
9491
+ this.cliffFeeNumerator,
9492
+ this.numberOfPeriod,
9493
+ this.sqrtPriceStepBps,
9494
+ this.schedulerExpirationDuration,
9495
+ this.reductionFactor,
9496
+ this.feeMarketCapSchedulerMode,
9497
+ currentPoint,
9498
+ activationPoint,
9499
+ initSqrtPrice,
9500
+ currentSqrtPrice
9501
+ );
9502
+ }
9503
+ getBaseFeeNumeratorFromExcludedFeeAmount(currentPoint, activationPoint, _tradeDirection, _excludedFeeAmount, initSqrtPrice, currentSqrtPrice) {
9504
+ return getFeeMarketCapBaseFeeNumerator(
9505
+ this.cliffFeeNumerator,
9506
+ this.numberOfPeriod,
9507
+ this.sqrtPriceStepBps,
9508
+ this.schedulerExpirationDuration,
9509
+ this.reductionFactor,
9510
+ this.feeMarketCapSchedulerMode,
9511
+ currentPoint,
9512
+ activationPoint,
9513
+ initSqrtPrice,
9514
+ currentSqrtPrice
9515
+ );
9516
+ }
9517
+ validateBaseFeeIsStatic(currentPoint, activationPoint) {
9518
+ return validateFeeMarketCapBaseFeeIsStatic(
9519
+ currentPoint,
9520
+ activationPoint,
9521
+ new (0, _bnjs2.default)(this.schedulerExpirationDuration)
9522
+ );
9523
+ }
9524
+ getMinBaseFeeNumerator() {
9525
+ return getFeeMarketCapMinBaseFeeNumerator(
9526
+ this.cliffFeeNumerator,
9527
+ this.numberOfPeriod,
9528
+ this.reductionFactor,
9529
+ this.feeMarketCapSchedulerMode
9530
+ );
9531
+ }
8950
9532
  };
8951
- function getBaseFeeHandler(cliffFeeNumerator, firstFactor, secondFactor, thirdFactor, baseFeeMode) {
9533
+ function getBaseFeeHandler(rawData) {
9534
+ const data = Buffer.from(rawData);
9535
+ const modeIndex = data.readUInt8(8);
9536
+ const baseFeeMode = modeIndex;
8952
9537
  switch (baseFeeMode) {
8953
- case 0 /* FeeSchedulerLinear */:
8954
- case 1 /* FeeSchedulerExponential */: {
8955
- if (secondFactor.length < 8) {
8956
- throw new Error(
8957
- "TypeCastFailed: secondFactor must be at least 8 bytes"
8958
- );
8959
- }
8960
- const periodFrequency = new (0, _bnjs2.default)(
8961
- Buffer.from(secondFactor.slice(0, 8)),
8962
- "le"
9538
+ case 0 /* FeeTimeSchedulerLinear */:
9539
+ case 1 /* FeeTimeSchedulerExponential */: {
9540
+ const poolFees = decodePodAlignedFeeTimeScheduler(data);
9541
+ return new FeeTimeScheduler(
9542
+ poolFees.cliffFeeNumerator,
9543
+ poolFees.numberOfPeriod,
9544
+ poolFees.periodFrequency,
9545
+ poolFees.reductionFactor,
9546
+ poolFees.baseFeeMode
8963
9547
  );
8964
- const feeScheduler = new FeeScheduler(
8965
- cliffFeeNumerator,
8966
- firstFactor,
8967
- periodFrequency,
8968
- thirdFactor,
8969
- baseFeeMode
8970
- );
8971
- return feeScheduler;
8972
9548
  }
8973
9549
  case 2 /* RateLimiter */: {
8974
- if (secondFactor.length < 8) {
8975
- throw new Error(
8976
- "TypeCastFailed: secondFactor must be at least 8 bytes"
8977
- );
8978
- }
8979
- const maxLimiterDuration = Buffer.from(
8980
- secondFactor.slice(0, 4)
8981
- ).readUInt32LE(0);
8982
- const maxFeeBps = Buffer.from(secondFactor.slice(4, 8)).readUInt32LE(0);
8983
- const feeRateLimiter = new FeeRateLimiter(
8984
- cliffFeeNumerator,
8985
- firstFactor,
8986
- maxFeeBps,
8987
- maxLimiterDuration,
8988
- thirdFactor
9550
+ const poolFees = decodePodAlignedFeeRateLimiter(data);
9551
+ return new FeeRateLimiter(
9552
+ poolFees.cliffFeeNumerator,
9553
+ poolFees.feeIncrementBps,
9554
+ poolFees.maxFeeBps,
9555
+ poolFees.maxLimiterDuration,
9556
+ poolFees.referenceAmount
9557
+ );
9558
+ }
9559
+ case 3 /* FeeMarketCapSchedulerLinear */:
9560
+ case 4 /* FeeMarketCapSchedulerExponential */: {
9561
+ const poolFees = decodePodAlignedFeeMarketCapScheduler(data);
9562
+ return new FeeMarketCapScheduler(
9563
+ poolFees.cliffFeeNumerator,
9564
+ poolFees.numberOfPeriod,
9565
+ poolFees.sqrtPriceStepBps,
9566
+ poolFees.schedulerExpirationDuration,
9567
+ poolFees.reductionFactor,
9568
+ poolFees.baseFeeMode
8989
9569
  );
8990
- return feeRateLimiter;
8991
9570
  }
8992
9571
  default:
8993
9572
  throw new Error("Invalid base fee mode");
@@ -9139,7 +9718,7 @@ function getLiquidityDeltaFromAmountB(amountB, lowerSqrtPrice, upperSqrtPrice) {
9139
9718
  }
9140
9719
 
9141
9720
  // src/math/quote.ts
9142
- function getSwapResultFromExactInput(poolState, amountIn, feeMode, tradeDirection, currentPoint) {
9721
+ function getSwapResultFromExactInput(program, poolState, amountIn, feeMode, tradeDirection, currentPoint) {
9143
9722
  let actualProtocolFee = new (0, _bnjs2.default)(0);
9144
9723
  let actualTradingFee = new (0, _bnjs2.default)(0);
9145
9724
  let actualReferralFee = new (0, _bnjs2.default)(0);
@@ -9151,7 +9730,9 @@ function getSwapResultFromExactInput(poolState, amountIn, feeMode, tradeDirectio
9151
9730
  poolState.activationPoint,
9152
9731
  amountIn,
9153
9732
  tradeDirection,
9154
- maxFeeNumerator
9733
+ maxFeeNumerator,
9734
+ poolState.poolFees.initSqrtPrice,
9735
+ poolState.sqrtPrice
9155
9736
  );
9156
9737
  let actualAmountIn;
9157
9738
  if (feeMode.feesOnInput) {
@@ -9250,7 +9831,7 @@ function calculateBtoAFromAmountIn(poolState, amountIn) {
9250
9831
  amountLeft: new (0, _bnjs2.default)(0)
9251
9832
  };
9252
9833
  }
9253
- function getSwapResultFromPartialInput(poolState, amountIn, feeMode, tradeDirection, currentPoint) {
9834
+ function getSwapResultFromPartialInput(program, poolState, amountIn, feeMode, tradeDirection, currentPoint) {
9254
9835
  let actualProtocolFee = new (0, _bnjs2.default)(0);
9255
9836
  let actualTradingFee = new (0, _bnjs2.default)(0);
9256
9837
  let actualReferralFee = new (0, _bnjs2.default)(0);
@@ -9262,7 +9843,9 @@ function getSwapResultFromPartialInput(poolState, amountIn, feeMode, tradeDirect
9262
9843
  poolState.activationPoint,
9263
9844
  amountIn,
9264
9845
  tradeDirection,
9265
- maxFeeNumerator
9846
+ maxFeeNumerator,
9847
+ poolState.poolFees.initSqrtPrice,
9848
+ poolState.sqrtPrice
9266
9849
  );
9267
9850
  let actualAmountIn;
9268
9851
  if (feeMode.feesOnInput) {
@@ -9304,7 +9887,9 @@ function getSwapResultFromPartialInput(poolState, amountIn, feeMode, tradeDirect
9304
9887
  poolState.activationPoint,
9305
9888
  actualAmountIn,
9306
9889
  tradeDirection,
9307
- maxFeeNumerator
9890
+ maxFeeNumerator,
9891
+ poolState.poolFees.initSqrtPrice,
9892
+ poolState.sqrtPrice
9308
9893
  );
9309
9894
  const { includedFeeAmount, feeAmount } = getIncludedFeeAmount(
9310
9895
  tradeFeeNumerator2,
@@ -9424,7 +10009,7 @@ function calculateBtoAFromPartialAmountIn(poolState, amountIn) {
9424
10009
  amountLeft
9425
10010
  };
9426
10011
  }
9427
- function getSwapResultFromExactOutput(poolState, amountOut, feeMode, tradeDirection, currentPoint) {
10012
+ function getSwapResultFromExactOutput(program, poolState, amountOut, feeMode, tradeDirection, currentPoint) {
9428
10013
  let actualProtocolFee = new (0, _bnjs2.default)(0);
9429
10014
  let actualTradingFee = new (0, _bnjs2.default)(0);
9430
10015
  let actualReferralFee = new (0, _bnjs2.default)(0);
@@ -9440,7 +10025,9 @@ function getSwapResultFromExactOutput(poolState, amountOut, feeMode, tradeDirect
9440
10025
  poolState.activationPoint,
9441
10026
  amountOut,
9442
10027
  tradeDirection,
9443
- maxFeeNumerator
10028
+ maxFeeNumerator,
10029
+ poolState.poolFees.initSqrtPrice,
10030
+ poolState.sqrtPrice
9444
10031
  );
9445
10032
  const { includedFeeAmount, feeAmount } = getIncludedFeeAmount(
9446
10033
  tradeFeeNumerator,
@@ -9479,7 +10066,9 @@ function getSwapResultFromExactOutput(poolState, amountOut, feeMode, tradeDirect
9479
10066
  poolState.activationPoint,
9480
10067
  inputAmount,
9481
10068
  tradeDirection,
9482
- maxFeeNumerator
10069
+ maxFeeNumerator,
10070
+ poolState.poolFees.initSqrtPrice,
10071
+ poolState.sqrtPrice
9483
10072
  );
9484
10073
  const { includedFeeAmount, feeAmount } = getIncludedFeeAmount(
9485
10074
  tradeFeeNumerator,
@@ -9553,7 +10142,7 @@ function calculateBtoAFromAmountOut(poolState, amountOut) {
9553
10142
  nextSqrtPrice
9554
10143
  };
9555
10144
  }
9556
- function swapQuoteExactInput(pool, currentPoint, amountIn, slippage, aToB, hasReferral, tokenADecimal, tokenBDecimal, inputTokenInfo, outputTokenInfo) {
10145
+ function swapQuoteExactInput(program, pool, currentPoint, amountIn, slippage, aToB, hasReferral, tokenADecimal, tokenBDecimal, inputTokenInfo, outputTokenInfo) {
9557
10146
  if (amountIn.lte(new (0, _bnjs2.default)(0))) {
9558
10147
  throw new Error("Amount in must be greater than 0");
9559
10148
  }
@@ -9571,6 +10160,7 @@ function swapQuoteExactInput(pool, currentPoint, amountIn, slippage, aToB, hasRe
9571
10160
  ).amount;
9572
10161
  }
9573
10162
  const swapResult = getSwapResultFromExactInput(
10163
+ program,
9574
10164
  pool,
9575
10165
  actualAmountIn,
9576
10166
  feeMode,
@@ -9603,7 +10193,7 @@ function swapQuoteExactInput(pool, currentPoint, amountIn, slippage, aToB, hasRe
9603
10193
  priceImpact
9604
10194
  });
9605
10195
  }
9606
- function swapQuoteExactOutput(pool, currentPoint, amountOut, slippage, aToB, hasReferral, tokenADecimal, tokenBDecimal, inputTokenInfo, outputTokenInfo) {
10196
+ function swapQuoteExactOutput(program, pool, currentPoint, amountOut, slippage, aToB, hasReferral, tokenADecimal, tokenBDecimal, inputTokenInfo, outputTokenInfo) {
9607
10197
  if (amountOut.lte(new (0, _bnjs2.default)(0))) {
9608
10198
  throw new Error("Amount out must be greater than 0");
9609
10199
  }
@@ -9621,6 +10211,7 @@ function swapQuoteExactOutput(pool, currentPoint, amountOut, slippage, aToB, has
9621
10211
  ).amount;
9622
10212
  }
9623
10213
  const swapResult = getSwapResultFromExactOutput(
10214
+ program,
9624
10215
  pool,
9625
10216
  actualAmountOut,
9626
10217
  feeMode,
@@ -9653,7 +10244,7 @@ function swapQuoteExactOutput(pool, currentPoint, amountOut, slippage, aToB, has
9653
10244
  priceImpact
9654
10245
  });
9655
10246
  }
9656
- function swapQuotePartialInput(pool, currentPoint, amountIn, slippage, aToB, hasReferral, tokenADecimal, tokenBDecimal, inputTokenInfo, outputTokenInfo) {
10247
+ function swapQuotePartialInput(program, pool, currentPoint, amountIn, slippage, aToB, hasReferral, tokenADecimal, tokenBDecimal, inputTokenInfo, outputTokenInfo) {
9657
10248
  if (amountIn.lte(new (0, _bnjs2.default)(0))) {
9658
10249
  throw new Error("Amount in must be greater than 0");
9659
10250
  }
@@ -9671,6 +10262,7 @@ function swapQuotePartialInput(pool, currentPoint, amountIn, slippage, aToB, has
9671
10262
  ).amount;
9672
10263
  }
9673
10264
  const swapResult = getSwapResultFromPartialInput(
10265
+ program,
9674
10266
  pool,
9675
10267
  actualAmountIn,
9676
10268
  feeMode,
@@ -9732,13 +10324,13 @@ function calculateInitSqrtPrice(tokenAAmount, tokenBAmount, minSqrtPrice, maxSqr
9732
10324
  }
9733
10325
 
9734
10326
  // src/helpers/validation.ts
9735
- function validateFeeScheduler(numberOfPeriod, periodFrequency, reductionFactor, cliffFeeNumerator, baseFeeMode, poolVersion) {
10327
+ function validateFeeTimeScheduler(numberOfPeriod, periodFrequency, reductionFactor, cliffFeeNumerator, baseFeeMode, poolVersion) {
9736
10328
  if (!periodFrequency.eq(new (0, _bnjs2.default)(0)) || numberOfPeriod !== 0 || !reductionFactor.eq(new (0, _bnjs2.default)(0))) {
9737
10329
  if (numberOfPeriod === 0 || periodFrequency.eq(new (0, _bnjs2.default)(0)) || reductionFactor.eq(new (0, _bnjs2.default)(0))) {
9738
- return false;
10330
+ throw new Error("PoolError::InvalidFeeTimeScheduler");
9739
10331
  }
9740
10332
  }
9741
- const minFeeNumerator = getMinBaseFeeNumerator(
10333
+ const minFeeNumerator = getFeeTimeMinBaseFeeNumerator(
9742
10334
  cliffFeeNumerator,
9743
10335
  numberOfPeriod,
9744
10336
  reductionFactor,
@@ -9752,6 +10344,46 @@ function validateFeeScheduler(numberOfPeriod, periodFrequency, reductionFactor,
9752
10344
  }
9753
10345
  return true;
9754
10346
  }
10347
+ function validateFeeTimeSchedulerBaseFeeIsStatic(currentPoint, activationPoint, numberOfPeriod, periodFrequency) {
10348
+ const schedulerExpirationPoint = activationPoint.add(
10349
+ numberOfPeriod.mul(periodFrequency)
10350
+ );
10351
+ return currentPoint.gt(schedulerExpirationPoint);
10352
+ }
10353
+ function validateFeeMarketCapScheduler(cliffFeeNumerator, numberOfPeriod, sqrtPriceStepBps, reductionFactor, schedulerExpirationDuration, feeMarketCapSchedulerMode, poolVersion) {
10354
+ if (reductionFactor.lte(new (0, _bnjs2.default)(0))) {
10355
+ throw new Error("PoolError::InvalidFeeMarketCapScheduler");
10356
+ }
10357
+ if (sqrtPriceStepBps.lte(new (0, _bnjs2.default)(0))) {
10358
+ throw new Error("PoolError::InvalidFeeMarketCapScheduler");
10359
+ }
10360
+ if (schedulerExpirationDuration.lte(new (0, _bnjs2.default)(0))) {
10361
+ throw new Error("PoolError::InvalidFeeMarketCapScheduler");
10362
+ }
10363
+ if (numberOfPeriod <= 0) {
10364
+ throw new Error("PoolError::InvalidFeeMarketCapScheduler");
10365
+ }
10366
+ const minFeeNumerator = getFeeMarketCapMinBaseFeeNumerator(
10367
+ cliffFeeNumerator,
10368
+ numberOfPeriod,
10369
+ reductionFactor,
10370
+ feeMarketCapSchedulerMode
10371
+ );
10372
+ const maxFeeNumerator = cliffFeeNumerator;
10373
+ validateFeeFraction(minFeeNumerator, new (0, _bnjs2.default)(FEE_DENOMINATOR));
10374
+ validateFeeFraction(maxFeeNumerator, new (0, _bnjs2.default)(FEE_DENOMINATOR));
10375
+ const maxAllowedFeeNumerator = getMaxFeeNumerator(poolVersion);
10376
+ if (minFeeNumerator.lt(new (0, _bnjs2.default)(MIN_FEE_NUMERATOR)) || maxFeeNumerator.gt(maxAllowedFeeNumerator)) {
10377
+ throw new Error("PoolError::ExceedMaxFeeBps");
10378
+ }
10379
+ return true;
10380
+ }
10381
+ function validateFeeMarketCapBaseFeeIsStatic(currentPoint, activationPoint, schedulerExpirationDuration) {
10382
+ const schedulerExpirationPoint = activationPoint.add(
10383
+ schedulerExpirationDuration
10384
+ );
10385
+ return currentPoint.gt(schedulerExpirationPoint);
10386
+ }
9755
10387
  function validateFeeRateLimiter(cliffFeeNumerator, feeIncrementBps, maxFeeBps, maxLimiterDuration, referenceAmount, collectFeeMode, activationType, poolVersion) {
9756
10388
  if (collectFeeMode !== 1 /* OnlyB */) {
9757
10389
  return false;
@@ -9812,6 +10444,20 @@ function validateFeeRateLimiter(cliffFeeNumerator, feeIncrementBps, maxFeeBps, m
9812
10444
  }
9813
10445
  return true;
9814
10446
  }
10447
+ function validateFeeRateLimiterBaseFeeIsStatic(currentPoint, activationPoint, maxLimiterDuration, referenceAmount, maxFeeBps, feeIncrementBps) {
10448
+ if (isZeroRateLimiter(
10449
+ referenceAmount,
10450
+ maxLimiterDuration,
10451
+ maxFeeBps,
10452
+ feeIncrementBps
10453
+ )) {
10454
+ return true;
10455
+ }
10456
+ const lastEffectiveRateLimiterPoint = activationPoint.add(
10457
+ new (0, _bnjs2.default)(maxLimiterDuration)
10458
+ );
10459
+ return currentPoint.gt(lastEffectiveRateLimiterPoint);
10460
+ }
9815
10461
  function validateFeeFraction(numerator, denominator) {
9816
10462
  if (denominator.isZero() || numerator.gte(denominator)) {
9817
10463
  throw new Error(
@@ -9824,6 +10470,124 @@ function validateFeeFraction(numerator, denominator) {
9824
10470
 
9825
10471
 
9826
10472
 
10473
+
10474
+ // src/helpers/feeCodec.ts
10475
+
10476
+
10477
+ var cpAmmCoder = new (0, _anchor.BorshCoder)(cp_amm_default);
10478
+ function encodeFeeTimeSchedulerParams(cliffFeeNumerator, numberOfPeriod, periodFrequency, reductionFactor, baseFeeMode) {
10479
+ const feeTimeScheduler = {
10480
+ cliff_fee_numerator: new (0, _bnjs2.default)(cliffFeeNumerator.toString()),
10481
+ number_of_period: numberOfPeriod,
10482
+ period_frequency: new (0, _bnjs2.default)(periodFrequency.toString()),
10483
+ reduction_factor: new (0, _bnjs2.default)(reductionFactor.toString()),
10484
+ base_fee_mode: baseFeeMode,
10485
+ padding: FEE_PADDING
10486
+ };
10487
+ return cpAmmCoder.types.encode("BorshFeeTimeScheduler", feeTimeScheduler);
10488
+ }
10489
+ function decodeFeeTimeSchedulerParams(data) {
10490
+ const decoded = cpAmmCoder.types.decode("BorshFeeTimeScheduler", data);
10491
+ return {
10492
+ cliffFeeNumerator: decoded.cliff_fee_numerator,
10493
+ numberOfPeriod: decoded.number_of_period,
10494
+ periodFrequency: decoded.period_frequency,
10495
+ reductionFactor: decoded.reduction_factor,
10496
+ baseFeeMode: decoded.base_fee_mode,
10497
+ padding: decoded.padding
10498
+ };
10499
+ }
10500
+ function decodePodAlignedFeeTimeScheduler(data) {
10501
+ const decoded = cpAmmCoder.types.decode("PodAlignedFeeTimeScheduler", data);
10502
+ return {
10503
+ cliffFeeNumerator: decoded.cliff_fee_numerator,
10504
+ numberOfPeriod: decoded.number_of_period,
10505
+ periodFrequency: decoded.period_frequency,
10506
+ reductionFactor: decoded.reduction_factor,
10507
+ baseFeeMode: decoded.base_fee_mode,
10508
+ padding: decoded.padding
10509
+ };
10510
+ }
10511
+ function encodeFeeMarketCapSchedulerParams(cliffFeeNumerator, numberOfPeriod, sqrtPriceStepBps, schedulerExpirationDuration, reductionFactor, baseFeeMode) {
10512
+ const feeMarketCapScheduler = {
10513
+ cliff_fee_numerator: new (0, _bnjs2.default)(cliffFeeNumerator.toString()),
10514
+ number_of_period: numberOfPeriod,
10515
+ sqrt_price_step_bps: sqrtPriceStepBps,
10516
+ scheduler_expiration_duration: schedulerExpirationDuration,
10517
+ reduction_factor: new (0, _bnjs2.default)(reductionFactor.toString()),
10518
+ base_fee_mode: baseFeeMode,
10519
+ padding: FEE_PADDING
10520
+ };
10521
+ return cpAmmCoder.types.encode(
10522
+ "BorshFeeMarketCapScheduler",
10523
+ feeMarketCapScheduler
10524
+ );
10525
+ }
10526
+ function decodeFeeMarketCapSchedulerParams(data) {
10527
+ const decoded = cpAmmCoder.types.decode("BorshFeeMarketCapScheduler", data);
10528
+ return {
10529
+ cliffFeeNumerator: decoded.cliff_fee_numerator,
10530
+ numberOfPeriod: decoded.number_of_period,
10531
+ sqrtPriceStepBps: decoded.sqrt_price_step_bps,
10532
+ schedulerExpirationDuration: decoded.scheduler_expiration_duration,
10533
+ reductionFactor: decoded.reduction_factor,
10534
+ baseFeeMode: decoded.base_fee_mode,
10535
+ padding: decoded.padding
10536
+ };
10537
+ }
10538
+ function decodePodAlignedFeeMarketCapScheduler(data) {
10539
+ const decoded = cpAmmCoder.types.decode(
10540
+ "PodAlignedFeeMarketCapScheduler",
10541
+ data
10542
+ );
10543
+ return {
10544
+ cliffFeeNumerator: decoded.cliff_fee_numerator,
10545
+ numberOfPeriod: decoded.number_of_period,
10546
+ sqrtPriceStepBps: decoded.sqrt_price_step_bps,
10547
+ schedulerExpirationDuration: decoded.scheduler_expiration_duration,
10548
+ reductionFactor: decoded.reduction_factor,
10549
+ baseFeeMode: decoded.base_fee_mode,
10550
+ padding: decoded.padding
10551
+ };
10552
+ }
10553
+ function encodeFeeRateLimiterParams(cliffFeeNumerator, feeIncrementBps, maxLimiterDuration, maxFeeBps, referenceAmount) {
10554
+ const feeRateLimiter = {
10555
+ cliff_fee_numerator: new (0, _bnjs2.default)(cliffFeeNumerator.toString()),
10556
+ fee_increment_bps: feeIncrementBps,
10557
+ max_limiter_duration: maxLimiterDuration,
10558
+ max_fee_bps: maxFeeBps,
10559
+ reference_amount: new (0, _bnjs2.default)(referenceAmount.toString()),
10560
+ base_fee_mode: 2 /* RateLimiter */,
10561
+ padding: FEE_PADDING
10562
+ };
10563
+ return cpAmmCoder.types.encode("BorshFeeRateLimiter", feeRateLimiter);
10564
+ }
10565
+ function decodeFeeRateLimiterParams(data) {
10566
+ const decoded = cpAmmCoder.types.decode("BorshFeeRateLimiter", data);
10567
+ return {
10568
+ cliffFeeNumerator: decoded.cliff_fee_numerator,
10569
+ feeIncrementBps: decoded.fee_increment_bps,
10570
+ maxLimiterDuration: decoded.max_limiter_duration,
10571
+ maxFeeBps: decoded.max_fee_bps,
10572
+ referenceAmount: decoded.reference_amount,
10573
+ baseFeeMode: decoded.base_fee_mode,
10574
+ padding: decoded.padding
10575
+ };
10576
+ }
10577
+ function decodePodAlignedFeeRateLimiter(data) {
10578
+ const decoded = cpAmmCoder.types.decode("PodAlignedFeeRateLimiter", data);
10579
+ return {
10580
+ cliffFeeNumerator: decoded.cliff_fee_numerator,
10581
+ feeIncrementBps: decoded.fee_increment_bps,
10582
+ maxLimiterDuration: decoded.max_limiter_duration,
10583
+ maxFeeBps: decoded.max_fee_bps,
10584
+ referenceAmount: decoded.reference_amount,
10585
+ baseFeeMode: decoded.base_fee_mode,
10586
+ padding: decoded.padding
10587
+ };
10588
+ }
10589
+
10590
+ // src/helpers/common.ts
9827
10591
  function hasPartner(poolState) {
9828
10592
  return !poolState.partner.equals(_web3js.PublicKey.default);
9829
10593
  }
@@ -9875,17 +10639,20 @@ function convertToLamports(amount, tokenDecimal) {
9875
10639
  function fromDecimalToBN(value) {
9876
10640
  return new (0, _bnjs2.default)(value.floor().toFixed());
9877
10641
  }
9878
- function getFeeSchedulerParams(startingBaseFeeBps, endingBaseFeeBps, baseFeeMode, numberOfPeriod, totalDuration) {
10642
+ function getFeeTimeSchedulerParams(startingBaseFeeBps, endingBaseFeeBps, baseFeeMode, numberOfPeriod, totalDuration) {
9879
10643
  if (startingBaseFeeBps == endingBaseFeeBps) {
9880
10644
  if (numberOfPeriod != 0 || totalDuration != 0) {
9881
10645
  throw new Error("numberOfPeriod and totalDuration must both be zero");
9882
10646
  }
10647
+ const data2 = encodeFeeTimeSchedulerParams(
10648
+ bpsToFeeNumerator(startingBaseFeeBps),
10649
+ 0,
10650
+ new (0, _bnjs2.default)(0),
10651
+ new (0, _bnjs2.default)(0),
10652
+ 0 /* FeeTimeSchedulerLinear */
10653
+ );
9883
10654
  return {
9884
- cliffFeeNumerator: bpsToFeeNumerator(startingBaseFeeBps),
9885
- firstFactor: 0,
9886
- secondFactor: Array.from(new (0, _bnjs2.default)(0).toArrayLike(Buffer, "le", 8)),
9887
- thirdFactor: new (0, _bnjs2.default)(0),
9888
- baseFeeMode: 0 /* FeeSchedulerLinear */
10655
+ data: Array.from(data2)
9889
10656
  };
9890
10657
  }
9891
10658
  if (numberOfPeriod <= 0) {
@@ -9910,9 +10677,8 @@ function getFeeSchedulerParams(startingBaseFeeBps, endingBaseFeeBps, baseFeeMode
9910
10677
  const maxBaseFeeNumerator = bpsToFeeNumerator(startingBaseFeeBps);
9911
10678
  const minBaseFeeNumerator = bpsToFeeNumerator(endingBaseFeeBps);
9912
10679
  const periodFrequency = new (0, _bnjs2.default)(totalDuration / numberOfPeriod);
9913
- const secondFactor = convertToFeeSchedulerSecondFactor(periodFrequency);
9914
10680
  let reductionFactor;
9915
- if (baseFeeMode == 0 /* FeeSchedulerLinear */) {
10681
+ if (baseFeeMode == 0 /* FeeTimeSchedulerLinear */) {
9916
10682
  const totalReduction = maxBaseFeeNumerator.sub(minBaseFeeNumerator);
9917
10683
  reductionFactor = totalReduction.divn(numberOfPeriod);
9918
10684
  } else {
@@ -9920,12 +10686,58 @@ function getFeeSchedulerParams(startingBaseFeeBps, endingBaseFeeBps, baseFeeMode
9920
10686
  const decayBase = Math.pow(ratio, 1 / numberOfPeriod);
9921
10687
  reductionFactor = new (0, _bnjs2.default)(BASIS_POINT_MAX * (1 - decayBase));
9922
10688
  }
10689
+ const data = encodeFeeTimeSchedulerParams(
10690
+ maxBaseFeeNumerator,
10691
+ numberOfPeriod,
10692
+ periodFrequency,
10693
+ reductionFactor,
10694
+ baseFeeMode
10695
+ );
9923
10696
  return {
9924
- cliffFeeNumerator: maxBaseFeeNumerator,
9925
- firstFactor: numberOfPeriod,
9926
- secondFactor,
9927
- thirdFactor: reductionFactor,
10697
+ data: Array.from(data)
10698
+ };
10699
+ }
10700
+ function getFeeMarketCapSchedulerParams(startingBaseFeeBps, endingBaseFeeBps, baseFeeMode, numberOfPeriod, sqrtPriceStepBps, schedulerExpirationDuration) {
10701
+ if (numberOfPeriod <= 0) {
10702
+ throw new Error("Total periods must be greater than zero");
10703
+ }
10704
+ const poolMaxFeeBps = getMaxFeeBps(CURRENT_POOL_VERSION);
10705
+ if (startingBaseFeeBps <= endingBaseFeeBps) {
10706
+ throw new Error(
10707
+ `startingBaseFeeBps (${startingBaseFeeBps} bps) must be greater than endingBaseFeeBps (${endingBaseFeeBps} bps)`
10708
+ );
10709
+ }
10710
+ if (startingBaseFeeBps > poolMaxFeeBps) {
10711
+ throw new Error(
10712
+ `startingBaseFeeBps (${startingBaseFeeBps} bps) exceeds maximum allowed value of ${poolMaxFeeBps} bps`
10713
+ );
10714
+ }
10715
+ if (numberOfPeriod == 0 || sqrtPriceStepBps == 0 || schedulerExpirationDuration == 0) {
10716
+ throw new Error(
10717
+ "numberOfPeriod, sqrtPriceStepBps, and schedulerExpirationDuration must be greater than zero"
10718
+ );
10719
+ }
10720
+ const maxBaseFeeNumerator = bpsToFeeNumerator(startingBaseFeeBps);
10721
+ const minBaseFeeNumerator = bpsToFeeNumerator(endingBaseFeeBps);
10722
+ let reductionFactor;
10723
+ if (baseFeeMode == 3 /* FeeMarketCapSchedulerLinear */) {
10724
+ const totalReduction = maxBaseFeeNumerator.sub(minBaseFeeNumerator);
10725
+ reductionFactor = totalReduction.divn(numberOfPeriod);
10726
+ } else {
10727
+ const ratio = minBaseFeeNumerator.toNumber() / maxBaseFeeNumerator.toNumber();
10728
+ const decayBase = Math.pow(ratio, 1 / numberOfPeriod);
10729
+ reductionFactor = new (0, _bnjs2.default)(BASIS_POINT_MAX * (1 - decayBase));
10730
+ }
10731
+ const data = encodeFeeMarketCapSchedulerParams(
10732
+ maxBaseFeeNumerator,
10733
+ numberOfPeriod,
10734
+ sqrtPriceStepBps,
10735
+ schedulerExpirationDuration,
10736
+ reductionFactor,
9928
10737
  baseFeeMode
10738
+ );
10739
+ return {
10740
+ data: Array.from(data)
9929
10741
  };
9930
10742
  }
9931
10743
  function getRateLimiterParams(baseFeeBps, feeIncrementBps, referenceAmount, maxLimiterDuration, maxFeeBps, tokenBDecimal, activationType) {
@@ -9974,55 +10786,83 @@ function getRateLimiterParams(baseFeeBps, feeIncrementBps, referenceAmount, maxL
9974
10786
  referenceAmount,
9975
10787
  tokenBDecimal
9976
10788
  );
9977
- const secondFactor = convertToRateLimiterSecondFactor(
9978
- new (0, _bnjs2.default)(maxLimiterDuration),
9979
- new (0, _bnjs2.default)(maxFeeBps)
10789
+ const data = encodeFeeRateLimiterParams(
10790
+ cliffFeeNumerator,
10791
+ feeIncrementBps,
10792
+ maxLimiterDuration,
10793
+ maxFeeBps,
10794
+ referenceAmountInLamports
9980
10795
  );
9981
10796
  return {
9982
- cliffFeeNumerator,
9983
- firstFactor: feeIncrementBps,
9984
- secondFactor,
9985
- thirdFactor: new (0, _bnjs2.default)(referenceAmountInLamports),
9986
- baseFeeMode: 2 /* RateLimiter */
10797
+ data: Array.from(data)
9987
10798
  };
9988
10799
  }
9989
10800
  function getBaseFeeParams(baseFeeParams, tokenBDecimal, activationType) {
9990
- if (baseFeeParams.baseFeeMode === 2 /* RateLimiter */) {
9991
- if (!baseFeeParams.rateLimiterParam) {
9992
- throw new Error(
9993
- "Rate limiter parameters are required for RateLimiter mode"
10801
+ switch (baseFeeParams.baseFeeMode) {
10802
+ case 0 /* FeeTimeSchedulerLinear */:
10803
+ case 1 /* FeeTimeSchedulerExponential */: {
10804
+ if (!baseFeeParams.feeTimeSchedulerParam) {
10805
+ throw new Error(
10806
+ "Fee scheduler parameters are required for FeeTimeScheduler mode"
10807
+ );
10808
+ }
10809
+ const { startingFeeBps, endingFeeBps, numberOfPeriod, totalDuration } = baseFeeParams.feeTimeSchedulerParam;
10810
+ return getFeeTimeSchedulerParams(
10811
+ startingFeeBps,
10812
+ endingFeeBps,
10813
+ baseFeeParams.baseFeeMode,
10814
+ numberOfPeriod,
10815
+ totalDuration
9994
10816
  );
9995
10817
  }
9996
- const {
9997
- baseFeeBps,
9998
- feeIncrementBps,
9999
- referenceAmount,
10000
- maxLimiterDuration,
10001
- maxFeeBps
10002
- } = baseFeeParams.rateLimiterParam;
10003
- return getRateLimiterParams(
10004
- baseFeeBps,
10005
- feeIncrementBps,
10006
- referenceAmount,
10007
- maxLimiterDuration,
10008
- maxFeeBps,
10009
- tokenBDecimal,
10010
- activationType
10011
- );
10012
- } else {
10013
- if (!baseFeeParams.feeSchedulerParam) {
10014
- throw new Error(
10015
- "Fee scheduler parameters are required for FeeScheduler mode"
10818
+ case 2 /* RateLimiter */: {
10819
+ if (!baseFeeParams.rateLimiterParam) {
10820
+ throw new Error(
10821
+ "Rate limiter parameters are required for RateLimiter mode"
10822
+ );
10823
+ }
10824
+ const {
10825
+ baseFeeBps,
10826
+ feeIncrementBps,
10827
+ referenceAmount,
10828
+ maxLimiterDuration,
10829
+ maxFeeBps
10830
+ } = baseFeeParams.rateLimiterParam;
10831
+ return getRateLimiterParams(
10832
+ baseFeeBps,
10833
+ feeIncrementBps,
10834
+ referenceAmount,
10835
+ maxLimiterDuration,
10836
+ maxFeeBps,
10837
+ tokenBDecimal,
10838
+ activationType
10016
10839
  );
10017
10840
  }
10018
- const { startingFeeBps, endingFeeBps, numberOfPeriod, totalDuration } = baseFeeParams.feeSchedulerParam;
10019
- return getFeeSchedulerParams(
10020
- startingFeeBps,
10021
- endingFeeBps,
10022
- baseFeeParams.baseFeeMode,
10023
- numberOfPeriod,
10024
- totalDuration
10025
- );
10841
+ case 3 /* FeeMarketCapSchedulerLinear */:
10842
+ case 4 /* FeeMarketCapSchedulerExponential */: {
10843
+ if (!baseFeeParams.feeMarketCapSchedulerParam) {
10844
+ throw new Error(
10845
+ "Fee scheduler parameters are required for FeeMarketCapScheduler mode"
10846
+ );
10847
+ }
10848
+ const {
10849
+ startingFeeBps,
10850
+ endingFeeBps,
10851
+ numberOfPeriod,
10852
+ sqrtPriceStepBps,
10853
+ schedulerExpirationDuration
10854
+ } = baseFeeParams.feeMarketCapSchedulerParam;
10855
+ return getFeeMarketCapSchedulerParams(
10856
+ startingFeeBps,
10857
+ endingFeeBps,
10858
+ baseFeeParams.baseFeeMode,
10859
+ numberOfPeriod,
10860
+ sqrtPriceStepBps,
10861
+ schedulerExpirationDuration
10862
+ );
10863
+ }
10864
+ default:
10865
+ throw new Error("Invalid base fee mode");
10026
10866
  }
10027
10867
  }
10028
10868
  function getDynamicFeeParams(baseFeeBps, maxPriceChangeBps = MAX_PRICE_CHANGE_BPS_DEFAULT) {
@@ -10576,6 +11416,36 @@ var CpAmm = class {
10576
11416
  return pools;
10577
11417
  });
10578
11418
  }
11419
+ fetchPoolFees(pool) {
11420
+ return __async(this, null, function* () {
11421
+ const poolState = yield this._program.account.pool.fetchNullable(pool);
11422
+ if (!poolState) {
11423
+ throw new Error(`Pool account: ${pool} not found`);
11424
+ }
11425
+ const data = Buffer.from(poolState.poolFees.baseFee.baseFeeInfo.data);
11426
+ const modeIndex = data.readUInt8(8);
11427
+ const baseFeeMode = modeIndex;
11428
+ switch (baseFeeMode) {
11429
+ case 0 /* FeeTimeSchedulerLinear */:
11430
+ case 1 /* FeeTimeSchedulerExponential */: {
11431
+ const poolFees = decodePodAlignedFeeTimeScheduler(data);
11432
+ return poolFees;
11433
+ }
11434
+ case 2 /* RateLimiter */: {
11435
+ const poolFees = decodePodAlignedFeeRateLimiter(data);
11436
+ return poolFees;
11437
+ }
11438
+ case 3 /* FeeMarketCapSchedulerLinear */:
11439
+ case 4 /* FeeMarketCapSchedulerExponential */: {
11440
+ const poolFees = decodePodAlignedFeeMarketCapScheduler(data);
11441
+ return poolFees;
11442
+ }
11443
+ default: {
11444
+ throw new Error(`Invalid base fee mode: ${baseFeeMode}`);
11445
+ }
11446
+ }
11447
+ });
11448
+ }
10579
11449
  /**
10580
11450
  * Fetches the Position state.
10581
11451
  * @param position - Public key of the position.
@@ -10810,6 +11680,7 @@ var CpAmm = class {
10810
11680
  const aToB = poolState.tokenAMint.equals(inputTokenMint);
10811
11681
  const currentPoint = activationType ? new (0, _bnjs2.default)(currentTime) : new (0, _bnjs2.default)(currentSlot);
10812
11682
  const swapResult = swapQuoteExactInput(
11683
+ this._program,
10813
11684
  poolState,
10814
11685
  currentPoint,
10815
11686
  inAmount,
@@ -10853,6 +11724,7 @@ var CpAmm = class {
10853
11724
  case 0 /* ExactIn */:
10854
11725
  if ("amountIn" in params) {
10855
11726
  return swapQuoteExactInput(
11727
+ this._program,
10856
11728
  poolState,
10857
11729
  currentPoint,
10858
11730
  params.amountIn,
@@ -10869,6 +11741,7 @@ var CpAmm = class {
10869
11741
  case 2 /* ExactOut */:
10870
11742
  if ("amountOut" in params) {
10871
11743
  return swapQuoteExactOutput(
11744
+ this._program,
10872
11745
  poolState,
10873
11746
  currentPoint,
10874
11747
  params.amountOut,
@@ -10885,6 +11758,7 @@ var CpAmm = class {
10885
11758
  case 1 /* PartialFill */:
10886
11759
  if ("amountIn" in params) {
10887
11760
  return swapQuotePartialInput(
11761
+ this._program,
10888
11762
  poolState,
10889
11763
  currentPoint,
10890
11764
  params.amountIn,
@@ -11774,20 +12648,21 @@ var CpAmm = class {
11774
12648
  }
11775
12649
  let { poolState } = params;
11776
12650
  poolState = poolState != null ? poolState : yield this.fetchPoolState(pool);
11777
- const { maxLimiterDuration, maxFeeBps } = parseRateLimiterSecondFactor(
11778
- poolState.poolFees.baseFee.secondFactor
11779
- );
12651
+ const data = Buffer.from(poolState.poolFees.baseFee.baseFeeInfo.data);
12652
+ const modeIndex = data.readUInt8(8);
12653
+ const baseFeeMode = modeIndex;
11780
12654
  let rateLimiterApplied = false;
11781
- if (poolState.poolFees.baseFee.baseFeeMode === 2 /* RateLimiter */) {
12655
+ if (baseFeeMode === 2 /* RateLimiter */) {
11782
12656
  const currentPoint = yield getCurrentPoint(
11783
12657
  this._program.provider.connection,
11784
12658
  poolState.activationType
11785
12659
  );
12660
+ const rateLimiterPoolFees = decodePodAlignedFeeRateLimiter(data);
11786
12661
  rateLimiterApplied = isRateLimiterApplied(
11787
- poolState.poolFees.baseFee.thirdFactor,
11788
- maxLimiterDuration,
11789
- maxFeeBps,
11790
- poolState.poolFees.baseFee.firstFactor,
12662
+ rateLimiterPoolFees.referenceAmount,
12663
+ rateLimiterPoolFees.maxLimiterDuration,
12664
+ rateLimiterPoolFees.maxFeeBps,
12665
+ rateLimiterPoolFees.feeIncrementBps,
11791
12666
  currentPoint,
11792
12667
  poolState.activationPoint,
11793
12668
  tradeDirection
@@ -11884,20 +12759,21 @@ var CpAmm = class {
11884
12759
  }
11885
12760
  let { poolState } = params;
11886
12761
  poolState = poolState != null ? poolState : yield this.fetchPoolState(pool);
11887
- const { maxLimiterDuration, maxFeeBps } = parseRateLimiterSecondFactor(
11888
- poolState.poolFees.baseFee.secondFactor
11889
- );
12762
+ const data = Buffer.from(poolState.poolFees.baseFee.baseFeeInfo.data);
12763
+ const modeIndex = data.readUInt8(8);
12764
+ const baseFeeMode = modeIndex;
11890
12765
  let rateLimiterApplied = false;
11891
- if (poolState.poolFees.baseFee.baseFeeMode === 2 /* RateLimiter */) {
12766
+ if (baseFeeMode === 2 /* RateLimiter */) {
11892
12767
  const currentPoint = yield getCurrentPoint(
11893
12768
  this._program.provider.connection,
11894
12769
  poolState.activationType
11895
12770
  );
12771
+ const rateLimiterPoolFees = decodePodAlignedFeeRateLimiter(data);
11896
12772
  rateLimiterApplied = isRateLimiterApplied(
11897
- poolState.poolFees.baseFee.thirdFactor,
11898
- maxLimiterDuration,
11899
- maxFeeBps,
11900
- poolState.poolFees.baseFee.firstFactor,
12773
+ rateLimiterPoolFees.referenceAmount,
12774
+ rateLimiterPoolFees.maxLimiterDuration,
12775
+ rateLimiterPoolFees.maxFeeBps,
12776
+ rateLimiterPoolFees.feeIncrementBps,
11901
12777
  currentPoint,
11902
12778
  poolState.activationPoint,
11903
12779
  tradeDirection
@@ -12880,5 +13756,30 @@ var CpAmm = class {
12880
13756
 
12881
13757
 
12882
13758
 
12883
- exports.ActivationPoint = ActivationPoint; exports.ActivationType = ActivationType; exports.BASIS_POINT_MAX = BASIS_POINT_MAX; exports.BIN_STEP_BPS_DEFAULT = BIN_STEP_BPS_DEFAULT; exports.BIN_STEP_BPS_U128_DEFAULT = BIN_STEP_BPS_U128_DEFAULT; exports.BaseFeeMode = BaseFeeMode; exports.CP_AMM_PROGRAM_ID = CP_AMM_PROGRAM_ID; exports.CURRENT_POOL_VERSION = CURRENT_POOL_VERSION; exports.CollectFeeMode = CollectFeeMode; exports.CpAmm = CpAmm; exports.CpAmmIdl = cp_amm_default; exports.DYNAMIC_FEE_DECAY_PERIOD_DEFAULT = DYNAMIC_FEE_DECAY_PERIOD_DEFAULT; exports.DYNAMIC_FEE_FILTER_PERIOD_DEFAULT = DYNAMIC_FEE_FILTER_PERIOD_DEFAULT; exports.DYNAMIC_FEE_REDUCTION_FACTOR_DEFAULT = DYNAMIC_FEE_REDUCTION_FACTOR_DEFAULT; exports.DYNAMIC_FEE_ROUNDING_OFFSET = DYNAMIC_FEE_ROUNDING_OFFSET; exports.DYNAMIC_FEE_SCALING_FACTOR = DYNAMIC_FEE_SCALING_FACTOR; exports.FEE_DENOMINATOR = FEE_DENOMINATOR; exports.FeeRateLimiter = FeeRateLimiter; exports.FeeScheduler = FeeScheduler; exports.LIQUIDITY_SCALE = LIQUIDITY_SCALE; exports.MAX = MAX; exports.MAX_CU_BUFFER = MAX_CU_BUFFER; exports.MAX_EXPONENTIAL = MAX_EXPONENTIAL; exports.MAX_FEE_BPS_V0 = MAX_FEE_BPS_V0; exports.MAX_FEE_BPS_V1 = MAX_FEE_BPS_V1; exports.MAX_FEE_NUMERATOR_V0 = MAX_FEE_NUMERATOR_V0; exports.MAX_FEE_NUMERATOR_V1 = MAX_FEE_NUMERATOR_V1; exports.MAX_PRICE_CHANGE_BPS_DEFAULT = MAX_PRICE_CHANGE_BPS_DEFAULT; exports.MAX_RATE_LIMITER_DURATION_IN_SECONDS = MAX_RATE_LIMITER_DURATION_IN_SECONDS; exports.MAX_RATE_LIMITER_DURATION_IN_SLOTS = MAX_RATE_LIMITER_DURATION_IN_SLOTS; exports.MAX_SQRT_PRICE = MAX_SQRT_PRICE; exports.MIN_CU_BUFFER = MIN_CU_BUFFER; exports.MIN_FEE_BPS = MIN_FEE_BPS; exports.MIN_FEE_NUMERATOR = MIN_FEE_NUMERATOR; exports.MIN_SQRT_PRICE = MIN_SQRT_PRICE; exports.ONE_Q64 = ONE_Q64; exports.PoolStatus = PoolStatus; exports.PoolVersion = PoolVersion; exports.Rounding = Rounding; exports.SCALE_OFFSET = SCALE_OFFSET; exports.SPLIT_POSITION_DENOMINATOR = SPLIT_POSITION_DENOMINATOR; exports.SwapMode = SwapMode; exports.TradeDirection = TradeDirection; exports.U128_MAX = U128_MAX; exports.U16_MAX = U16_MAX; exports.U64_MAX = U64_MAX; exports.bpsToFeeNumerator = bpsToFeeNumerator; exports.calculateAtoBFromAmountIn = calculateAtoBFromAmountIn; exports.calculateAtoBFromAmountOut = calculateAtoBFromAmountOut; exports.calculateAtoBFromPartialAmountIn = calculateAtoBFromPartialAmountIn; exports.calculateBtoAFromAmountIn = calculateBtoAFromAmountIn; exports.calculateBtoAFromAmountOut = calculateBtoAFromAmountOut; exports.calculateBtoAFromPartialAmountIn = calculateBtoAFromPartialAmountIn; exports.calculateInitSqrtPrice = calculateInitSqrtPrice; exports.calculateTransferFeeExcludedAmount = calculateTransferFeeExcludedAmount; exports.calculateTransferFeeIncludedAmount = calculateTransferFeeIncludedAmount; exports.convertToFeeSchedulerSecondFactor = convertToFeeSchedulerSecondFactor; exports.convertToLamports = convertToLamports; exports.convertToRateLimiterSecondFactor = convertToRateLimiterSecondFactor; exports.decimalToQ64 = decimalToQ64; exports.deriveClaimFeeOperatorAddress = deriveClaimFeeOperatorAddress; exports.deriveConfigAddress = deriveConfigAddress; exports.deriveCustomizablePoolAddress = deriveCustomizablePoolAddress; exports.derivePoolAddress = derivePoolAddress; exports.derivePoolAuthority = derivePoolAuthority; exports.derivePositionAddress = derivePositionAddress; exports.derivePositionNftAccount = derivePositionNftAccount; exports.deriveRewardVaultAddress = deriveRewardVaultAddress; exports.deriveTokenBadgeAddress = deriveTokenBadgeAddress; exports.deriveTokenVaultAddress = deriveTokenVaultAddress; exports.feeNumeratorToBps = feeNumeratorToBps; exports.fromDecimalToBN = fromDecimalToBN; exports.getAllPositionNftAccountByOwner = getAllPositionNftAccountByOwner; exports.getAllUserPositionNftAccount = getAllUserPositionNftAccount; exports.getAmountAFromLiquidityDelta = getAmountAFromLiquidityDelta; exports.getAmountBFromLiquidityDelta = getAmountBFromLiquidityDelta; exports.getAmountWithSlippage = getAmountWithSlippage; exports.getAvailableVestingLiquidity = getAvailableVestingLiquidity; exports.getBaseFeeHandler = getBaseFeeHandler; exports.getBaseFeeNumerator = getBaseFeeNumerator; exports.getBaseFeeNumeratorByPeriod = getBaseFeeNumeratorByPeriod; exports.getBaseFeeParams = getBaseFeeParams; exports.getCheckedAmounts = getCheckedAmounts; exports.getCurrentPoint = getCurrentPoint; exports.getDynamicFeeNumerator = getDynamicFeeNumerator; exports.getDynamicFeeParams = getDynamicFeeParams; exports.getEstimatedComputeUnitIxWithBuffer = getEstimatedComputeUnitIxWithBuffer; exports.getEstimatedComputeUnitUsageWithBuffer = getEstimatedComputeUnitUsageWithBuffer; exports.getExcludedFeeAmount = getExcludedFeeAmount; exports.getExcludedFeeAmountFromIncludedFeeAmount = getExcludedFeeAmountFromIncludedFeeAmount; exports.getFeeInPeriod = getFeeInPeriod; exports.getFeeMode = getFeeMode; exports.getFeeNumeratorFromExcludedFeeAmount = getFeeNumeratorFromExcludedFeeAmount; exports.getFeeNumeratorFromIncludedFeeAmount = getFeeNumeratorFromIncludedFeeAmount; exports.getFeeNumeratorOnExponentialFeeScheduler = getFeeNumeratorOnExponentialFeeScheduler; exports.getFeeNumeratorOnLinearFeeScheduler = getFeeNumeratorOnLinearFeeScheduler; exports.getFeeOnAmount = getFeeOnAmount; exports.getFeeSchedulerParams = getFeeSchedulerParams; exports.getFirstKey = getFirstKey; exports.getIncludedFeeAmount = getIncludedFeeAmount; exports.getLiquidityDeltaFromAmountA = getLiquidityDeltaFromAmountA; exports.getLiquidityDeltaFromAmountB = getLiquidityDeltaFromAmountB; exports.getMaxAmountWithSlippage = getMaxAmountWithSlippage; exports.getMaxBaseFeeNumerator = getMaxBaseFeeNumerator; exports.getMaxFeeBps = getMaxFeeBps; exports.getMaxFeeNumerator = getMaxFeeNumerator; exports.getMaxIndex = getMaxIndex; exports.getMinBaseFeeNumerator = getMinBaseFeeNumerator; exports.getNextSqrtPriceFromAmountInARoundingUp = getNextSqrtPriceFromAmountInARoundingUp; exports.getNextSqrtPriceFromAmountInBRoundingDown = getNextSqrtPriceFromAmountInBRoundingDown; exports.getNextSqrtPriceFromAmountOutARoundingUp = getNextSqrtPriceFromAmountOutARoundingUp; exports.getNextSqrtPriceFromAmountOutBRoundingDown = getNextSqrtPriceFromAmountOutBRoundingDown; exports.getNextSqrtPriceFromInput = getNextSqrtPriceFromInput; exports.getNextSqrtPriceFromOutput = getNextSqrtPriceFromOutput; exports.getOrCreateATAInstruction = getOrCreateATAInstruction; exports.getPriceChange = getPriceChange; exports.getPriceFromSqrtPrice = getPriceFromSqrtPrice; exports.getPriceImpact = getPriceImpact; exports.getRateLimiterParams = getRateLimiterParams; exports.getRewardInfo = getRewardInfo; exports.getSecondKey = getSecondKey; exports.getSimulationComputeUnits = getSimulationComputeUnits; exports.getSqrtPriceFromPrice = getSqrtPriceFromPrice; exports.getSwapResultFromExactInput = getSwapResultFromExactInput; exports.getSwapResultFromExactOutput = getSwapResultFromExactOutput; exports.getSwapResultFromPartialInput = getSwapResultFromPartialInput; exports.getTokenDecimals = getTokenDecimals; exports.getTokenProgram = getTokenProgram; exports.getTotalFeeNumerator = getTotalFeeNumerator; exports.getTotalLockedLiquidity = getTotalLockedLiquidity; exports.getTotalTradingFeeFromExcludedFeeAmount = getTotalTradingFeeFromExcludedFeeAmount; exports.getTotalTradingFeeFromIncludedFeeAmount = getTotalTradingFeeFromIncludedFeeAmount; exports.getUnClaimLpFee = getUnClaimLpFee; exports.getUserRewardPending = getUserRewardPending; exports.hasPartner = hasPartner; exports.isDynamicFeeEnabled = isDynamicFeeEnabled; exports.isNonZeroRateLimiter = isNonZeroRateLimiter; exports.isRateLimiterApplied = isRateLimiterApplied; exports.isSwapEnabled = isSwapEnabled; exports.isVestingComplete = isVestingComplete; exports.isZeroRateLimiter = isZeroRateLimiter; exports.mulDiv = mulDiv; exports.offsetBasedFilter = offsetBasedFilter; exports.parseFeeSchedulerSecondFactor = parseFeeSchedulerSecondFactor; exports.parseRateLimiterSecondFactor = parseRateLimiterSecondFactor; exports.positionByPoolFilter = positionByPoolFilter; exports.pow = pow; exports.q64ToDecimal = q64ToDecimal; exports.splitFees = splitFees; exports.sqrt = sqrt; exports.swapQuoteExactInput = swapQuoteExactInput; exports.swapQuoteExactOutput = swapQuoteExactOutput; exports.swapQuotePartialInput = swapQuotePartialInput; exports.toNumerator = toNumerator; exports.unwrapSOLInstruction = unwrapSOLInstruction; exports.validateFeeFraction = validateFeeFraction; exports.validateFeeRateLimiter = validateFeeRateLimiter; exports.validateFeeScheduler = validateFeeScheduler; exports.vestingByPositionFilter = vestingByPositionFilter; exports.wrapSOLInstruction = wrapSOLInstruction;
13759
+
13760
+
13761
+
13762
+
13763
+
13764
+
13765
+
13766
+
13767
+
13768
+
13769
+
13770
+
13771
+
13772
+
13773
+
13774
+
13775
+
13776
+
13777
+
13778
+
13779
+
13780
+
13781
+
13782
+
13783
+
13784
+ exports.ActivationPoint = ActivationPoint; exports.ActivationType = ActivationType; exports.BASIS_POINT_MAX = BASIS_POINT_MAX; exports.BIN_STEP_BPS_DEFAULT = BIN_STEP_BPS_DEFAULT; exports.BIN_STEP_BPS_U128_DEFAULT = BIN_STEP_BPS_U128_DEFAULT; exports.BaseFeeMode = BaseFeeMode; exports.CP_AMM_PROGRAM_ID = CP_AMM_PROGRAM_ID; exports.CURRENT_POOL_VERSION = CURRENT_POOL_VERSION; exports.CollectFeeMode = CollectFeeMode; exports.CpAmm = CpAmm; exports.CpAmmIdl = cp_amm_default; exports.DYNAMIC_FEE_DECAY_PERIOD_DEFAULT = DYNAMIC_FEE_DECAY_PERIOD_DEFAULT; exports.DYNAMIC_FEE_FILTER_PERIOD_DEFAULT = DYNAMIC_FEE_FILTER_PERIOD_DEFAULT; exports.DYNAMIC_FEE_REDUCTION_FACTOR_DEFAULT = DYNAMIC_FEE_REDUCTION_FACTOR_DEFAULT; exports.DYNAMIC_FEE_ROUNDING_OFFSET = DYNAMIC_FEE_ROUNDING_OFFSET; exports.DYNAMIC_FEE_SCALING_FACTOR = DYNAMIC_FEE_SCALING_FACTOR; exports.FEE_DENOMINATOR = FEE_DENOMINATOR; exports.FEE_PADDING = FEE_PADDING; exports.FeeMarketCapScheduler = FeeMarketCapScheduler; exports.FeeRateLimiter = FeeRateLimiter; exports.FeeTimeScheduler = FeeTimeScheduler; exports.LIQUIDITY_SCALE = LIQUIDITY_SCALE; exports.MAX = MAX; exports.MAX_CU_BUFFER = MAX_CU_BUFFER; exports.MAX_EXPONENTIAL = MAX_EXPONENTIAL; exports.MAX_FEE_BPS_V0 = MAX_FEE_BPS_V0; exports.MAX_FEE_BPS_V1 = MAX_FEE_BPS_V1; exports.MAX_FEE_NUMERATOR_V0 = MAX_FEE_NUMERATOR_V0; exports.MAX_FEE_NUMERATOR_V1 = MAX_FEE_NUMERATOR_V1; exports.MAX_PRICE_CHANGE_BPS_DEFAULT = MAX_PRICE_CHANGE_BPS_DEFAULT; exports.MAX_RATE_LIMITER_DURATION_IN_SECONDS = MAX_RATE_LIMITER_DURATION_IN_SECONDS; exports.MAX_RATE_LIMITER_DURATION_IN_SLOTS = MAX_RATE_LIMITER_DURATION_IN_SLOTS; exports.MAX_SQRT_PRICE = MAX_SQRT_PRICE; exports.MIN_CU_BUFFER = MIN_CU_BUFFER; exports.MIN_FEE_BPS = MIN_FEE_BPS; exports.MIN_FEE_NUMERATOR = MIN_FEE_NUMERATOR; exports.MIN_SQRT_PRICE = MIN_SQRT_PRICE; exports.ONE_Q64 = ONE_Q64; exports.PoolStatus = PoolStatus; exports.PoolVersion = PoolVersion; exports.Rounding = Rounding; exports.SCALE_OFFSET = SCALE_OFFSET; exports.SPLIT_POSITION_DENOMINATOR = SPLIT_POSITION_DENOMINATOR; exports.SwapMode = SwapMode; exports.TradeDirection = TradeDirection; exports.U128_MAX = U128_MAX; exports.U16_MAX = U16_MAX; exports.U64_MAX = U64_MAX; exports.bpsToFeeNumerator = bpsToFeeNumerator; exports.calculateAtoBFromAmountIn = calculateAtoBFromAmountIn; exports.calculateAtoBFromAmountOut = calculateAtoBFromAmountOut; exports.calculateAtoBFromPartialAmountIn = calculateAtoBFromPartialAmountIn; exports.calculateBtoAFromAmountIn = calculateBtoAFromAmountIn; exports.calculateBtoAFromAmountOut = calculateBtoAFromAmountOut; exports.calculateBtoAFromPartialAmountIn = calculateBtoAFromPartialAmountIn; exports.calculateInitSqrtPrice = calculateInitSqrtPrice; exports.calculateTransferFeeExcludedAmount = calculateTransferFeeExcludedAmount; exports.calculateTransferFeeIncludedAmount = calculateTransferFeeIncludedAmount; exports.convertToFeeSchedulerSecondFactor = convertToFeeSchedulerSecondFactor; exports.convertToLamports = convertToLamports; exports.convertToRateLimiterSecondFactor = convertToRateLimiterSecondFactor; exports.cpAmmCoder = cpAmmCoder; exports.decimalToQ64 = decimalToQ64; exports.decodeFeeMarketCapSchedulerParams = decodeFeeMarketCapSchedulerParams; exports.decodeFeeRateLimiterParams = decodeFeeRateLimiterParams; exports.decodeFeeTimeSchedulerParams = decodeFeeTimeSchedulerParams; exports.decodePodAlignedFeeMarketCapScheduler = decodePodAlignedFeeMarketCapScheduler; exports.decodePodAlignedFeeRateLimiter = decodePodAlignedFeeRateLimiter; exports.decodePodAlignedFeeTimeScheduler = decodePodAlignedFeeTimeScheduler; exports.deriveClaimFeeOperatorAddress = deriveClaimFeeOperatorAddress; exports.deriveConfigAddress = deriveConfigAddress; exports.deriveCustomizablePoolAddress = deriveCustomizablePoolAddress; exports.deriveOperatorAddress = deriveOperatorAddress; exports.derivePoolAddress = derivePoolAddress; exports.derivePoolAuthority = derivePoolAuthority; exports.derivePositionAddress = derivePositionAddress; exports.derivePositionNftAccount = derivePositionNftAccount; exports.deriveRewardVaultAddress = deriveRewardVaultAddress; exports.deriveTokenBadgeAddress = deriveTokenBadgeAddress; exports.deriveTokenVaultAddress = deriveTokenVaultAddress; exports.encodeFeeMarketCapSchedulerParams = encodeFeeMarketCapSchedulerParams; exports.encodeFeeRateLimiterParams = encodeFeeRateLimiterParams; exports.encodeFeeTimeSchedulerParams = encodeFeeTimeSchedulerParams; exports.feeNumeratorToBps = feeNumeratorToBps; exports.fromDecimalToBN = fromDecimalToBN; exports.getAllPositionNftAccountByOwner = getAllPositionNftAccountByOwner; exports.getAllUserPositionNftAccount = getAllUserPositionNftAccount; exports.getAmountAFromLiquidityDelta = getAmountAFromLiquidityDelta; exports.getAmountBFromLiquidityDelta = getAmountBFromLiquidityDelta; exports.getAmountWithSlippage = getAmountWithSlippage; exports.getAvailableVestingLiquidity = getAvailableVestingLiquidity; exports.getBaseFeeHandler = getBaseFeeHandler; exports.getBaseFeeParams = getBaseFeeParams; exports.getCheckedAmounts = getCheckedAmounts; exports.getCurrentPoint = getCurrentPoint; exports.getDynamicFeeNumerator = getDynamicFeeNumerator; exports.getDynamicFeeParams = getDynamicFeeParams; exports.getEstimatedComputeUnitIxWithBuffer = getEstimatedComputeUnitIxWithBuffer; exports.getEstimatedComputeUnitUsageWithBuffer = getEstimatedComputeUnitUsageWithBuffer; exports.getExcludedFeeAmount = getExcludedFeeAmount; exports.getExcludedFeeAmountFromIncludedFeeAmount = getExcludedFeeAmountFromIncludedFeeAmount; exports.getFeeInPeriod = getFeeInPeriod; exports.getFeeMarketCapBaseFeeNumerator = getFeeMarketCapBaseFeeNumerator; exports.getFeeMarketCapBaseFeeNumeratorByPeriod = getFeeMarketCapBaseFeeNumeratorByPeriod; exports.getFeeMarketCapMinBaseFeeNumerator = getFeeMarketCapMinBaseFeeNumerator; exports.getFeeMarketCapSchedulerParams = getFeeMarketCapSchedulerParams; exports.getFeeMode = getFeeMode; exports.getFeeNumeratorFromExcludedFeeAmount = getFeeNumeratorFromExcludedFeeAmount; exports.getFeeNumeratorFromIncludedFeeAmount = getFeeNumeratorFromIncludedFeeAmount; exports.getFeeNumeratorOnExponentialFeeScheduler = getFeeNumeratorOnExponentialFeeScheduler; exports.getFeeNumeratorOnLinearFeeScheduler = getFeeNumeratorOnLinearFeeScheduler; exports.getFeeOnAmount = getFeeOnAmount; exports.getFeeTimeBaseFeeNumerator = getFeeTimeBaseFeeNumerator; exports.getFeeTimeBaseFeeNumeratorByPeriod = getFeeTimeBaseFeeNumeratorByPeriod; exports.getFeeTimeMinBaseFeeNumerator = getFeeTimeMinBaseFeeNumerator; exports.getFeeTimeSchedulerParams = getFeeTimeSchedulerParams; exports.getFirstKey = getFirstKey; exports.getIncludedFeeAmount = getIncludedFeeAmount; exports.getLiquidityDeltaFromAmountA = getLiquidityDeltaFromAmountA; exports.getLiquidityDeltaFromAmountB = getLiquidityDeltaFromAmountB; exports.getMaxAmountWithSlippage = getMaxAmountWithSlippage; exports.getMaxBaseFeeNumerator = getMaxBaseFeeNumerator; exports.getMaxFeeBps = getMaxFeeBps; exports.getMaxFeeNumerator = getMaxFeeNumerator; exports.getMaxIndex = getMaxIndex; exports.getNextSqrtPriceFromAmountInARoundingUp = getNextSqrtPriceFromAmountInARoundingUp; exports.getNextSqrtPriceFromAmountInBRoundingDown = getNextSqrtPriceFromAmountInBRoundingDown; exports.getNextSqrtPriceFromAmountOutARoundingUp = getNextSqrtPriceFromAmountOutARoundingUp; exports.getNextSqrtPriceFromAmountOutBRoundingDown = getNextSqrtPriceFromAmountOutBRoundingDown; exports.getNextSqrtPriceFromInput = getNextSqrtPriceFromInput; exports.getNextSqrtPriceFromOutput = getNextSqrtPriceFromOutput; exports.getOrCreateATAInstruction = getOrCreateATAInstruction; exports.getPriceChange = getPriceChange; exports.getPriceFromSqrtPrice = getPriceFromSqrtPrice; exports.getPriceImpact = getPriceImpact; exports.getRateLimiterParams = getRateLimiterParams; exports.getRewardInfo = getRewardInfo; exports.getSecondKey = getSecondKey; exports.getSimulationComputeUnits = getSimulationComputeUnits; exports.getSqrtPriceFromPrice = getSqrtPriceFromPrice; exports.getSwapResultFromExactInput = getSwapResultFromExactInput; exports.getSwapResultFromExactOutput = getSwapResultFromExactOutput; exports.getSwapResultFromPartialInput = getSwapResultFromPartialInput; exports.getTokenDecimals = getTokenDecimals; exports.getTokenProgram = getTokenProgram; exports.getTotalFeeNumerator = getTotalFeeNumerator; exports.getTotalLockedLiquidity = getTotalLockedLiquidity; exports.getTotalTradingFeeFromExcludedFeeAmount = getTotalTradingFeeFromExcludedFeeAmount; exports.getTotalTradingFeeFromIncludedFeeAmount = getTotalTradingFeeFromIncludedFeeAmount; exports.getUnClaimLpFee = getUnClaimLpFee; exports.getUserRewardPending = getUserRewardPending; exports.hasPartner = hasPartner; exports.hasTransferHookExtension = hasTransferHookExtension; exports.isDynamicFeeEnabled = isDynamicFeeEnabled; exports.isNonZeroRateLimiter = isNonZeroRateLimiter; exports.isRateLimiterApplied = isRateLimiterApplied; exports.isSwapEnabled = isSwapEnabled; exports.isVestingComplete = isVestingComplete; exports.isZeroRateLimiter = isZeroRateLimiter; exports.mulDiv = mulDiv; exports.offsetBasedFilter = offsetBasedFilter; exports.parseFeeSchedulerSecondFactor = parseFeeSchedulerSecondFactor; exports.parseRateLimiterSecondFactor = parseRateLimiterSecondFactor; exports.positionByPoolFilter = positionByPoolFilter; exports.pow = pow; exports.q64ToDecimal = q64ToDecimal; exports.splitFees = splitFees; exports.sqrt = sqrt; exports.swapQuoteExactInput = swapQuoteExactInput; exports.swapQuoteExactOutput = swapQuoteExactOutput; exports.swapQuotePartialInput = swapQuotePartialInput; exports.toBorshFeeTimeScheduler = toBorshFeeTimeScheduler; exports.toNumerator = toNumerator; exports.toPodAlignedFeeTimeScheduler = toPodAlignedFeeTimeScheduler; exports.unwrapSOLInstruction = unwrapSOLInstruction; exports.validateFeeFraction = validateFeeFraction; exports.validateFeeMarketCapBaseFeeIsStatic = validateFeeMarketCapBaseFeeIsStatic; exports.validateFeeMarketCapScheduler = validateFeeMarketCapScheduler; exports.validateFeeRateLimiter = validateFeeRateLimiter; exports.validateFeeRateLimiterBaseFeeIsStatic = validateFeeRateLimiterBaseFeeIsStatic; exports.validateFeeTimeScheduler = validateFeeTimeScheduler; exports.validateFeeTimeSchedulerBaseFeeIsStatic = validateFeeTimeSchedulerBaseFeeIsStatic; exports.validateNoTransferHook = validateNoTransferHook; exports.vestingByPositionFilter = vestingByPositionFilter; exports.wrapSOLInstruction = wrapSOLInstruction;
12884
13785
  //# sourceMappingURL=index.js.map