@flaunch/sdk 0.8.2 → 0.8.3-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/abi/FlaunchZap.d.ts +131 -101
  2. package/dist/abi/FlaunchZap.d.ts.map +1 -1
  3. package/dist/abi/TreasuryManager.d.ts +106 -0
  4. package/dist/abi/TreasuryManager.d.ts.map +1 -0
  5. package/dist/abi/TreasuryManagerFactory.d.ts +243 -243
  6. package/dist/abi/TreasuryManagerFactory.d.ts.map +1 -1
  7. package/dist/abi/index.cjs +483 -329
  8. package/dist/abi/index.cjs.map +1 -1
  9. package/dist/abi/index.js +483 -329
  10. package/dist/abi/index.js.map +1 -1
  11. package/dist/addresses/index.cjs +23 -6
  12. package/dist/addresses/index.cjs.map +1 -1
  13. package/dist/addresses/index.js +21 -7
  14. package/dist/addresses/index.js.map +1 -1
  15. package/dist/addresses.d.ts +6 -1
  16. package/dist/addresses.d.ts.map +1 -1
  17. package/dist/clients/FlaunchZapClient.d.ts +44 -1
  18. package/dist/clients/FlaunchZapClient.d.ts.map +1 -1
  19. package/dist/clients/TreasuryManagerClient.d.ts +60 -0
  20. package/dist/clients/TreasuryManagerClient.d.ts.map +1 -0
  21. package/dist/clients/TreasuryManagerFactoryClient.d.ts +4 -14
  22. package/dist/clients/TreasuryManagerFactoryClient.d.ts.map +1 -1
  23. package/dist/helpers/index.cjs +61 -0
  24. package/dist/helpers/index.cjs.map +1 -1
  25. package/dist/helpers/index.d.ts +1 -0
  26. package/dist/helpers/index.d.ts.map +1 -1
  27. package/dist/helpers/index.js +62 -2
  28. package/dist/helpers/index.js.map +1 -1
  29. package/dist/helpers/permissions.d.ts +10 -0
  30. package/dist/helpers/permissions.d.ts.map +1 -0
  31. package/dist/index.cjs.js +985 -431
  32. package/dist/index.cjs.js.map +1 -1
  33. package/dist/index.esm.js +983 -433
  34. package/dist/index.esm.js.map +1 -1
  35. package/dist/index.umd.js +1 -1
  36. package/dist/index.umd.js.map +1 -1
  37. package/dist/sdk/FlaunchSDK.d.ts +71 -6
  38. package/dist/sdk/FlaunchSDK.d.ts.map +1 -1
  39. package/dist/types.d.ts +8 -0
  40. package/dist/types.d.ts.map +1 -1
  41. package/package.json +1 -1
package/dist/index.cjs.js CHANGED
@@ -5315,7 +5315,7 @@ const sourceId = 5; // goerli
5315
5315
  testnet: true,
5316
5316
  });
5317
5317
 
5318
- // doesn't use FeeEscrow
5318
+ // only old V1.0: doesn't use FeeEscrow
5319
5319
  const FlaunchPositionManagerAddress = {
5320
5320
  [base.id]: "0x51Bba15255406Cfe7099a42183302640ba7dAFDC",
5321
5321
  [baseSepolia.id]: "0x9A7059cA00dA92843906Cb4bCa1D005cE848AFdC",
@@ -5354,6 +5354,16 @@ const ZoraVerifierAddress = {
5354
5354
  [baseSepolia.id]: "0x05a5763e9199b88bb591c6b112d0424b2cd7a99e",
5355
5355
  };
5356
5356
  /** ======== */
5357
+ /** Permissions */
5358
+ const ClosedPermissionsAddress = {
5359
+ [base.id]: "0x0000000000000000000000000000000000000000", // TODO: add mainnet address
5360
+ [baseSepolia.id]: "0x551aeD820CAfaca2f9cD1C637AAc076D05a03AC2",
5361
+ };
5362
+ const WhitelistedPermissionsAddress = {
5363
+ [base.id]: "0x0000000000000000000000000000000000000000", // TODO: add mainnet address
5364
+ [baseSepolia.id]: "0xe8691E8f576A98c41EBB5E984207d4F51386621f",
5365
+ };
5366
+ /** =========== */
5357
5367
  const FeeEscrowAddress = {
5358
5368
  [base.id]: "0x72e6f7948b1B1A343B477F39aAbd2E35E6D27dde",
5359
5369
  [baseSepolia.id]: "0x73E27908b7d35A9251a54799A8ef4C17e4ED9FF9",
@@ -5410,8 +5420,12 @@ const FastFlaunchZapAddress = {
5410
5420
  [baseSepolia.id]: "0x821d9f6075e7971cc71c379081de9d532f5f9957",
5411
5421
  };
5412
5422
  const FlaunchZapAddress = {
5413
- [base.id]: "0xfa9e8528ee95eb109bffd1a2d59cb95b300a672a",
5414
- [baseSepolia.id]: "0xb2f5d987de90e026b61805e60b6002d367461474",
5423
+ [base.id]: "0xfa9e8528ee95eb109bffd1a2d59cb95b300a672a", // TODO: update mainnet address with permissions param
5424
+ [baseSepolia.id]: "0x2871a184410F03F4e2C7C5257d839FB34169496A",
5425
+ };
5426
+ const TreasuryManagerFactoryAddress = {
5427
+ [base.id]: "0x48af8b28DDC5e5A86c4906212fc35Fa808CA8763",
5428
+ [baseSepolia.id]: "0xD2F3C6185e06925dCBE794C6574315b2202E9CcD",
5415
5429
  };
5416
5430
  const RevenueManagerAddress = {
5417
5431
  [base.id]: "0x712fa8ddc7347b4b6b029aa21710f365cd02d898",
@@ -5421,9 +5435,9 @@ const AddressFeeSplitManagerAddress = {
5421
5435
  [base.id]: "0x6baa4ec493a9698dc7388c0f290e29ea3d149f99",
5422
5436
  [baseSepolia.id]: "0xf72dcdee692c188de6b14c6213e849982e04069b",
5423
5437
  };
5424
- const TreasuryManagerFactoryAddress = {
5425
- [base.id]: "0x48af8b28DDC5e5A86c4906212fc35Fa808CA8763",
5426
- [baseSepolia.id]: "0xd2f3c6185e06925dcbe794c6574315b2202e9ccd",
5438
+ const StakingManagerAddress = {
5439
+ [base.id]: "0x0000000000000000000000000000000000000000", // TODO: update mainnet address
5440
+ [baseSepolia.id]: "0x4a59dBAd29981A39BE597081f7f5071843552158",
5427
5441
  };
5428
5442
  const PoolManagerAddress = {
5429
5443
  [base.id]: "0x498581fF718922c3f8e6A244956aF099B2652b2b",
@@ -10811,253 +10825,425 @@ class AnyBidWall {
10811
10825
 
10812
10826
  const FlaunchZapAbi = [
10813
10827
  {
10828
+ type: "constructor",
10814
10829
  inputs: [
10815
10830
  {
10816
- internalType: "contract PositionManager",
10817
10831
  name: "_positionManager",
10818
10832
  type: "address",
10833
+ internalType: "contract PositionManager",
10819
10834
  },
10820
10835
  {
10821
- internalType: "contract Flaunch",
10822
10836
  name: "_flaunchContract",
10823
10837
  type: "address",
10838
+ internalType: "contract Flaunch",
10839
+ },
10840
+ {
10841
+ name: "_flETH",
10842
+ type: "address",
10843
+ internalType: "contract IFLETH",
10844
+ },
10845
+ {
10846
+ name: "_poolSwap",
10847
+ type: "address",
10848
+ internalType: "contract PoolSwap",
10824
10849
  },
10825
- { internalType: "contract IFLETH", name: "_flETH", type: "address" },
10826
- { internalType: "contract PoolSwap", name: "_poolSwap", type: "address" },
10827
10850
  {
10828
- internalType: "contract ITreasuryManagerFactory",
10829
10851
  name: "_treasuryManagerFactory",
10830
10852
  type: "address",
10853
+ internalType: "contract ITreasuryManagerFactory",
10831
10854
  },
10832
10855
  {
10833
- internalType: "contract IMerkleAirdrop",
10834
10856
  name: "_merkleAirdrop",
10835
10857
  type: "address",
10858
+ internalType: "contract IMerkleAirdrop",
10836
10859
  },
10837
10860
  {
10838
- internalType: "contract WhitelistFairLaunch",
10839
10861
  name: "_whitelistFairLaunch",
10840
10862
  type: "address",
10863
+ internalType: "contract WhitelistFairLaunch",
10841
10864
  },
10842
10865
  ],
10843
10866
  stateMutability: "nonpayable",
10844
- type: "constructor",
10845
10867
  },
10846
- { inputs: [], name: "CreatorCannotBeZero", type: "error" },
10847
- { inputs: [], name: "InsufficientMemecoinsForAirdrop", type: "error" },
10868
+ { type: "receive", stateMutability: "payable" },
10848
10869
  {
10870
+ type: "function",
10871
+ name: "calculateFee",
10849
10872
  inputs: [
10850
- { internalType: "uint256", name: "_premineAmount", type: "uint256" },
10851
- { internalType: "uint256", name: "_slippage", type: "uint256" },
10852
- { internalType: "bytes", name: "_initialPriceParams", type: "bytes" },
10873
+ {
10874
+ name: "_premineAmount",
10875
+ type: "uint256",
10876
+ internalType: "uint256",
10877
+ },
10878
+ { name: "_slippage", type: "uint256", internalType: "uint256" },
10879
+ {
10880
+ name: "_initialPriceParams",
10881
+ type: "bytes",
10882
+ internalType: "bytes",
10883
+ },
10853
10884
  ],
10854
- name: "calculateFee",
10855
10885
  outputs: [
10856
- { internalType: "uint256", name: "ethRequired_", type: "uint256" },
10886
+ { name: "ethRequired_", type: "uint256", internalType: "uint256" },
10857
10887
  ],
10858
10888
  stateMutability: "view",
10889
+ },
10890
+ {
10859
10891
  type: "function",
10892
+ name: "deployAndInitializeManager",
10893
+ inputs: [
10894
+ {
10895
+ name: "_managerImplementation",
10896
+ type: "address",
10897
+ internalType: "address",
10898
+ },
10899
+ { name: "_owner", type: "address", internalType: "address" },
10900
+ { name: "_data", type: "bytes", internalType: "bytes" },
10901
+ { name: "_permissions", type: "address", internalType: "address" },
10902
+ ],
10903
+ outputs: [
10904
+ {
10905
+ name: "manager_",
10906
+ type: "address",
10907
+ internalType: "address payable",
10908
+ },
10909
+ ],
10910
+ stateMutability: "nonpayable",
10860
10911
  },
10861
10912
  {
10862
- inputs: [],
10913
+ type: "function",
10863
10914
  name: "flETH",
10864
- outputs: [{ internalType: "contract IFLETH", name: "", type: "address" }],
10915
+ inputs: [],
10916
+ outputs: [{ name: "", type: "address", internalType: "contract IFLETH" }],
10865
10917
  stateMutability: "view",
10866
- type: "function",
10867
10918
  },
10868
10919
  {
10920
+ type: "function",
10921
+ name: "flaunch",
10869
10922
  inputs: [
10870
10923
  {
10924
+ name: "_flaunchParams",
10925
+ type: "tuple",
10926
+ internalType: "struct PositionManager.FlaunchParams",
10871
10927
  components: [
10872
- { internalType: "string", name: "name", type: "string" },
10873
- { internalType: "string", name: "symbol", type: "string" },
10874
- { internalType: "string", name: "tokenUri", type: "string" },
10928
+ { name: "name", type: "string", internalType: "string" },
10929
+ { name: "symbol", type: "string", internalType: "string" },
10930
+ { name: "tokenUri", type: "string", internalType: "string" },
10875
10931
  {
10876
- internalType: "uint256",
10877
10932
  name: "initialTokenFairLaunch",
10878
10933
  type: "uint256",
10934
+ internalType: "uint256",
10879
10935
  },
10880
10936
  {
10881
- internalType: "uint256",
10882
10937
  name: "fairLaunchDuration",
10883
10938
  type: "uint256",
10939
+ internalType: "uint256",
10884
10940
  },
10885
- { internalType: "uint256", name: "premineAmount", type: "uint256" },
10886
- { internalType: "address", name: "creator", type: "address" },
10887
10941
  {
10888
- internalType: "uint24",
10942
+ name: "premineAmount",
10943
+ type: "uint256",
10944
+ internalType: "uint256",
10945
+ },
10946
+ { name: "creator", type: "address", internalType: "address" },
10947
+ {
10889
10948
  name: "creatorFeeAllocation",
10890
10949
  type: "uint24",
10950
+ internalType: "uint24",
10951
+ },
10952
+ {
10953
+ name: "flaunchAt",
10954
+ type: "uint256",
10955
+ internalType: "uint256",
10956
+ },
10957
+ {
10958
+ name: "initialPriceParams",
10959
+ type: "bytes",
10960
+ internalType: "bytes",
10961
+ },
10962
+ {
10963
+ name: "feeCalculatorParams",
10964
+ type: "bytes",
10965
+ internalType: "bytes",
10891
10966
  },
10892
- { internalType: "uint256", name: "flaunchAt", type: "uint256" },
10893
- { internalType: "bytes", name: "initialPriceParams", type: "bytes" },
10894
- { internalType: "bytes", name: "feeCalculatorParams", type: "bytes" },
10895
10967
  ],
10896
- internalType: "struct PositionManager.FlaunchParams",
10897
- name: "_flaunchParams",
10898
- type: "tuple",
10899
10968
  },
10900
10969
  ],
10901
- name: "flaunch",
10902
10970
  outputs: [
10903
- { internalType: "address", name: "memecoin_", type: "address" },
10904
- { internalType: "uint256", name: "ethSpent_", type: "uint256" },
10905
- { internalType: "address", name: "", type: "address" },
10971
+ { name: "memecoin_", type: "address", internalType: "address" },
10972
+ { name: "ethSpent_", type: "uint256", internalType: "uint256" },
10973
+ { name: "", type: "address", internalType: "address" },
10906
10974
  ],
10907
10975
  stateMutability: "payable",
10908
- type: "function",
10909
10976
  },
10910
10977
  {
10978
+ type: "function",
10979
+ name: "flaunch",
10911
10980
  inputs: [
10912
10981
  {
10982
+ name: "_flaunchParams",
10983
+ type: "tuple",
10984
+ internalType: "struct PositionManager.FlaunchParams",
10913
10985
  components: [
10914
- { internalType: "string", name: "name", type: "string" },
10915
- { internalType: "string", name: "symbol", type: "string" },
10916
- { internalType: "string", name: "tokenUri", type: "string" },
10986
+ { name: "name", type: "string", internalType: "string" },
10987
+ { name: "symbol", type: "string", internalType: "string" },
10988
+ { name: "tokenUri", type: "string", internalType: "string" },
10917
10989
  {
10918
- internalType: "uint256",
10919
10990
  name: "initialTokenFairLaunch",
10920
10991
  type: "uint256",
10992
+ internalType: "uint256",
10921
10993
  },
10922
10994
  {
10923
- internalType: "uint256",
10924
10995
  name: "fairLaunchDuration",
10925
10996
  type: "uint256",
10997
+ internalType: "uint256",
10926
10998
  },
10927
- { internalType: "uint256", name: "premineAmount", type: "uint256" },
10928
- { internalType: "address", name: "creator", type: "address" },
10929
10999
  {
10930
- internalType: "uint24",
11000
+ name: "premineAmount",
11001
+ type: "uint256",
11002
+ internalType: "uint256",
11003
+ },
11004
+ { name: "creator", type: "address", internalType: "address" },
11005
+ {
10931
11006
  name: "creatorFeeAllocation",
10932
11007
  type: "uint24",
11008
+ internalType: "uint24",
11009
+ },
11010
+ {
11011
+ name: "flaunchAt",
11012
+ type: "uint256",
11013
+ internalType: "uint256",
11014
+ },
11015
+ {
11016
+ name: "initialPriceParams",
11017
+ type: "bytes",
11018
+ internalType: "bytes",
11019
+ },
11020
+ {
11021
+ name: "feeCalculatorParams",
11022
+ type: "bytes",
11023
+ internalType: "bytes",
10933
11024
  },
10934
- { internalType: "uint256", name: "flaunchAt", type: "uint256" },
10935
- { internalType: "bytes", name: "initialPriceParams", type: "bytes" },
10936
- { internalType: "bytes", name: "feeCalculatorParams", type: "bytes" },
10937
11025
  ],
10938
- internalType: "struct PositionManager.FlaunchParams",
10939
- name: "_flaunchParams",
10940
- type: "tuple",
10941
11026
  },
10942
11027
  {
10943
- components: [
10944
- { internalType: "bytes32", name: "merkleRoot", type: "bytes32" },
10945
- { internalType: "string", name: "merkleIPFSHash", type: "string" },
10946
- { internalType: "uint256", name: "maxTokens", type: "uint256" },
10947
- ],
10948
- internalType: "struct FlaunchZap.WhitelistParams",
10949
11028
  name: "_whitelistParams",
10950
11029
  type: "tuple",
10951
- },
10952
- {
11030
+ internalType: "struct FlaunchZap.WhitelistParams",
10953
11031
  components: [
10954
- { internalType: "uint256", name: "airdropIndex", type: "uint256" },
10955
- { internalType: "uint256", name: "airdropAmount", type: "uint256" },
10956
- { internalType: "uint256", name: "airdropEndTime", type: "uint256" },
10957
- { internalType: "bytes32", name: "merkleRoot", type: "bytes32" },
10958
- { internalType: "string", name: "merkleIPFSHash", type: "string" },
11032
+ {
11033
+ name: "merkleRoot",
11034
+ type: "bytes32",
11035
+ internalType: "bytes32",
11036
+ },
11037
+ {
11038
+ name: "merkleIPFSHash",
11039
+ type: "string",
11040
+ internalType: "string",
11041
+ },
11042
+ {
11043
+ name: "maxTokens",
11044
+ type: "uint256",
11045
+ internalType: "uint256",
11046
+ },
10959
11047
  ],
10960
- internalType: "struct FlaunchZap.AirdropParams",
10961
- name: "_airdropParams",
10962
- type: "tuple",
10963
11048
  },
10964
11049
  {
11050
+ name: "_airdropParams",
11051
+ type: "tuple",
11052
+ internalType: "struct FlaunchZap.AirdropParams",
10965
11053
  components: [
10966
- { internalType: "address", name: "manager", type: "address" },
10967
- { internalType: "bytes", name: "initializeData", type: "bytes" },
10968
- { internalType: "bytes", name: "depositData", type: "bytes" },
11054
+ {
11055
+ name: "airdropIndex",
11056
+ type: "uint256",
11057
+ internalType: "uint256",
11058
+ },
11059
+ {
11060
+ name: "airdropAmount",
11061
+ type: "uint256",
11062
+ internalType: "uint256",
11063
+ },
11064
+ {
11065
+ name: "airdropEndTime",
11066
+ type: "uint256",
11067
+ internalType: "uint256",
11068
+ },
11069
+ {
11070
+ name: "merkleRoot",
11071
+ type: "bytes32",
11072
+ internalType: "bytes32",
11073
+ },
11074
+ {
11075
+ name: "merkleIPFSHash",
11076
+ type: "string",
11077
+ internalType: "string",
11078
+ },
10969
11079
  ],
10970
- internalType: "struct FlaunchZap.TreasuryManagerParams",
11080
+ },
11081
+ {
10971
11082
  name: "_treasuryManagerParams",
10972
11083
  type: "tuple",
11084
+ internalType: "struct FlaunchZap.TreasuryManagerParams",
11085
+ components: [
11086
+ { name: "manager", type: "address", internalType: "address" },
11087
+ {
11088
+ name: "permissions",
11089
+ type: "address",
11090
+ internalType: "address",
11091
+ },
11092
+ {
11093
+ name: "initializeData",
11094
+ type: "bytes",
11095
+ internalType: "bytes",
11096
+ },
11097
+ { name: "depositData", type: "bytes", internalType: "bytes" },
11098
+ ],
10973
11099
  },
10974
11100
  ],
10975
- name: "flaunch",
10976
11101
  outputs: [
10977
- { internalType: "address", name: "memecoin_", type: "address" },
10978
- { internalType: "uint256", name: "ethSpent_", type: "uint256" },
10979
- { internalType: "address", name: "deployedManager_", type: "address" },
11102
+ { name: "memecoin_", type: "address", internalType: "address" },
11103
+ { name: "ethSpent_", type: "uint256", internalType: "uint256" },
11104
+ {
11105
+ name: "deployedManager_",
11106
+ type: "address",
11107
+ internalType: "address",
11108
+ },
10980
11109
  ],
10981
11110
  stateMutability: "payable",
10982
- type: "function",
10983
11111
  },
10984
11112
  {
10985
- inputs: [],
11113
+ type: "function",
10986
11114
  name: "flaunchContract",
10987
- outputs: [{ internalType: "contract Flaunch", name: "", type: "address" }],
11115
+ inputs: [],
11116
+ outputs: [{ name: "", type: "address", internalType: "contract Flaunch" }],
10988
11117
  stateMutability: "view",
10989
- type: "function",
10990
11118
  },
10991
11119
  {
10992
- inputs: [],
11120
+ type: "function",
10993
11121
  name: "merkleAirdrop",
11122
+ inputs: [],
10994
11123
  outputs: [
10995
- { internalType: "contract IMerkleAirdrop", name: "", type: "address" },
11124
+ {
11125
+ name: "",
11126
+ type: "address",
11127
+ internalType: "contract IMerkleAirdrop",
11128
+ },
10996
11129
  ],
10997
11130
  stateMutability: "view",
10998
- type: "function",
10999
11131
  },
11000
11132
  {
11001
- inputs: [],
11133
+ type: "function",
11002
11134
  name: "poolSwap",
11003
- outputs: [{ internalType: "contract PoolSwap", name: "", type: "address" }],
11135
+ inputs: [],
11136
+ outputs: [{ name: "", type: "address", internalType: "contract PoolSwap" }],
11004
11137
  stateMutability: "view",
11005
- type: "function",
11006
11138
  },
11007
11139
  {
11008
- inputs: [],
11140
+ type: "function",
11009
11141
  name: "positionManager",
11142
+ inputs: [],
11010
11143
  outputs: [
11011
- { internalType: "contract PositionManager", name: "", type: "address" },
11144
+ {
11145
+ name: "",
11146
+ type: "address",
11147
+ internalType: "contract PositionManager",
11148
+ },
11012
11149
  ],
11013
11150
  stateMutability: "view",
11014
- type: "function",
11015
11151
  },
11016
11152
  {
11017
- inputs: [],
11153
+ type: "function",
11018
11154
  name: "treasuryManagerFactory",
11155
+ inputs: [],
11019
11156
  outputs: [
11020
11157
  {
11021
- internalType: "contract ITreasuryManagerFactory",
11022
11158
  name: "",
11023
11159
  type: "address",
11160
+ internalType: "contract ITreasuryManagerFactory",
11024
11161
  },
11025
11162
  ],
11026
11163
  stateMutability: "view",
11027
- type: "function",
11028
11164
  },
11029
11165
  {
11030
- inputs: [],
11166
+ type: "function",
11031
11167
  name: "whitelistFairLaunch",
11168
+ inputs: [],
11032
11169
  outputs: [
11033
11170
  {
11034
- internalType: "contract WhitelistFairLaunch",
11035
11171
  name: "",
11036
11172
  type: "address",
11173
+ internalType: "contract WhitelistFairLaunch",
11037
11174
  },
11038
11175
  ],
11039
11176
  stateMutability: "view",
11040
- type: "function",
11041
11177
  },
11042
- { stateMutability: "payable", type: "receive" },
11178
+ { type: "error", name: "CreatorCannotBeZero", inputs: [] },
11179
+ { type: "error", name: "InsufficientMemecoinsForAirdrop", inputs: [] },
11043
11180
  ];
11044
11181
 
11045
- const FlaunchPositionManagerV1_1Abi = [
11046
- {
11047
- inputs: [
11048
- {
11049
- components: [
11050
- { internalType: "address", name: "nativeToken", type: "address" },
11051
- {
11052
- internalType: "contract IPoolManager",
11053
- name: "poolManager",
11054
- type: "address",
11055
- },
11056
- {
11057
- components: [
11058
- { internalType: "uint24", name: "swapFee", type: "uint24" },
11059
- { internalType: "uint24", name: "referrer", type: "uint24" },
11060
- { internalType: "uint24", name: "protocol", type: "uint24" },
11182
+ /**
11183
+ * Enumeration of Flaunch contract versions
11184
+ */
11185
+ exports.FlaunchVersion = void 0;
11186
+ (function (FlaunchVersion) {
11187
+ FlaunchVersion["V1"] = "V1";
11188
+ FlaunchVersion["V1_1"] = "V1_1";
11189
+ FlaunchVersion["V1_1_1"] = "V1_1_1";
11190
+ FlaunchVersion["ANY"] = "ANY";
11191
+ })(exports.FlaunchVersion || (exports.FlaunchVersion = {}));
11192
+ /**
11193
+ * Enumeration of Verifiers for TokenImporter
11194
+ */
11195
+ exports.Verifier = void 0;
11196
+ (function (Verifier) {
11197
+ Verifier["CLANKER"] = "clanker";
11198
+ Verifier["DOPPLER"] = "doppler";
11199
+ Verifier["VIRTUALS"] = "virtuals";
11200
+ Verifier["WHITELIST"] = "whitelist";
11201
+ Verifier["ZORA"] = "zora";
11202
+ })(exports.Verifier || (exports.Verifier = {}));
11203
+ /**
11204
+ * Enumeration of Permissions for TreasuryManagers. Defaults to OPEN.
11205
+ */
11206
+ exports.Permissions = void 0;
11207
+ (function (Permissions) {
11208
+ Permissions["OPEN"] = "open";
11209
+ Permissions["CLOSED"] = "closed";
11210
+ Permissions["WHITELISTED"] = "whitelisted";
11211
+ })(exports.Permissions || (exports.Permissions = {}));
11212
+
11213
+ /**
11214
+ * Maps a Permissions enum value to its corresponding contract address
11215
+ * @param permissions - The permissions enum value
11216
+ * @param chainId - The chain ID to get the address for
11217
+ * @returns The corresponding permissions contract address
11218
+ */
11219
+ function getPermissionsAddress(permissions, chainId) {
11220
+ switch (permissions) {
11221
+ case exports.Permissions.CLOSED:
11222
+ return ClosedPermissionsAddress[chainId];
11223
+ case exports.Permissions.WHITELISTED:
11224
+ return WhitelistedPermissionsAddress[chainId];
11225
+ case exports.Permissions.OPEN:
11226
+ default:
11227
+ return viem.zeroAddress;
11228
+ }
11229
+ }
11230
+
11231
+ const FlaunchPositionManagerV1_1Abi = [
11232
+ {
11233
+ inputs: [
11234
+ {
11235
+ components: [
11236
+ { internalType: "address", name: "nativeToken", type: "address" },
11237
+ {
11238
+ internalType: "contract IPoolManager",
11239
+ name: "poolManager",
11240
+ type: "address",
11241
+ },
11242
+ {
11243
+ components: [
11244
+ { internalType: "uint24", name: "swapFee", type: "uint24" },
11245
+ { internalType: "uint24", name: "referrer", type: "uint24" },
11246
+ { internalType: "uint24", name: "protocol", type: "uint24" },
11061
11247
  { internalType: "bool", name: "active", type: "bool" },
11062
11248
  ],
11063
11249
  internalType: "struct FeeDistributor.FeeDistribution",
@@ -12965,11 +13151,13 @@ class ReadWriteFlaunchZap extends ReadFlaunchZap {
12965
13151
  const _treasuryManagerParams = params.treasuryManagerParams
12966
13152
  ? {
12967
13153
  manager: params.treasuryManagerParams.manager ?? viem.zeroAddress,
13154
+ permissions: params.treasuryManagerParams.permissions ?? exports.Permissions.OPEN,
12968
13155
  initializeData: params.treasuryManagerParams.initializeData ?? "0x",
12969
13156
  depositData: params.treasuryManagerParams.depositData ?? "0x",
12970
13157
  }
12971
13158
  : {
12972
13159
  manager: viem.zeroAddress,
13160
+ permissions: exports.Permissions.OPEN,
12973
13161
  initializeData: "0x",
12974
13162
  depositData: "0x",
12975
13163
  };
@@ -12987,7 +13175,10 @@ class ReadWriteFlaunchZap extends ReadFlaunchZap {
12987
13175
  initialPriceParams,
12988
13176
  feeCalculatorParams: "0x",
12989
13177
  },
12990
- _treasuryManagerParams,
13178
+ _treasuryManagerParams: {
13179
+ ..._treasuryManagerParams,
13180
+ permissions: getPermissionsAddress(_treasuryManagerParams.permissions, this.chainId),
13181
+ },
12991
13182
  _whitelistParams: {
12992
13183
  merkleRoot: viem.zeroHash,
12993
13184
  merkleIPFSHash: "",
@@ -13061,6 +13252,7 @@ class ReadWriteFlaunchZap extends ReadFlaunchZap {
13061
13252
  },
13062
13253
  _treasuryManagerParams: {
13063
13254
  manager: params.revenueManagerInstanceAddress,
13255
+ permissions: getPermissionsAddress(params.treasuryManagerParams?.permissions ?? exports.Permissions.OPEN, this.chainId),
13064
13256
  initializeData: "0x",
13065
13257
  depositData: "0x",
13066
13258
  },
@@ -13178,6 +13370,7 @@ class ReadWriteFlaunchZap extends ReadFlaunchZap {
13178
13370
  },
13179
13371
  _treasuryManagerParams: {
13180
13372
  manager: AddressFeeSplitManagerAddress[this.chainId],
13373
+ permissions: getPermissionsAddress(params.treasuryManagerParams?.permissions ?? exports.Permissions.OPEN, this.chainId),
13181
13374
  initializeData,
13182
13375
  depositData: "0x",
13183
13376
  },
@@ -13212,6 +13405,77 @@ class ReadWriteFlaunchZap extends ReadFlaunchZap {
13212
13405
  tokenUri,
13213
13406
  });
13214
13407
  }
13408
+ /**
13409
+ * Deploys a new revenue manager
13410
+ * @param params - Parameters for deploying the revenue manager
13411
+ * @param params.protocolRecipient - The address of the protocol recipient
13412
+ * @param params.protocolFeePercent - The percentage of the protocol fee
13413
+ * @param params.permissions - The permissions for the revenue manager
13414
+ * @returns Transaction response
13415
+ */
13416
+ deployRevenueManager(params) {
13417
+ const permissionsAddress = getPermissionsAddress(params.permissions ?? exports.Permissions.OPEN, this.chainId);
13418
+ return this.contract.write("deployAndInitializeManager", {
13419
+ _managerImplementation: RevenueManagerAddress[this.chainId],
13420
+ _owner: params.protocolRecipient,
13421
+ _data: viem.encodeAbiParameters([
13422
+ {
13423
+ type: "tuple",
13424
+ components: [
13425
+ { type: "address", name: "protocolRecipient" },
13426
+ { type: "uint256", name: "protocolFee" },
13427
+ ],
13428
+ },
13429
+ ], [
13430
+ {
13431
+ protocolRecipient: params.protocolRecipient,
13432
+ protocolFee: BigInt(params.protocolFeePercent * 100), // Convert percentage to basis points
13433
+ },
13434
+ ]),
13435
+ _permissions: permissionsAddress,
13436
+ });
13437
+ }
13438
+ /**
13439
+ * Deploys a new staking manager
13440
+ * @param params - Parameters for deploying the staking manager
13441
+ * @param params.managerOwner - The address of the manager owner
13442
+ * @param params.stakingToken - The address of the token to be staked
13443
+ * @param params.minEscrowDuration - The minimum duration (in seconds) that the creator's NFT is locked for
13444
+ * @param params.minStakeDuration - The minimum duration (in seconds) that the user's tokens are locked for
13445
+ * @param params.creatorSharePercent - The % share that a creator will earn from their token
13446
+ * @param params.ownerSharePercent - The % share that the manager owner will earn from their token
13447
+ * @param params.permissions - The permissions for the staking manager
13448
+ * @returns Transaction response
13449
+ */
13450
+ deployStakingManager(params) {
13451
+ const permissionsAddress = getPermissionsAddress(params.permissions ?? exports.Permissions.OPEN, this.chainId);
13452
+ const VALID_SHARE_TOTAL = 10000000n; // 5 decimals as BigInt
13453
+ return this.contract.write("deployAndInitializeManager", {
13454
+ _managerImplementation: StakingManagerAddress[this.chainId],
13455
+ _owner: params.managerOwner,
13456
+ _data: viem.encodeAbiParameters([
13457
+ {
13458
+ type: "tuple",
13459
+ components: [
13460
+ { type: "address", name: "stakingToken" },
13461
+ { type: "uint256", name: "minEscrowDuration" },
13462
+ { type: "uint256", name: "minStakeDuration" },
13463
+ { type: "uint256", name: "creatorShare" },
13464
+ { type: "uint256", name: "ownerShare" },
13465
+ ],
13466
+ },
13467
+ ], [
13468
+ {
13469
+ stakingToken: params.stakingToken,
13470
+ minEscrowDuration: params.minEscrowDuration,
13471
+ minStakeDuration: params.minStakeDuration,
13472
+ creatorShare: (BigInt(params.creatorSharePercent) * VALID_SHARE_TOTAL) / 100n,
13473
+ ownerShare: (BigInt(params.ownerSharePercent) * VALID_SHARE_TOTAL) / 100n,
13474
+ },
13475
+ ]),
13476
+ _permissions: permissionsAddress,
13477
+ });
13478
+ }
13215
13479
  }
13216
13480
 
13217
13481
  const FlaunchAbi = [
@@ -17422,28 +17686,6 @@ const TokenImporterAbi = [
17422
17686
  { type: "error", name: "ZeroAddress", inputs: [] },
17423
17687
  ];
17424
17688
 
17425
- /**
17426
- * Enumeration of Flaunch contract versions
17427
- */
17428
- exports.FlaunchVersion = void 0;
17429
- (function (FlaunchVersion) {
17430
- FlaunchVersion["V1"] = "V1";
17431
- FlaunchVersion["V1_1"] = "V1_1";
17432
- FlaunchVersion["V1_1_1"] = "V1_1_1";
17433
- FlaunchVersion["ANY"] = "ANY";
17434
- })(exports.FlaunchVersion || (exports.FlaunchVersion = {}));
17435
- /**
17436
- * Enumeration of Verifiers for TokenImporter
17437
- */
17438
- exports.Verifier = void 0;
17439
- (function (Verifier) {
17440
- Verifier["CLANKER"] = "clanker";
17441
- Verifier["DOPPLER"] = "doppler";
17442
- Verifier["VIRTUALS"] = "virtuals";
17443
- Verifier["WHITELIST"] = "whitelist";
17444
- Verifier["ZORA"] = "zora";
17445
- })(exports.Verifier || (exports.Verifier = {}));
17446
-
17447
17689
  /**
17448
17690
  * Base client for interacting with the TokenImporter contract in read-only mode
17449
17691
  * Provides basic contract initialization
@@ -19856,388 +20098,424 @@ class ReadFlaunchV1_1 {
19856
20098
 
19857
20099
  const TreasuryManagerFactoryAbi = [
19858
20100
  {
20101
+ type: "constructor",
19859
20102
  inputs: [
19860
- { internalType: "address", name: "_protocolOwner", type: "address" },
19861
- { internalType: "address", name: "_feeEscrow", type: "address" },
20103
+ {
20104
+ name: "_protocolOwner",
20105
+ type: "address",
20106
+ internalType: "address",
20107
+ },
20108
+ { name: "_feeEscrow", type: "address", internalType: "address" },
19862
20109
  ],
19863
20110
  stateMutability: "nonpayable",
19864
- type: "constructor",
19865
20111
  },
19866
- { inputs: [], name: "AccessControlBadConfirmation", type: "error" },
19867
20112
  {
19868
- inputs: [
19869
- { internalType: "address", name: "account", type: "address" },
19870
- { internalType: "bytes32", name: "neededRole", type: "bytes32" },
19871
- ],
19872
- name: "AccessControlUnauthorizedAccount",
19873
- type: "error",
20113
+ type: "function",
20114
+ name: "DEFAULT_ADMIN_ROLE",
20115
+ inputs: [],
20116
+ outputs: [{ name: "", type: "bytes32", internalType: "bytes32" }],
20117
+ stateMutability: "view",
19874
20118
  },
19875
- { inputs: [], name: "AlreadyInitialized", type: "error" },
19876
- { inputs: [], name: "NewOwnerIsZeroAddress", type: "error" },
19877
- { inputs: [], name: "NoHandoverRequest", type: "error" },
19878
- { inputs: [], name: "Unauthorized", type: "error" },
19879
- { inputs: [], name: "UnknownManagerImplemention", type: "error" },
19880
20119
  {
19881
- anonymous: false,
20120
+ type: "function",
20121
+ name: "approveManager",
19882
20122
  inputs: [
19883
20123
  {
19884
- indexed: true,
19885
- internalType: "address",
19886
- name: "_manager",
19887
- type: "address",
19888
- },
19889
- {
19890
- indexed: true,
19891
- internalType: "address",
19892
20124
  name: "_managerImplementation",
19893
20125
  type: "address",
20126
+ internalType: "address",
19894
20127
  },
19895
20128
  ],
19896
- name: "ManagerDeployed",
19897
- type: "event",
20129
+ outputs: [],
20130
+ stateMutability: "nonpayable",
19898
20131
  },
19899
20132
  {
19900
- anonymous: false,
20133
+ type: "function",
20134
+ name: "approvedManagerImplementation",
19901
20135
  inputs: [
19902
20136
  {
19903
- indexed: true,
19904
- internalType: "address",
19905
20137
  name: "_managerImplementation",
19906
20138
  type: "address",
20139
+ internalType: "address",
19907
20140
  },
19908
20141
  ],
19909
- name: "ManagerImplementationApproved",
19910
- type: "event",
20142
+ outputs: [{ name: "_approved", type: "bool", internalType: "bool" }],
20143
+ stateMutability: "view",
19911
20144
  },
19912
20145
  {
19913
- anonymous: false,
20146
+ type: "function",
20147
+ name: "cancelOwnershipHandover",
20148
+ inputs: [],
20149
+ outputs: [],
20150
+ stateMutability: "payable",
20151
+ },
20152
+ {
20153
+ type: "function",
20154
+ name: "completeOwnershipHandover",
19914
20155
  inputs: [
19915
- {
19916
- indexed: true,
19917
- internalType: "address",
19918
- name: "_managerImplementation",
19919
- type: "address",
19920
- },
20156
+ { name: "pendingOwner", type: "address", internalType: "address" },
19921
20157
  ],
19922
- name: "ManagerImplementationUnapproved",
19923
- type: "event",
20158
+ outputs: [],
20159
+ stateMutability: "payable",
19924
20160
  },
19925
20161
  {
19926
- anonymous: false,
20162
+ type: "function",
20163
+ name: "deployAndInitializeManager",
19927
20164
  inputs: [
19928
20165
  {
19929
- indexed: true,
19930
- internalType: "address",
19931
- name: "pendingOwner",
20166
+ name: "_managerImplementation",
19932
20167
  type: "address",
20168
+ internalType: "address",
19933
20169
  },
20170
+ { name: "_owner", type: "address", internalType: "address" },
20171
+ { name: "_data", type: "bytes", internalType: "bytes" },
19934
20172
  ],
19935
- name: "OwnershipHandoverCanceled",
19936
- type: "event",
19937
- },
19938
- {
19939
- anonymous: false,
19940
- inputs: [
20173
+ outputs: [
19941
20174
  {
19942
- indexed: true,
19943
- internalType: "address",
19944
- name: "pendingOwner",
20175
+ name: "manager_",
19945
20176
  type: "address",
20177
+ internalType: "address payable",
19946
20178
  },
19947
20179
  ],
19948
- name: "OwnershipHandoverRequested",
19949
- type: "event",
20180
+ stateMutability: "nonpayable",
19950
20181
  },
19951
20182
  {
19952
- anonymous: false,
20183
+ type: "function",
20184
+ name: "deployManager",
19953
20185
  inputs: [
19954
20186
  {
19955
- indexed: true,
19956
- internalType: "address",
19957
- name: "oldOwner",
20187
+ name: "_managerImplementation",
19958
20188
  type: "address",
20189
+ internalType: "address",
19959
20190
  },
20191
+ ],
20192
+ outputs: [
19960
20193
  {
19961
- indexed: true,
19962
- internalType: "address",
19963
- name: "newOwner",
20194
+ name: "manager_",
19964
20195
  type: "address",
20196
+ internalType: "address payable",
19965
20197
  },
19966
20198
  ],
19967
- name: "OwnershipTransferred",
19968
- type: "event",
20199
+ stateMutability: "nonpayable",
19969
20200
  },
19970
20201
  {
19971
- anonymous: false,
20202
+ type: "function",
20203
+ name: "feeEscrow",
20204
+ inputs: [],
20205
+ outputs: [
20206
+ { name: "", type: "address", internalType: "contract IFeeEscrow" },
20207
+ ],
20208
+ stateMutability: "view",
20209
+ },
20210
+ {
20211
+ type: "function",
20212
+ name: "getRoleAdmin",
20213
+ inputs: [{ name: "role", type: "bytes32", internalType: "bytes32" }],
20214
+ outputs: [{ name: "", type: "bytes32", internalType: "bytes32" }],
20215
+ stateMutability: "view",
20216
+ },
20217
+ {
20218
+ type: "function",
20219
+ name: "grantRole",
19972
20220
  inputs: [
19973
- { indexed: true, internalType: "bytes32", name: "role", type: "bytes32" },
19974
- {
19975
- indexed: true,
19976
- internalType: "bytes32",
19977
- name: "previousAdminRole",
19978
- type: "bytes32",
19979
- },
19980
- {
19981
- indexed: true,
19982
- internalType: "bytes32",
19983
- name: "newAdminRole",
19984
- type: "bytes32",
19985
- },
20221
+ { name: "role", type: "bytes32", internalType: "bytes32" },
20222
+ { name: "account", type: "address", internalType: "address" },
19986
20223
  ],
19987
- name: "RoleAdminChanged",
19988
- type: "event",
20224
+ outputs: [],
20225
+ stateMutability: "nonpayable",
19989
20226
  },
19990
20227
  {
19991
- anonymous: false,
20228
+ type: "function",
20229
+ name: "hasRole",
19992
20230
  inputs: [
19993
- { indexed: true, internalType: "bytes32", name: "role", type: "bytes32" },
19994
- {
19995
- indexed: true,
19996
- internalType: "address",
19997
- name: "account",
19998
- type: "address",
19999
- },
20000
- {
20001
- indexed: true,
20002
- internalType: "address",
20003
- name: "sender",
20004
- type: "address",
20005
- },
20231
+ { name: "role", type: "bytes32", internalType: "bytes32" },
20232
+ { name: "account", type: "address", internalType: "address" },
20006
20233
  ],
20007
- name: "RoleGranted",
20008
- type: "event",
20234
+ outputs: [{ name: "", type: "bool", internalType: "bool" }],
20235
+ stateMutability: "view",
20009
20236
  },
20010
20237
  {
20011
- anonymous: false,
20012
- inputs: [
20013
- { indexed: true, internalType: "bytes32", name: "role", type: "bytes32" },
20238
+ type: "function",
20239
+ name: "managerImplementation",
20240
+ inputs: [{ name: "_manager", type: "address", internalType: "address" }],
20241
+ outputs: [
20014
20242
  {
20015
- indexed: true,
20016
- internalType: "address",
20017
- name: "account",
20243
+ name: "_managerImplementation",
20018
20244
  type: "address",
20019
- },
20020
- {
20021
- indexed: true,
20022
20245
  internalType: "address",
20023
- name: "sender",
20024
- type: "address",
20025
20246
  },
20026
20247
  ],
20027
- name: "RoleRevoked",
20028
- type: "event",
20248
+ stateMutability: "view",
20029
20249
  },
20030
20250
  {
20251
+ type: "function",
20252
+ name: "owner",
20031
20253
  inputs: [],
20032
- name: "DEFAULT_ADMIN_ROLE",
20033
- outputs: [{ internalType: "bytes32", name: "", type: "bytes32" }],
20254
+ outputs: [{ name: "result", type: "address", internalType: "address" }],
20034
20255
  stateMutability: "view",
20035
- type: "function",
20036
20256
  },
20037
20257
  {
20258
+ type: "function",
20259
+ name: "ownershipHandoverExpiresAt",
20038
20260
  inputs: [
20039
- {
20040
- internalType: "address",
20041
- name: "_managerImplementation",
20042
- type: "address",
20043
- },
20261
+ { name: "pendingOwner", type: "address", internalType: "address" },
20044
20262
  ],
20045
- name: "approveManager",
20046
- outputs: [],
20047
- stateMutability: "nonpayable",
20263
+ outputs: [{ name: "result", type: "uint256", internalType: "uint256" }],
20264
+ stateMutability: "view",
20265
+ },
20266
+ {
20048
20267
  type: "function",
20268
+ name: "renounceOwnership",
20269
+ inputs: [],
20270
+ outputs: [],
20271
+ stateMutability: "payable",
20049
20272
  },
20050
20273
  {
20274
+ type: "function",
20275
+ name: "renounceRole",
20051
20276
  inputs: [
20277
+ { name: "role", type: "bytes32", internalType: "bytes32" },
20052
20278
  {
20053
- internalType: "address",
20054
- name: "_managerImplementation",
20279
+ name: "callerConfirmation",
20055
20280
  type: "address",
20281
+ internalType: "address",
20056
20282
  },
20057
20283
  ],
20058
- name: "approvedManagerImplementation",
20059
- outputs: [{ internalType: "bool", name: "_approved", type: "bool" }],
20060
- stateMutability: "view",
20061
- type: "function",
20284
+ outputs: [],
20285
+ stateMutability: "nonpayable",
20062
20286
  },
20063
20287
  {
20288
+ type: "function",
20289
+ name: "requestOwnershipHandover",
20064
20290
  inputs: [],
20065
- name: "cancelOwnershipHandover",
20066
20291
  outputs: [],
20067
20292
  stateMutability: "payable",
20068
- type: "function",
20069
20293
  },
20070
20294
  {
20295
+ type: "function",
20296
+ name: "revokeRole",
20071
20297
  inputs: [
20072
- { internalType: "address", name: "pendingOwner", type: "address" },
20298
+ { name: "role", type: "bytes32", internalType: "bytes32" },
20299
+ { name: "account", type: "address", internalType: "address" },
20073
20300
  ],
20074
- name: "completeOwnershipHandover",
20075
20301
  outputs: [],
20076
- stateMutability: "payable",
20302
+ stateMutability: "nonpayable",
20303
+ },
20304
+ {
20305
+ type: "function",
20306
+ name: "supportsInterface",
20307
+ inputs: [{ name: "interfaceId", type: "bytes4", internalType: "bytes4" }],
20308
+ outputs: [{ name: "", type: "bool", internalType: "bool" }],
20309
+ stateMutability: "view",
20310
+ },
20311
+ {
20077
20312
  type: "function",
20313
+ name: "transferOwnership",
20314
+ inputs: [{ name: "newOwner", type: "address", internalType: "address" }],
20315
+ outputs: [],
20316
+ stateMutability: "payable",
20078
20317
  },
20079
20318
  {
20319
+ type: "function",
20320
+ name: "unapproveManager",
20080
20321
  inputs: [
20081
20322
  {
20082
- internalType: "address",
20083
20323
  name: "_managerImplementation",
20084
20324
  type: "address",
20325
+ internalType: "address",
20085
20326
  },
20086
- { internalType: "address", name: "_owner", type: "address" },
20087
- { internalType: "bytes", name: "_data", type: "bytes" },
20088
- ],
20089
- name: "deployAndInitializeManager",
20090
- outputs: [
20091
- { internalType: "address payable", name: "manager_", type: "address" },
20092
20327
  ],
20328
+ outputs: [],
20093
20329
  stateMutability: "nonpayable",
20094
- type: "function",
20095
20330
  },
20096
20331
  {
20332
+ type: "event",
20333
+ name: "ManagerDeployed",
20097
20334
  inputs: [
20098
20335
  {
20336
+ name: "_manager",
20337
+ type: "address",
20338
+ indexed: true,
20099
20339
  internalType: "address",
20340
+ },
20341
+ {
20100
20342
  name: "_managerImplementation",
20101
20343
  type: "address",
20344
+ indexed: true,
20345
+ internalType: "address",
20102
20346
  },
20103
20347
  ],
20104
- name: "deployManager",
20105
- outputs: [
20106
- { internalType: "address payable", name: "manager_", type: "address" },
20107
- ],
20108
- stateMutability: "nonpayable",
20109
- type: "function",
20348
+ anonymous: false,
20110
20349
  },
20111
20350
  {
20112
- inputs: [],
20113
- name: "feeEscrow",
20114
- outputs: [
20115
- { internalType: "contract IFeeEscrow", name: "", type: "address" },
20351
+ type: "event",
20352
+ name: "ManagerImplementationApproved",
20353
+ inputs: [
20354
+ {
20355
+ name: "_managerImplementation",
20356
+ type: "address",
20357
+ indexed: true,
20358
+ internalType: "address",
20359
+ },
20116
20360
  ],
20117
- stateMutability: "view",
20118
- type: "function",
20119
- },
20120
- {
20121
- inputs: [{ internalType: "bytes32", name: "role", type: "bytes32" }],
20122
- name: "getRoleAdmin",
20123
- outputs: [{ internalType: "bytes32", name: "", type: "bytes32" }],
20124
- stateMutability: "view",
20125
- type: "function",
20361
+ anonymous: false,
20126
20362
  },
20127
20363
  {
20364
+ type: "event",
20365
+ name: "ManagerImplementationUnapproved",
20128
20366
  inputs: [
20129
- { internalType: "bytes32", name: "role", type: "bytes32" },
20130
- { internalType: "address", name: "account", type: "address" },
20367
+ {
20368
+ name: "_managerImplementation",
20369
+ type: "address",
20370
+ indexed: true,
20371
+ internalType: "address",
20372
+ },
20131
20373
  ],
20132
- name: "grantRole",
20133
- outputs: [],
20134
- stateMutability: "nonpayable",
20135
- type: "function",
20374
+ anonymous: false,
20136
20375
  },
20137
20376
  {
20377
+ type: "event",
20378
+ name: "OwnershipHandoverCanceled",
20138
20379
  inputs: [
20139
- { internalType: "bytes32", name: "role", type: "bytes32" },
20140
- { internalType: "address", name: "account", type: "address" },
20380
+ {
20381
+ name: "pendingOwner",
20382
+ type: "address",
20383
+ indexed: true,
20384
+ internalType: "address",
20385
+ },
20141
20386
  ],
20142
- name: "hasRole",
20143
- outputs: [{ internalType: "bool", name: "", type: "bool" }],
20144
- stateMutability: "view",
20145
- type: "function",
20387
+ anonymous: false,
20146
20388
  },
20147
20389
  {
20148
- inputs: [{ internalType: "address", name: "_manager", type: "address" }],
20149
- name: "managerImplementation",
20150
- outputs: [
20390
+ type: "event",
20391
+ name: "OwnershipHandoverRequested",
20392
+ inputs: [
20151
20393
  {
20152
- internalType: "address",
20153
- name: "_managerImplementation",
20394
+ name: "pendingOwner",
20154
20395
  type: "address",
20396
+ indexed: true,
20397
+ internalType: "address",
20155
20398
  },
20156
20399
  ],
20157
- stateMutability: "view",
20158
- type: "function",
20159
- },
20160
- {
20161
- inputs: [],
20162
- name: "owner",
20163
- outputs: [{ internalType: "address", name: "result", type: "address" }],
20164
- stateMutability: "view",
20165
- type: "function",
20400
+ anonymous: false,
20166
20401
  },
20167
20402
  {
20403
+ type: "event",
20404
+ name: "OwnershipTransferred",
20168
20405
  inputs: [
20169
- { internalType: "address", name: "pendingOwner", type: "address" },
20406
+ {
20407
+ name: "oldOwner",
20408
+ type: "address",
20409
+ indexed: true,
20410
+ internalType: "address",
20411
+ },
20412
+ {
20413
+ name: "newOwner",
20414
+ type: "address",
20415
+ indexed: true,
20416
+ internalType: "address",
20417
+ },
20170
20418
  ],
20171
- name: "ownershipHandoverExpiresAt",
20172
- outputs: [{ internalType: "uint256", name: "result", type: "uint256" }],
20173
- stateMutability: "view",
20174
- type: "function",
20175
- },
20176
- {
20177
- inputs: [],
20178
- name: "renounceOwnership",
20179
- outputs: [],
20180
- stateMutability: "payable",
20181
- type: "function",
20419
+ anonymous: false,
20182
20420
  },
20183
20421
  {
20422
+ type: "event",
20423
+ name: "RoleAdminChanged",
20184
20424
  inputs: [
20185
- { internalType: "bytes32", name: "role", type: "bytes32" },
20186
- { internalType: "address", name: "callerConfirmation", type: "address" },
20425
+ {
20426
+ name: "role",
20427
+ type: "bytes32",
20428
+ indexed: true,
20429
+ internalType: "bytes32",
20430
+ },
20431
+ {
20432
+ name: "previousAdminRole",
20433
+ type: "bytes32",
20434
+ indexed: true,
20435
+ internalType: "bytes32",
20436
+ },
20437
+ {
20438
+ name: "newAdminRole",
20439
+ type: "bytes32",
20440
+ indexed: true,
20441
+ internalType: "bytes32",
20442
+ },
20187
20443
  ],
20188
- name: "renounceRole",
20189
- outputs: [],
20190
- stateMutability: "nonpayable",
20191
- type: "function",
20192
- },
20193
- {
20194
- inputs: [],
20195
- name: "requestOwnershipHandover",
20196
- outputs: [],
20197
- stateMutability: "payable",
20198
- type: "function",
20444
+ anonymous: false,
20199
20445
  },
20200
20446
  {
20447
+ type: "event",
20448
+ name: "RoleGranted",
20201
20449
  inputs: [
20202
- { internalType: "bytes32", name: "role", type: "bytes32" },
20203
- { internalType: "address", name: "account", type: "address" },
20450
+ {
20451
+ name: "role",
20452
+ type: "bytes32",
20453
+ indexed: true,
20454
+ internalType: "bytes32",
20455
+ },
20456
+ {
20457
+ name: "account",
20458
+ type: "address",
20459
+ indexed: true,
20460
+ internalType: "address",
20461
+ },
20462
+ {
20463
+ name: "sender",
20464
+ type: "address",
20465
+ indexed: true,
20466
+ internalType: "address",
20467
+ },
20204
20468
  ],
20205
- name: "revokeRole",
20206
- outputs: [],
20207
- stateMutability: "nonpayable",
20208
- type: "function",
20209
- },
20210
- {
20211
- inputs: [{ internalType: "bytes4", name: "interfaceId", type: "bytes4" }],
20212
- name: "supportsInterface",
20213
- outputs: [{ internalType: "bool", name: "", type: "bool" }],
20214
- stateMutability: "view",
20215
- type: "function",
20216
- },
20217
- {
20218
- inputs: [{ internalType: "address", name: "newOwner", type: "address" }],
20219
- name: "transferOwnership",
20220
- outputs: [],
20221
- stateMutability: "payable",
20222
- type: "function",
20469
+ anonymous: false,
20223
20470
  },
20224
20471
  {
20472
+ type: "event",
20473
+ name: "RoleRevoked",
20225
20474
  inputs: [
20226
20475
  {
20476
+ name: "role",
20477
+ type: "bytes32",
20478
+ indexed: true,
20479
+ internalType: "bytes32",
20480
+ },
20481
+ {
20482
+ name: "account",
20483
+ type: "address",
20484
+ indexed: true,
20227
20485
  internalType: "address",
20228
- name: "_managerImplementation",
20486
+ },
20487
+ {
20488
+ name: "sender",
20229
20489
  type: "address",
20490
+ indexed: true,
20491
+ internalType: "address",
20230
20492
  },
20231
20493
  ],
20232
- name: "unapproveManager",
20233
- outputs: [],
20234
- stateMutability: "nonpayable",
20235
- type: "function",
20494
+ anonymous: false,
20236
20495
  },
20496
+ { type: "error", name: "AccessControlBadConfirmation", inputs: [] },
20497
+ {
20498
+ type: "error",
20499
+ name: "AccessControlUnauthorizedAccount",
20500
+ inputs: [
20501
+ { name: "account", type: "address", internalType: "address" },
20502
+ { name: "neededRole", type: "bytes32", internalType: "bytes32" },
20503
+ ],
20504
+ },
20505
+ { type: "error", name: "AlreadyInitialized", inputs: [] },
20506
+ { type: "error", name: "NewOwnerIsZeroAddress", inputs: [] },
20507
+ { type: "error", name: "NoHandoverRequest", inputs: [] },
20508
+ { type: "error", name: "Unauthorized", inputs: [] },
20509
+ { type: "error", name: "UnknownManagerImplemention", inputs: [] },
20237
20510
  ];
20238
20511
 
20512
+ const chainIdToChain = {
20513
+ [base.id]: base,
20514
+ [baseSepolia.id]: baseSepolia,
20515
+ };
20516
+
20239
20517
  class ReadTreasuryManagerFactory {
20240
- constructor(address, drift$1 = drift.createDrift()) {
20518
+ constructor(chainId, address, drift$1 = drift.createDrift()) {
20241
20519
  if (!address) {
20242
20520
  throw new Error("Address is required");
20243
20521
  }
@@ -20245,39 +20523,35 @@ class ReadTreasuryManagerFactory {
20245
20523
  abi: TreasuryManagerFactoryAbi,
20246
20524
  address,
20247
20525
  });
20526
+ this.chainId = chainId;
20527
+ }
20528
+ async getManagerDeployedAddressFromTx(hash) {
20529
+ // Create a public client to get the transaction receipt with logs
20530
+ const publicClient = viem.createPublicClient({
20531
+ chain: chainIdToChain[this.chainId],
20532
+ transport: viem.http(),
20533
+ });
20534
+ // Wait for transaction receipt
20535
+ const receipt = await publicClient.waitForTransactionReceipt({ hash });
20536
+ // Get the logs from the receipt and find the ManagerDeployed event
20537
+ const events = await publicClient.getContractEvents({
20538
+ address: this.contract.address,
20539
+ abi: TreasuryManagerFactoryAbi,
20540
+ eventName: "ManagerDeployed",
20541
+ fromBlock: receipt.blockNumber,
20542
+ toBlock: receipt.blockNumber,
20543
+ });
20544
+ // Find the event from our transaction
20545
+ const event = events.find((e) => e.transactionHash === hash);
20546
+ if (!event) {
20547
+ throw new Error("ManagerDeployed event not found in transaction logs");
20548
+ }
20549
+ return event.args._manager;
20248
20550
  }
20249
20551
  }
20250
20552
  class ReadWriteTreasuryManagerFactory extends ReadTreasuryManagerFactory {
20251
20553
  constructor(chainId, address, drift$1 = drift.createDrift()) {
20252
- super(address, drift$1);
20253
- this.chainId = chainId;
20254
- }
20255
- /**
20256
- * Deploys a new revenue manager
20257
- * @param params - Parameters for deploying the revenue manager
20258
- * @param params.protocolRecipient - The address of the protocol recipient
20259
- * @param params.protocolFeePercent - The percentage of the protocol fee
20260
- * @returns Transaction response
20261
- */
20262
- deployRevenueManager(params) {
20263
- return this.contract.write("deployAndInitializeManager", {
20264
- _managerImplementation: RevenueManagerAddress[this.chainId],
20265
- _owner: params.protocolRecipient,
20266
- _data: viem.encodeAbiParameters([
20267
- {
20268
- type: "tuple",
20269
- components: [
20270
- { type: "address", name: "protocolRecipient" },
20271
- { type: "uint256", name: "protocolFee" },
20272
- ],
20273
- },
20274
- ], [
20275
- {
20276
- protocolRecipient: params.protocolRecipient,
20277
- protocolFee: BigInt(params.protocolFeePercent * 100), // Convert percentage to basis points
20278
- },
20279
- ]),
20280
- });
20554
+ super(chainId, address, drift$1);
20281
20555
  }
20282
20556
  }
20283
20557
 
@@ -21414,6 +21688,185 @@ class ReadWriteRevenueManager extends ReadRevenueManager {
21414
21688
  }
21415
21689
  }
21416
21690
 
21691
+ const TreasuryManagerAbi = [
21692
+ {
21693
+ type: "function",
21694
+ name: "deposit",
21695
+ inputs: [
21696
+ {
21697
+ name: "_flaunchToken",
21698
+ type: "tuple",
21699
+ internalType: "struct ITreasuryManager.FlaunchToken",
21700
+ components: [
21701
+ {
21702
+ name: "flaunch",
21703
+ type: "address",
21704
+ internalType: "contract Flaunch",
21705
+ },
21706
+ { name: "tokenId", type: "uint256", internalType: "uint256" },
21707
+ ],
21708
+ },
21709
+ { name: "_creator", type: "address", internalType: "address" },
21710
+ { name: "_data", type: "bytes", internalType: "bytes" },
21711
+ ],
21712
+ outputs: [],
21713
+ stateMutability: "nonpayable",
21714
+ },
21715
+ {
21716
+ type: "function",
21717
+ name: "initialize",
21718
+ inputs: [
21719
+ { name: "_owner", type: "address", internalType: "address" },
21720
+ { name: "_data", type: "bytes", internalType: "bytes" },
21721
+ ],
21722
+ outputs: [],
21723
+ stateMutability: "nonpayable",
21724
+ },
21725
+ {
21726
+ type: "function",
21727
+ name: "managerOwner",
21728
+ inputs: [],
21729
+ outputs: [{ name: "", type: "address", internalType: "address" }],
21730
+ stateMutability: "view",
21731
+ },
21732
+ {
21733
+ type: "function",
21734
+ name: "permissions",
21735
+ inputs: [],
21736
+ outputs: [
21737
+ {
21738
+ name: "",
21739
+ type: "address",
21740
+ internalType: "contract IManagerPermissions",
21741
+ },
21742
+ ],
21743
+ stateMutability: "view",
21744
+ },
21745
+ {
21746
+ type: "function",
21747
+ name: "rescue",
21748
+ inputs: [
21749
+ {
21750
+ name: "_flaunchToken",
21751
+ type: "tuple",
21752
+ internalType: "struct ITreasuryManager.FlaunchToken",
21753
+ components: [
21754
+ {
21755
+ name: "flaunch",
21756
+ type: "address",
21757
+ internalType: "contract Flaunch",
21758
+ },
21759
+ { name: "tokenId", type: "uint256", internalType: "uint256" },
21760
+ ],
21761
+ },
21762
+ { name: "_recipient", type: "address", internalType: "address" },
21763
+ ],
21764
+ outputs: [],
21765
+ stateMutability: "nonpayable",
21766
+ },
21767
+ {
21768
+ type: "function",
21769
+ name: "setPermissions",
21770
+ inputs: [
21771
+ { name: "_permissions", type: "address", internalType: "address" },
21772
+ ],
21773
+ outputs: [],
21774
+ stateMutability: "nonpayable",
21775
+ },
21776
+ {
21777
+ type: "function",
21778
+ name: "transferManagerOwnership",
21779
+ inputs: [
21780
+ {
21781
+ name: "_newManagerOwner",
21782
+ type: "address",
21783
+ internalType: "address",
21784
+ },
21785
+ ],
21786
+ outputs: [],
21787
+ stateMutability: "nonpayable",
21788
+ },
21789
+ ];
21790
+
21791
+ /**
21792
+ * Client for interacting with the TreasuryManager contract in read-only mode
21793
+ * Provides methods to query permissions and manager owner
21794
+ */
21795
+ class ReadTreasuryManager {
21796
+ /**
21797
+ * Creates a new ReadTreasuryManager instance
21798
+ * @param address - The address of the TreasuryManager contract
21799
+ * @param drift - Optional drift instance for contract interactions (creates new instance if not provided)
21800
+ * @throws Error if address is not provided
21801
+ */
21802
+ constructor(address, drift$1 = drift.createDrift()) {
21803
+ if (!address) {
21804
+ throw new Error("Address is required");
21805
+ }
21806
+ this.contract = drift$1.contract({
21807
+ abi: TreasuryManagerAbi,
21808
+ address,
21809
+ });
21810
+ }
21811
+ /**
21812
+ * Gets the permissions contract address
21813
+ * @returns Promise<Address> - The address of the permissions contract
21814
+ */
21815
+ permissions() {
21816
+ return this.contract.read("permissions");
21817
+ }
21818
+ /**
21819
+ * Gets the manager owner address
21820
+ * @returns Promise<Address> - The address of the manager owner
21821
+ */
21822
+ managerOwner() {
21823
+ return this.contract.read("managerOwner");
21824
+ }
21825
+ }
21826
+ /**
21827
+ * Extended client for interacting with the TreasuryManager contract with write capabilities
21828
+ * Provides methods to deposit tokens, set permissions, and transfer ownership
21829
+ */
21830
+ class ReadWriteTreasuryManager extends ReadTreasuryManager {
21831
+ constructor(address, drift$1 = drift.createDrift()) {
21832
+ super(address, drift$1);
21833
+ }
21834
+ /**
21835
+ * Deposits a flaunch token to the treasury
21836
+ * @param flaunchToken - The flaunch token to deposit
21837
+ * @param creator - The address of the creator
21838
+ * @param data - Additional data for the deposit
21839
+ * @returns Promise<void>
21840
+ */
21841
+ deposit(flaunchToken, creator, data) {
21842
+ return this.contract.write("deposit", {
21843
+ _flaunchToken: flaunchToken,
21844
+ _creator: creator,
21845
+ _data: data,
21846
+ });
21847
+ }
21848
+ /**
21849
+ * Sets the permissions contract address
21850
+ * @param permissions - The address of the new permissions contract
21851
+ * @returns Promise<void>
21852
+ */
21853
+ setPermissions(permissions) {
21854
+ return this.contract.write("setPermissions", {
21855
+ _permissions: permissions,
21856
+ });
21857
+ }
21858
+ /**
21859
+ * Transfers the manager ownership to a new address
21860
+ * @param newManagerOwner - The address of the new manager owner
21861
+ * @returns Promise<void>
21862
+ */
21863
+ transferManagerOwnership(newManagerOwner) {
21864
+ return this.contract.write("transferManagerOwnership", {
21865
+ _newManagerOwner: newManagerOwner,
21866
+ });
21867
+ }
21868
+ }
21869
+
21417
21870
  // our min/max tick range that is valid for the tick spacing (60)
21418
21871
  const TickFinder = {
21419
21872
  MIN_TICK: -887220,
@@ -21505,11 +21958,6 @@ const calculateUnderlyingTokenBalances = (liquidity, tickLower, tickUpper, tickC
21505
21958
  return { amount0, amount1 };
21506
21959
  };
21507
21960
 
21508
- const chainIdToChain = {
21509
- [base.id]: base,
21510
- [baseSepolia.id]: baseSepolia,
21511
- };
21512
-
21513
21961
  const FastFlaunchZapAbi = [
21514
21962
  {
21515
21963
  inputs: [
@@ -21677,6 +22125,22 @@ class ReadFlaunchSDK {
21677
22125
  return this.readBidWallV1_1;
21678
22126
  }
21679
22127
  }
22128
+ /**
22129
+ * Gets the flaunch contract address for a given version
22130
+ * @param version - The version to get the flaunch contract address for
22131
+ */
22132
+ getFlaunchAddress(version) {
22133
+ switch (version) {
22134
+ case exports.FlaunchVersion.V1:
22135
+ return this.readFlaunch.contract.address;
22136
+ case exports.FlaunchVersion.V1_1:
22137
+ return this.readFlaunchV1_1.contract.address;
22138
+ case exports.FlaunchVersion.ANY:
22139
+ return this.readFlaunchV1_1.contract.address;
22140
+ default:
22141
+ return this.readFlaunchV1_1.contract.address;
22142
+ }
22143
+ }
21680
22144
  getPositionManagerAddress(version) {
21681
22145
  return this.getPositionManager(version).contract.address;
21682
22146
  }
@@ -22196,6 +22660,22 @@ class ReadFlaunchSDK {
22196
22660
  const readRevenueManager = new ReadRevenueManager(params.revenueManagerAddress, this.drift);
22197
22661
  return readRevenueManager.allTokensInManager(params.sortByDesc);
22198
22662
  }
22663
+ /**
22664
+ * Gets treasury manager information including owner and permissions
22665
+ * @param treasuryManagerAddress - The address of the treasury manager
22666
+ * @returns Promise<{managerOwner: Address, permissions: Address}> - Treasury manager owner and permissions contract addresses
22667
+ */
22668
+ async treasuryManagerInfo(treasuryManagerAddress) {
22669
+ const readTreasuryManager = new ReadTreasuryManager(treasuryManagerAddress, this.drift);
22670
+ const [managerOwner, permissions] = await Promise.all([
22671
+ readTreasuryManager.managerOwner(),
22672
+ readTreasuryManager.permissions(),
22673
+ ]);
22674
+ return {
22675
+ managerOwner,
22676
+ permissions,
22677
+ };
22678
+ }
22199
22679
  /**
22200
22680
  * Gets the pool ID for a given coin
22201
22681
  * @param coinAddress - The address of the coin
@@ -22331,6 +22811,22 @@ class ReadFlaunchSDK {
22331
22811
  tokenImporterVerifyMemecoin(memecoin) {
22332
22812
  return this.readTokenImporter.verifyMemecoin(memecoin);
22333
22813
  }
22814
+ /**
22815
+ * Checks if an operator is approved for all flaunch tokens of an owner
22816
+ * @param version - The flaunch version to determine the correct contract address
22817
+ * @param owner - The owner address to check
22818
+ * @param operator - The operator address to check
22819
+ * @returns Promise<boolean> - True if operator is approved for all tokens
22820
+ */
22821
+ async isFlaunchTokenApprovedForAll(version, owner, operator) {
22822
+ const flaunchAddress = this.getFlaunchAddress(version);
22823
+ return this.drift.read({
22824
+ abi: viem.erc721Abi,
22825
+ address: flaunchAddress,
22826
+ fn: "isApprovedForAll",
22827
+ args: { owner, operator },
22828
+ });
22829
+ }
22334
22830
  }
22335
22831
  class ReadWriteFlaunchSDK extends ReadFlaunchSDK {
22336
22832
  constructor(chainId, drift$1 = drift.createDrift()) {
@@ -22350,31 +22846,28 @@ class ReadWriteFlaunchSDK extends ReadFlaunchSDK {
22350
22846
  * @param params - Parameters for deploying the revenue manager
22351
22847
  * @param params.protocolRecipient - The address of the protocol recipient
22352
22848
  * @param params.protocolFeePercent - The percentage of the protocol fee
22849
+ * @param params.permissions - The permissions for the revenue manager
22353
22850
  * @returns Address of the deployed revenue manager
22354
22851
  */
22355
22852
  async deployRevenueManager(params) {
22356
- const hash = await this.readWriteTreasuryManagerFactory.deployRevenueManager(params);
22357
- // Create a public client to get the transaction receipt with logs
22358
- const publicClient = viem.createPublicClient({
22359
- chain: chainIdToChain[this.chainId],
22360
- transport: viem.http(),
22361
- });
22362
- // Wait for transaction receipt
22363
- const receipt = await publicClient.waitForTransactionReceipt({ hash });
22364
- // Get the logs from the receipt and find the ManagerDeployed event
22365
- const events = await publicClient.getContractEvents({
22366
- address: this.readWriteTreasuryManagerFactory.contract.address,
22367
- abi: TreasuryManagerFactoryAbi,
22368
- eventName: "ManagerDeployed",
22369
- fromBlock: receipt.blockNumber,
22370
- toBlock: receipt.blockNumber,
22371
- });
22372
- // Find the event from our transaction
22373
- const event = events.find((e) => e.transactionHash === hash);
22374
- if (!event) {
22375
- throw new Error("ManagerDeployed event not found in transaction logs");
22376
- }
22377
- return event.args._manager;
22853
+ const hash = await this.readWriteFlaunchZap.deployRevenueManager(params);
22854
+ return await this.readWriteTreasuryManagerFactory.getManagerDeployedAddressFromTx(hash);
22855
+ }
22856
+ /**
22857
+ * Deploys a new staking manager
22858
+ * @param params - Parameters for deploying the staking manager
22859
+ * @param params.managerOwner - The address of the manager owner
22860
+ * @param params.stakingToken - The address of the token to be staked
22861
+ * @param params.minEscrowDuration - The minimum duration (in seconds) that the creator's NFT is locked for
22862
+ * @param params.minStakeDuration - The minimum duration (in seconds) that the user's tokens are locked for
22863
+ * @param params.creatorSharePercent - The % share that a creator will earn from their token
22864
+ * @param params.ownerSharePercent - The % share that the manager owner will earn from their token
22865
+ * @param params.permissions - The permissions for the staking manager
22866
+ * @returns Address of the deployed staking manager
22867
+ */
22868
+ async deployStakingManager(params) {
22869
+ const hash = await this.readWriteFlaunchZap.deployStakingManager(params);
22870
+ return await this.readWriteTreasuryManagerFactory.getManagerDeployedAddressFromTx(hash);
22378
22871
  }
22379
22872
  /**
22380
22873
  * Creates a new Flaunch on the specified version
@@ -22629,6 +23122,63 @@ class ReadWriteFlaunchSDK extends ReadFlaunchSDK {
22629
23122
  const readWriteRevenueManager = new ReadWriteRevenueManager(params.revenueManagerAddress, this.drift);
22630
23123
  return readWriteRevenueManager.creatorClaimForTokens(params.flaunchTokens);
22631
23124
  }
23125
+ /**
23126
+ * Sets the permissions contract address for a treasury manager
23127
+ * @param treasuryManagerAddress - The address of the treasury manager
23128
+ * @param permissions - The permissions enum value to set
23129
+ * @returns Transaction response
23130
+ */
23131
+ treasuryManagerSetPermissions(treasuryManagerAddress, permissions) {
23132
+ const readWriteTreasuryManager = new ReadWriteTreasuryManager(treasuryManagerAddress, this.drift);
23133
+ const permissionsAddress = getPermissionsAddress(permissions, this.chainId);
23134
+ return readWriteTreasuryManager.setPermissions(permissionsAddress);
23135
+ }
23136
+ /**
23137
+ * Transfers the ownership of a treasury manager to a new address
23138
+ * @param treasuryManagerAddress - The address of the treasury manager
23139
+ * @param newManagerOwner - The address of the new manager owner
23140
+ * @returns Transaction response
23141
+ */
23142
+ treasuryManagerTransferOwnership(treasuryManagerAddress, newManagerOwner) {
23143
+ const readWriteTreasuryManager = new ReadWriteTreasuryManager(treasuryManagerAddress, this.drift);
23144
+ return readWriteTreasuryManager.transferManagerOwnership(newManagerOwner);
23145
+ }
23146
+ /**
23147
+ * Sets approval for all flaunch tokens to an operator
23148
+ * @param version - The flaunch version to determine the correct contract address
23149
+ * @param operator - The operator address to approve/revoke
23150
+ * @param approved - Whether to approve or revoke approval
23151
+ * @returns Transaction response
23152
+ */
23153
+ async setFlaunchTokenApprovalForAll(version, operator, approved) {
23154
+ const flaunchAddress = this.getFlaunchAddress(version);
23155
+ return this.drift.write({
23156
+ abi: viem.erc721Abi,
23157
+ address: flaunchAddress,
23158
+ fn: "setApprovalForAll",
23159
+ args: { operator, approved },
23160
+ });
23161
+ }
23162
+ /**
23163
+ * Adds an existing flaunch token to a treasury manager. NFT approval must be given prior to calling this function.
23164
+ * @param treasuryManagerAddress - The address of the treasury manager
23165
+ * @param version - The flaunch version to determine the correct contract address
23166
+ * @param tokenId - The token ID to deposit
23167
+ * @param creator - Optional creator address. If not provided, uses the connected wallet address
23168
+ * @param data - Optional additional data for the deposit (defaults to empty bytes)
23169
+ * @returns Transaction response
23170
+ */
23171
+ async addToTreasuryManager(treasuryManagerAddress, version, tokenId, creator, data = "0x") {
23172
+ const readWriteTreasuryManager = new ReadWriteTreasuryManager(treasuryManagerAddress, this.drift);
23173
+ // Get the flaunch contract address based on version
23174
+ const flaunchAddress = this.getFlaunchAddress(version);
23175
+ const flaunchToken = {
23176
+ flaunch: flaunchAddress,
23177
+ tokenId,
23178
+ };
23179
+ const creatorAddress = creator ?? (await this.drift.getSignerAddress());
23180
+ return readWriteTreasuryManager.deposit(flaunchToken, creatorAddress, data);
23181
+ }
22632
23182
  /**
22633
23183
  * Imports a memecoin into the TokenImporter
22634
23184
  * @param params.memecoin - The address of the memecoin to import
@@ -22695,6 +23245,7 @@ exports.BidWallV1_1Abi = BidWallV1_1Abi;
22695
23245
  exports.BidWallV1_1Address = BidWallV1_1Address;
22696
23246
  exports.BidwallAbi = BidwallAbi;
22697
23247
  exports.ClankerWorldVerifierAddress = ClankerWorldVerifierAddress;
23248
+ exports.ClosedPermissionsAddress = ClosedPermissionsAddress;
22698
23249
  exports.DopplerVerifierAddress = DopplerVerifierAddress;
22699
23250
  exports.FLETHAddress = FLETHAddress;
22700
23251
  exports.FLETHHooksAddress = FLETHHooksAddress;
@@ -22734,6 +23285,7 @@ exports.ReferralEscrowAbi = ReferralEscrowAbi;
22734
23285
  exports.ReferralEscrowAddress = ReferralEscrowAddress;
22735
23286
  exports.RevenueManagerAbi = RevenueManagerAbi;
22736
23287
  exports.RevenueManagerAddress = RevenueManagerAddress;
23288
+ exports.StakingManagerAddress = StakingManagerAddress;
22737
23289
  exports.StateViewAbi = StateViewAbi;
22738
23290
  exports.StateViewAddress = StateViewAddress;
22739
23291
  exports.TICK_SPACING = TICK_SPACING;
@@ -22746,6 +23298,7 @@ exports.UniversalRouterAbi = UniversalRouterAbi;
22746
23298
  exports.UniversalRouterAddress = UniversalRouterAddress;
22747
23299
  exports.VirtualsVerifierAddress = VirtualsVerifierAddress;
22748
23300
  exports.WhitelistVerifierAddress = WhitelistVerifierAddress;
23301
+ exports.WhitelistedPermissionsAddress = WhitelistedPermissionsAddress;
22749
23302
  exports.ZoraVerifierAddress = ZoraVerifierAddress;
22750
23303
  exports.bytes32ToUint256 = bytes32ToUint256;
22751
23304
  exports.calculateUnderlyingTokenBalances = calculateUnderlyingTokenBalances;
@@ -22755,6 +23308,7 @@ exports.createFlaunch = createFlaunch;
22755
23308
  exports.ethToMemecoin = ethToMemecoin;
22756
23309
  exports.generateTokenUri = generateTokenUri;
22757
23310
  exports.getAmountWithSlippage = getAmountWithSlippage;
23311
+ exports.getPermissionsAddress = getPermissionsAddress;
22758
23312
  exports.getPermit2TypedData = getPermit2TypedData;
22759
23313
  exports.getPoolId = getPoolId;
22760
23314
  exports.getSqrtPriceX96FromTick = getSqrtPriceX96FromTick;