@medialane/sdk 0.68.0 → 0.69.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -41,13 +41,10 @@ var COORDINATES = {
41
41
  ipTicketCollectionClassHash: "0x047bd108881457c4f4db6c64671c1dd402f4d8c79fd9182f03a2dd841335a34b",
42
42
  ipTicketsFactoryClassHash: "0x04a739ac3a673ebd0db96bb24475600797c3ed34827e79517f9b2b1640276e6a",
43
43
  ipTicketsStartBlock: 11836622,
44
- ipClubRegistry: "0x00e189c619b6bb07d78973a149641c59c37eb0716f8584d7520bce12d303eede",
45
- ipClubNftClassHash: "0x02bc9b20cca21b04245e9215bf7121f4d7295b195890e449b472b573017fb889",
46
- ipClubStartBlock: 11404776,
47
- ipClubFactory: "0x05519705345ce225db666253a21cf89d1c675658f16cc6ae4320cefd1a1219a3",
48
- ipClubFactoryClassHash: "0x07197062578375d962b2d42d3e91560770b11b1c97a9defb74c706a2c5299473",
49
- ipClubCollectionClassHash: "0x35b8836a2269523ae9176077ec525451cce1053b2acd9fae3b05354aa4eded3",
50
- ipClubFactoryStartBlock: 11884796,
44
+ ipClubFactory: "0x06a0b0be16d70c78f2e18119dbf90e5911cbfd5d8d484bc555dc61d96f56a2b9",
45
+ ipClubFactoryClassHash: "0x05d9d431bd3532b1fa4d5bab572f49c5ad8034ee3cc83951aa41ae82c9cad266",
46
+ ipClubCollectionClassHash: "0x05b8477c72e6bf0cf64967d71155021fd4d77d9a57e8805c6b40709121c002c5",
47
+ ipClubFactoryStartBlock: 11928775,
51
48
  // v3 redesign (deployed 2026-07-15): single contract is both the
52
49
  // offer/bid/proposal registry and the license collection (embeds
53
50
  // ERC721Component directly) — no separate receipt contract, no
@@ -881,8 +878,6 @@ SN.dropCollectionClassHash;
881
878
  SN.nftComments;
882
879
  SN.ipTicketsFactory;
883
880
  SN.ipTicketCollectionClassHash;
884
- SN.ipClubRegistry;
885
- SN.ipClubNftClassHash;
886
881
  SN.ipClubFactory;
887
882
  SN.ipClubCollectionClassHash;
888
883
  SN.ipSponsorship;
@@ -6586,12 +6581,12 @@ var IPTicketCollectionFactoryABI = [
6586
6581
  }
6587
6582
  ];
6588
6583
 
6589
- // src/starknet/abis/ipClub.ts
6590
- var IPClubABI = [
6584
+ // src/starknet/abis/ipClubFactory.ts
6585
+ var IPClubFactoryABI = [
6591
6586
  {
6592
6587
  "type": "impl",
6593
- "name": "IPClubImpl",
6594
- "interface_name": "ip_club::interfaces::IIPClub::IIPClub"
6588
+ "name": "IPClubCollectionFactoryImpl",
6589
+ "interface_name": "ip_club::interface::IIPClubCollectionFactory"
6595
6590
  },
6596
6591
  {
6597
6592
  "type": "struct",
@@ -6611,240 +6606,55 @@ var IPClubABI = [
6611
6606
  }
6612
6607
  ]
6613
6608
  },
6614
- {
6615
- "type": "enum",
6616
- "name": "core::option::Option::<core::integer::u32>",
6617
- "variants": [
6618
- {
6619
- "name": "Some",
6620
- "type": "core::integer::u32"
6621
- },
6622
- {
6623
- "name": "None",
6624
- "type": "()"
6625
- }
6626
- ]
6627
- },
6628
- {
6629
- "type": "struct",
6630
- "name": "core::integer::u256",
6631
- "members": [
6632
- {
6633
- "name": "low",
6634
- "type": "core::integer::u128"
6635
- },
6636
- {
6637
- "name": "high",
6638
- "type": "core::integer::u128"
6639
- }
6640
- ]
6641
- },
6642
- {
6643
- "type": "enum",
6644
- "name": "core::option::Option::<core::integer::u256>",
6645
- "variants": [
6646
- {
6647
- "name": "Some",
6648
- "type": "core::integer::u256"
6649
- },
6650
- {
6651
- "name": "None",
6652
- "type": "()"
6653
- }
6654
- ]
6655
- },
6656
- {
6657
- "type": "enum",
6658
- "name": "core::option::Option::<core::starknet::contract_address::ContractAddress>",
6659
- "variants": [
6660
- {
6661
- "name": "Some",
6662
- "type": "core::starknet::contract_address::ContractAddress"
6663
- },
6664
- {
6665
- "name": "None",
6666
- "type": "()"
6667
- }
6668
- ]
6669
- },
6670
- {
6671
- "type": "enum",
6672
- "name": "core::bool",
6673
- "variants": [
6674
- {
6675
- "name": "False",
6676
- "type": "()"
6677
- },
6678
- {
6679
- "name": "True",
6680
- "type": "()"
6681
- }
6682
- ]
6683
- },
6684
- {
6685
- "type": "struct",
6686
- "name": "ip_club::types::ClubRecord",
6687
- "members": [
6688
- {
6689
- "name": "creator",
6690
- "type": "core::starknet::contract_address::ContractAddress"
6691
- },
6692
- {
6693
- "name": "club_nft",
6694
- "type": "core::starknet::contract_address::ContractAddress"
6695
- },
6696
- {
6697
- "name": "open",
6698
- "type": "core::bool"
6699
- },
6700
- {
6701
- "name": "num_members",
6702
- "type": "core::integer::u32"
6703
- },
6704
- {
6705
- "name": "max_members",
6706
- "type": "core::option::Option::<core::integer::u32>"
6707
- },
6708
- {
6709
- "name": "entry_fee",
6710
- "type": "core::option::Option::<core::integer::u256>"
6711
- },
6712
- {
6713
- "name": "payment_token",
6714
- "type": "core::option::Option::<core::starknet::contract_address::ContractAddress>"
6715
- }
6716
- ]
6717
- },
6718
6609
  {
6719
6610
  "type": "interface",
6720
- "name": "ip_club::interfaces::IIPClub::IIPClub",
6611
+ "name": "ip_club::interface::IIPClubCollectionFactory",
6721
6612
  "items": [
6722
6613
  {
6723
6614
  "type": "function",
6724
- "name": "create_club",
6725
- "inputs": [
6726
- {
6727
- "name": "name",
6728
- "type": "core::byte_array::ByteArray"
6729
- },
6730
- {
6731
- "name": "symbol",
6732
- "type": "core::byte_array::ByteArray"
6733
- },
6734
- {
6735
- "name": "metadata_uri",
6736
- "type": "core::byte_array::ByteArray"
6737
- },
6738
- {
6739
- "name": "max_members",
6740
- "type": "core::option::Option::<core::integer::u32>"
6741
- },
6742
- {
6743
- "name": "entry_fee",
6744
- "type": "core::option::Option::<core::integer::u256>"
6745
- },
6746
- {
6747
- "name": "payment_token",
6748
- "type": "core::option::Option::<core::starknet::contract_address::ContractAddress>"
6749
- }
6750
- ],
6615
+ "name": "collection_class_hash",
6616
+ "inputs": [],
6751
6617
  "outputs": [
6752
6618
  {
6753
- "type": "core::integer::u256"
6754
- }
6755
- ],
6756
- "state_mutability": "external"
6757
- },
6758
- {
6759
- "type": "function",
6760
- "name": "set_club_open",
6761
- "inputs": [
6762
- {
6763
- "name": "club_id",
6764
- "type": "core::integer::u256"
6765
- },
6766
- {
6767
- "name": "open",
6768
- "type": "core::bool"
6769
- }
6770
- ],
6771
- "outputs": [],
6772
- "state_mutability": "external"
6773
- },
6774
- {
6775
- "type": "function",
6776
- "name": "join_club",
6777
- "inputs": [
6778
- {
6779
- "name": "club_id",
6780
- "type": "core::integer::u256"
6781
- }
6782
- ],
6783
- "outputs": [],
6784
- "state_mutability": "external"
6785
- },
6786
- {
6787
- "type": "function",
6788
- "name": "leave_club",
6789
- "inputs": [
6790
- {
6791
- "name": "club_id",
6792
- "type": "core::integer::u256"
6793
- },
6794
- {
6795
- "name": "token_id",
6796
- "type": "core::integer::u256"
6619
+ "type": "core::starknet::class_hash::ClassHash"
6797
6620
  }
6798
6621
  ],
6799
- "outputs": [],
6800
- "state_mutability": "external"
6622
+ "state_mutability": "view"
6801
6623
  },
6802
6624
  {
6803
6625
  "type": "function",
6804
- "name": "get_club_record",
6805
- "inputs": [
6806
- {
6807
- "name": "club_id",
6808
- "type": "core::integer::u256"
6809
- }
6810
- ],
6626
+ "name": "version",
6627
+ "inputs": [],
6811
6628
  "outputs": [
6812
6629
  {
6813
- "type": "ip_club::types::ClubRecord"
6630
+ "type": "core::byte_array::ByteArray"
6814
6631
  }
6815
6632
  ],
6816
6633
  "state_mutability": "view"
6817
6634
  },
6818
6635
  {
6819
6636
  "type": "function",
6820
- "name": "is_member",
6637
+ "name": "deploy_collection",
6821
6638
  "inputs": [
6822
6639
  {
6823
- "name": "club_id",
6824
- "type": "core::integer::u256"
6640
+ "name": "name",
6641
+ "type": "core::byte_array::ByteArray"
6825
6642
  },
6826
6643
  {
6827
- "name": "user",
6828
- "type": "core::starknet::contract_address::ContractAddress"
6829
- }
6830
- ],
6831
- "outputs": [
6644
+ "name": "symbol",
6645
+ "type": "core::byte_array::ByteArray"
6646
+ },
6832
6647
  {
6833
- "type": "core::bool"
6648
+ "name": "base_uri",
6649
+ "type": "core::byte_array::ByteArray"
6834
6650
  }
6835
6651
  ],
6836
- "state_mutability": "view"
6837
- },
6838
- {
6839
- "type": "function",
6840
- "name": "get_last_club_id",
6841
- "inputs": [],
6842
6652
  "outputs": [
6843
6653
  {
6844
- "type": "core::integer::u256"
6654
+ "type": "core::starknet::contract_address::ContractAddress"
6845
6655
  }
6846
6656
  ],
6847
- "state_mutability": "view"
6657
+ "state_mutability": "external"
6848
6658
  }
6849
6659
  ]
6850
6660
  },
@@ -6853,6 +6663,20 @@ var IPClubABI = [
6853
6663
  "name": "SRC5Impl",
6854
6664
  "interface_name": "openzeppelin_introspection::interface::ISRC5"
6855
6665
  },
6666
+ {
6667
+ "type": "enum",
6668
+ "name": "core::bool",
6669
+ "variants": [
6670
+ {
6671
+ "name": "False",
6672
+ "type": "()"
6673
+ },
6674
+ {
6675
+ "name": "True",
6676
+ "type": "()"
6677
+ }
6678
+ ]
6679
+ },
6856
6680
  {
6857
6681
  "type": "interface",
6858
6682
  "name": "openzeppelin_introspection::interface::ISRC5",
@@ -6880,7 +6704,7 @@ var IPClubABI = [
6880
6704
  "name": "constructor",
6881
6705
  "inputs": [
6882
6706
  {
6883
- "name": "ip_club_nft_class_hash",
6707
+ "name": "collection_class_hash",
6884
6708
  "type": "core::starknet::class_hash::ClassHash"
6885
6709
  }
6886
6710
  ]
@@ -6893,945 +6717,60 @@ var IPClubABI = [
6893
6717
  },
6894
6718
  {
6895
6719
  "type": "event",
6896
- "name": "ip_club::events::NewClubCreated",
6720
+ "name": "ip_club::IPClubCollectionFactory::IPClubCollectionFactory::ClubDeployed",
6897
6721
  "kind": "struct",
6898
6722
  "members": [
6899
6723
  {
6900
- "name": "club_id",
6901
- "type": "core::integer::u256",
6902
- "kind": "key"
6903
- },
6904
- {
6905
- "name": "creator",
6724
+ "name": "collection_address",
6906
6725
  "type": "core::starknet::contract_address::ContractAddress",
6907
6726
  "kind": "key"
6908
6727
  },
6909
6728
  {
6910
- "name": "club_nft",
6729
+ "name": "owner",
6911
6730
  "type": "core::starknet::contract_address::ContractAddress",
6912
- "kind": "data"
6731
+ "kind": "key"
6913
6732
  },
6914
6733
  {
6915
- "name": "metadata_uri",
6734
+ "name": "name",
6916
6735
  "type": "core::byte_array::ByteArray",
6917
6736
  "kind": "data"
6918
6737
  },
6919
6738
  {
6920
- "name": "timestamp",
6921
- "type": "core::integer::u64",
6739
+ "name": "symbol",
6740
+ "type": "core::byte_array::ByteArray",
6922
6741
  "kind": "data"
6923
6742
  }
6924
6743
  ]
6925
6744
  },
6926
6745
  {
6927
6746
  "type": "event",
6928
- "name": "ip_club::events::ClubStatusUpdated",
6929
- "kind": "struct",
6930
- "members": [
6931
- {
6932
- "name": "club_id",
6933
- "type": "core::integer::u256",
6934
- "kind": "key"
6935
- },
6747
+ "name": "ip_club::IPClubCollectionFactory::IPClubCollectionFactory::Event",
6748
+ "kind": "enum",
6749
+ "variants": [
6936
6750
  {
6937
- "name": "open",
6938
- "type": "core::bool",
6939
- "kind": "data"
6751
+ "name": "SRC5Event",
6752
+ "type": "openzeppelin_introspection::src5::SRC5Component::Event",
6753
+ "kind": "flat"
6940
6754
  },
6941
6755
  {
6942
- "name": "timestamp",
6943
- "type": "core::integer::u64",
6944
- "kind": "data"
6756
+ "name": "ClubDeployed",
6757
+ "type": "ip_club::IPClubCollectionFactory::IPClubCollectionFactory::ClubDeployed",
6758
+ "kind": "nested"
6945
6759
  }
6946
6760
  ]
6761
+ }
6762
+ ];
6763
+
6764
+ // src/starknet/abis/ipClubCollection.ts
6765
+ var IPClubCollectionABI = [
6766
+ {
6767
+ "type": "impl",
6768
+ "name": "ERC1155MetadataURIImpl",
6769
+ "interface_name": "openzeppelin_token::erc1155::interface::IERC1155MetadataURI"
6947
6770
  },
6948
6771
  {
6949
- "type": "event",
6950
- "name": "ip_club::events::NewMember",
6951
- "kind": "struct",
6952
- "members": [
6953
- {
6954
- "name": "club_id",
6955
- "type": "core::integer::u256",
6956
- "kind": "key"
6957
- },
6958
- {
6959
- "name": "member",
6960
- "type": "core::starknet::contract_address::ContractAddress",
6961
- "kind": "key"
6962
- },
6963
- {
6964
- "name": "timestamp",
6965
- "type": "core::integer::u64",
6966
- "kind": "data"
6967
- }
6968
- ]
6969
- },
6970
- {
6971
- "type": "event",
6972
- "name": "ip_club::events::MemberLeft",
6973
- "kind": "struct",
6974
- "members": [
6975
- {
6976
- "name": "club_id",
6977
- "type": "core::integer::u256",
6978
- "kind": "key"
6979
- },
6980
- {
6981
- "name": "member",
6982
- "type": "core::starknet::contract_address::ContractAddress",
6983
- "kind": "key"
6984
- },
6985
- {
6986
- "name": "timestamp",
6987
- "type": "core::integer::u64",
6988
- "kind": "data"
6989
- }
6990
- ]
6991
- },
6992
- {
6993
- "type": "event",
6994
- "name": "ip_club::IPClub::IPClub::Event",
6995
- "kind": "enum",
6996
- "variants": [
6997
- {
6998
- "name": "SRC5Event",
6999
- "type": "openzeppelin_introspection::src5::SRC5Component::Event",
7000
- "kind": "flat"
7001
- },
7002
- {
7003
- "name": "NewClubCreated",
7004
- "type": "ip_club::events::NewClubCreated",
7005
- "kind": "nested"
7006
- },
7007
- {
7008
- "name": "ClubStatusUpdated",
7009
- "type": "ip_club::events::ClubStatusUpdated",
7010
- "kind": "nested"
7011
- },
7012
- {
7013
- "name": "NewMember",
7014
- "type": "ip_club::events::NewMember",
7015
- "kind": "nested"
7016
- },
7017
- {
7018
- "name": "MemberLeft",
7019
- "type": "ip_club::events::MemberLeft",
7020
- "kind": "nested"
7021
- }
7022
- ]
7023
- }
7024
- ];
7025
-
7026
- // src/starknet/abis/ipClubNft.ts
7027
- var IPClubNFTABI = [
7028
- {
7029
- "type": "impl",
7030
- "name": "IIPClubNFTImpl",
7031
- "interface_name": "ip_club::interfaces::IIPClubNFT::IIPClubNFT"
7032
- },
7033
- {
7034
- "type": "struct",
7035
- "name": "core::integer::u256",
7036
- "members": [
7037
- {
7038
- "name": "low",
7039
- "type": "core::integer::u128"
7040
- },
7041
- {
7042
- "name": "high",
7043
- "type": "core::integer::u128"
7044
- }
7045
- ]
7046
- },
7047
- {
7048
- "type": "enum",
7049
- "name": "core::bool",
7050
- "variants": [
7051
- {
7052
- "name": "False",
7053
- "type": "()"
7054
- },
7055
- {
7056
- "name": "True",
7057
- "type": "()"
7058
- }
7059
- ]
7060
- },
7061
- {
7062
- "type": "interface",
7063
- "name": "ip_club::interfaces::IIPClubNFT::IIPClubNFT",
7064
- "items": [
7065
- {
7066
- "type": "function",
7067
- "name": "mint",
7068
- "inputs": [
7069
- {
7070
- "name": "recipient",
7071
- "type": "core::starknet::contract_address::ContractAddress"
7072
- }
7073
- ],
7074
- "outputs": [],
7075
- "state_mutability": "external"
7076
- },
7077
- {
7078
- "type": "function",
7079
- "name": "burn",
7080
- "inputs": [
7081
- {
7082
- "name": "member",
7083
- "type": "core::starknet::contract_address::ContractAddress"
7084
- },
7085
- {
7086
- "name": "token_id",
7087
- "type": "core::integer::u256"
7088
- }
7089
- ],
7090
- "outputs": [],
7091
- "state_mutability": "external"
7092
- },
7093
- {
7094
- "type": "function",
7095
- "name": "has_nft",
7096
- "inputs": [
7097
- {
7098
- "name": "user",
7099
- "type": "core::starknet::contract_address::ContractAddress"
7100
- }
7101
- ],
7102
- "outputs": [
7103
- {
7104
- "type": "core::bool"
7105
- }
7106
- ],
7107
- "state_mutability": "view"
7108
- },
7109
- {
7110
- "type": "function",
7111
- "name": "get_nft_creator",
7112
- "inputs": [],
7113
- "outputs": [
7114
- {
7115
- "type": "core::starknet::contract_address::ContractAddress"
7116
- }
7117
- ],
7118
- "state_mutability": "view"
7119
- },
7120
- {
7121
- "type": "function",
7122
- "name": "get_ip_club_manager",
7123
- "inputs": [],
7124
- "outputs": [
7125
- {
7126
- "type": "core::starknet::contract_address::ContractAddress"
7127
- }
7128
- ],
7129
- "state_mutability": "view"
7130
- },
7131
- {
7132
- "type": "function",
7133
- "name": "get_associated_club_id",
7134
- "inputs": [],
7135
- "outputs": [
7136
- {
7137
- "type": "core::integer::u256"
7138
- }
7139
- ],
7140
- "state_mutability": "view"
7141
- },
7142
- {
7143
- "type": "function",
7144
- "name": "get_last_minted_id",
7145
- "inputs": [],
7146
- "outputs": [
7147
- {
7148
- "type": "core::integer::u256"
7149
- }
7150
- ],
7151
- "state_mutability": "view"
7152
- }
7153
- ]
7154
- },
7155
- {
7156
- "type": "impl",
7157
- "name": "ERC721MixinImpl",
7158
- "interface_name": "openzeppelin_token::erc721::interface::ERC721ABI"
7159
- },
7160
- {
7161
- "type": "struct",
7162
- "name": "core::array::Span::<core::felt252>",
7163
- "members": [
7164
- {
7165
- "name": "snapshot",
7166
- "type": "@core::array::Array::<core::felt252>"
7167
- }
7168
- ]
7169
- },
7170
- {
7171
- "type": "struct",
7172
- "name": "core::byte_array::ByteArray",
7173
- "members": [
7174
- {
7175
- "name": "data",
7176
- "type": "core::array::Array::<core::bytes_31::bytes31>"
7177
- },
7178
- {
7179
- "name": "pending_word",
7180
- "type": "core::felt252"
7181
- },
7182
- {
7183
- "name": "pending_word_len",
7184
- "type": "core::internal::bounded_int::BoundedInt::<0, 30>"
7185
- }
7186
- ]
7187
- },
7188
- {
7189
- "type": "interface",
7190
- "name": "openzeppelin_token::erc721::interface::ERC721ABI",
7191
- "items": [
7192
- {
7193
- "type": "function",
7194
- "name": "balance_of",
7195
- "inputs": [
7196
- {
7197
- "name": "account",
7198
- "type": "core::starknet::contract_address::ContractAddress"
7199
- }
7200
- ],
7201
- "outputs": [
7202
- {
7203
- "type": "core::integer::u256"
7204
- }
7205
- ],
7206
- "state_mutability": "view"
7207
- },
7208
- {
7209
- "type": "function",
7210
- "name": "owner_of",
7211
- "inputs": [
7212
- {
7213
- "name": "token_id",
7214
- "type": "core::integer::u256"
7215
- }
7216
- ],
7217
- "outputs": [
7218
- {
7219
- "type": "core::starknet::contract_address::ContractAddress"
7220
- }
7221
- ],
7222
- "state_mutability": "view"
7223
- },
7224
- {
7225
- "type": "function",
7226
- "name": "safe_transfer_from",
7227
- "inputs": [
7228
- {
7229
- "name": "from",
7230
- "type": "core::starknet::contract_address::ContractAddress"
7231
- },
7232
- {
7233
- "name": "to",
7234
- "type": "core::starknet::contract_address::ContractAddress"
7235
- },
7236
- {
7237
- "name": "token_id",
7238
- "type": "core::integer::u256"
7239
- },
7240
- {
7241
- "name": "data",
7242
- "type": "core::array::Span::<core::felt252>"
7243
- }
7244
- ],
7245
- "outputs": [],
7246
- "state_mutability": "external"
7247
- },
7248
- {
7249
- "type": "function",
7250
- "name": "transfer_from",
7251
- "inputs": [
7252
- {
7253
- "name": "from",
7254
- "type": "core::starknet::contract_address::ContractAddress"
7255
- },
7256
- {
7257
- "name": "to",
7258
- "type": "core::starknet::contract_address::ContractAddress"
7259
- },
7260
- {
7261
- "name": "token_id",
7262
- "type": "core::integer::u256"
7263
- }
7264
- ],
7265
- "outputs": [],
7266
- "state_mutability": "external"
7267
- },
7268
- {
7269
- "type": "function",
7270
- "name": "approve",
7271
- "inputs": [
7272
- {
7273
- "name": "to",
7274
- "type": "core::starknet::contract_address::ContractAddress"
7275
- },
7276
- {
7277
- "name": "token_id",
7278
- "type": "core::integer::u256"
7279
- }
7280
- ],
7281
- "outputs": [],
7282
- "state_mutability": "external"
7283
- },
7284
- {
7285
- "type": "function",
7286
- "name": "set_approval_for_all",
7287
- "inputs": [
7288
- {
7289
- "name": "operator",
7290
- "type": "core::starknet::contract_address::ContractAddress"
7291
- },
7292
- {
7293
- "name": "approved",
7294
- "type": "core::bool"
7295
- }
7296
- ],
7297
- "outputs": [],
7298
- "state_mutability": "external"
7299
- },
7300
- {
7301
- "type": "function",
7302
- "name": "get_approved",
7303
- "inputs": [
7304
- {
7305
- "name": "token_id",
7306
- "type": "core::integer::u256"
7307
- }
7308
- ],
7309
- "outputs": [
7310
- {
7311
- "type": "core::starknet::contract_address::ContractAddress"
7312
- }
7313
- ],
7314
- "state_mutability": "view"
7315
- },
7316
- {
7317
- "type": "function",
7318
- "name": "is_approved_for_all",
7319
- "inputs": [
7320
- {
7321
- "name": "owner",
7322
- "type": "core::starknet::contract_address::ContractAddress"
7323
- },
7324
- {
7325
- "name": "operator",
7326
- "type": "core::starknet::contract_address::ContractAddress"
7327
- }
7328
- ],
7329
- "outputs": [
7330
- {
7331
- "type": "core::bool"
7332
- }
7333
- ],
7334
- "state_mutability": "view"
7335
- },
7336
- {
7337
- "type": "function",
7338
- "name": "supports_interface",
7339
- "inputs": [
7340
- {
7341
- "name": "interface_id",
7342
- "type": "core::felt252"
7343
- }
7344
- ],
7345
- "outputs": [
7346
- {
7347
- "type": "core::bool"
7348
- }
7349
- ],
7350
- "state_mutability": "view"
7351
- },
7352
- {
7353
- "type": "function",
7354
- "name": "name",
7355
- "inputs": [],
7356
- "outputs": [
7357
- {
7358
- "type": "core::byte_array::ByteArray"
7359
- }
7360
- ],
7361
- "state_mutability": "view"
7362
- },
7363
- {
7364
- "type": "function",
7365
- "name": "symbol",
7366
- "inputs": [],
7367
- "outputs": [
7368
- {
7369
- "type": "core::byte_array::ByteArray"
7370
- }
7371
- ],
7372
- "state_mutability": "view"
7373
- },
7374
- {
7375
- "type": "function",
7376
- "name": "token_uri",
7377
- "inputs": [
7378
- {
7379
- "name": "token_id",
7380
- "type": "core::integer::u256"
7381
- }
7382
- ],
7383
- "outputs": [
7384
- {
7385
- "type": "core::byte_array::ByteArray"
7386
- }
7387
- ],
7388
- "state_mutability": "view"
7389
- },
7390
- {
7391
- "type": "function",
7392
- "name": "balanceOf",
7393
- "inputs": [
7394
- {
7395
- "name": "account",
7396
- "type": "core::starknet::contract_address::ContractAddress"
7397
- }
7398
- ],
7399
- "outputs": [
7400
- {
7401
- "type": "core::integer::u256"
7402
- }
7403
- ],
7404
- "state_mutability": "view"
7405
- },
7406
- {
7407
- "type": "function",
7408
- "name": "ownerOf",
7409
- "inputs": [
7410
- {
7411
- "name": "tokenId",
7412
- "type": "core::integer::u256"
7413
- }
7414
- ],
7415
- "outputs": [
7416
- {
7417
- "type": "core::starknet::contract_address::ContractAddress"
7418
- }
7419
- ],
7420
- "state_mutability": "view"
7421
- },
7422
- {
7423
- "type": "function",
7424
- "name": "safeTransferFrom",
7425
- "inputs": [
7426
- {
7427
- "name": "from",
7428
- "type": "core::starknet::contract_address::ContractAddress"
7429
- },
7430
- {
7431
- "name": "to",
7432
- "type": "core::starknet::contract_address::ContractAddress"
7433
- },
7434
- {
7435
- "name": "tokenId",
7436
- "type": "core::integer::u256"
7437
- },
7438
- {
7439
- "name": "data",
7440
- "type": "core::array::Span::<core::felt252>"
7441
- }
7442
- ],
7443
- "outputs": [],
7444
- "state_mutability": "external"
7445
- },
7446
- {
7447
- "type": "function",
7448
- "name": "transferFrom",
7449
- "inputs": [
7450
- {
7451
- "name": "from",
7452
- "type": "core::starknet::contract_address::ContractAddress"
7453
- },
7454
- {
7455
- "name": "to",
7456
- "type": "core::starknet::contract_address::ContractAddress"
7457
- },
7458
- {
7459
- "name": "tokenId",
7460
- "type": "core::integer::u256"
7461
- }
7462
- ],
7463
- "outputs": [],
7464
- "state_mutability": "external"
7465
- },
7466
- {
7467
- "type": "function",
7468
- "name": "setApprovalForAll",
7469
- "inputs": [
7470
- {
7471
- "name": "operator",
7472
- "type": "core::starknet::contract_address::ContractAddress"
7473
- },
7474
- {
7475
- "name": "approved",
7476
- "type": "core::bool"
7477
- }
7478
- ],
7479
- "outputs": [],
7480
- "state_mutability": "external"
7481
- },
7482
- {
7483
- "type": "function",
7484
- "name": "getApproved",
7485
- "inputs": [
7486
- {
7487
- "name": "tokenId",
7488
- "type": "core::integer::u256"
7489
- }
7490
- ],
7491
- "outputs": [
7492
- {
7493
- "type": "core::starknet::contract_address::ContractAddress"
7494
- }
7495
- ],
7496
- "state_mutability": "view"
7497
- },
7498
- {
7499
- "type": "function",
7500
- "name": "isApprovedForAll",
7501
- "inputs": [
7502
- {
7503
- "name": "owner",
7504
- "type": "core::starknet::contract_address::ContractAddress"
7505
- },
7506
- {
7507
- "name": "operator",
7508
- "type": "core::starknet::contract_address::ContractAddress"
7509
- }
7510
- ],
7511
- "outputs": [
7512
- {
7513
- "type": "core::bool"
7514
- }
7515
- ],
7516
- "state_mutability": "view"
7517
- },
7518
- {
7519
- "type": "function",
7520
- "name": "tokenURI",
7521
- "inputs": [
7522
- {
7523
- "name": "tokenId",
7524
- "type": "core::integer::u256"
7525
- }
7526
- ],
7527
- "outputs": [
7528
- {
7529
- "type": "core::byte_array::ByteArray"
7530
- }
7531
- ],
7532
- "state_mutability": "view"
7533
- }
7534
- ]
7535
- },
7536
- {
7537
- "type": "constructor",
7538
- "name": "constructor",
7539
- "inputs": [
7540
- {
7541
- "name": "name",
7542
- "type": "core::byte_array::ByteArray"
7543
- },
7544
- {
7545
- "name": "symbol",
7546
- "type": "core::byte_array::ByteArray"
7547
- },
7548
- {
7549
- "name": "club_id",
7550
- "type": "core::integer::u256"
7551
- },
7552
- {
7553
- "name": "creator",
7554
- "type": "core::starknet::contract_address::ContractAddress"
7555
- },
7556
- {
7557
- "name": "ip_club_manager",
7558
- "type": "core::starknet::contract_address::ContractAddress"
7559
- },
7560
- {
7561
- "name": "metadata_uri",
7562
- "type": "core::byte_array::ByteArray"
7563
- }
7564
- ]
7565
- },
7566
- {
7567
- "type": "event",
7568
- "name": "openzeppelin_token::erc721::erc721::ERC721Component::Transfer",
7569
- "kind": "struct",
7570
- "members": [
7571
- {
7572
- "name": "from",
7573
- "type": "core::starknet::contract_address::ContractAddress",
7574
- "kind": "key"
7575
- },
7576
- {
7577
- "name": "to",
7578
- "type": "core::starknet::contract_address::ContractAddress",
7579
- "kind": "key"
7580
- },
7581
- {
7582
- "name": "token_id",
7583
- "type": "core::integer::u256",
7584
- "kind": "key"
7585
- }
7586
- ]
7587
- },
7588
- {
7589
- "type": "event",
7590
- "name": "openzeppelin_token::erc721::erc721::ERC721Component::Approval",
7591
- "kind": "struct",
7592
- "members": [
7593
- {
7594
- "name": "owner",
7595
- "type": "core::starknet::contract_address::ContractAddress",
7596
- "kind": "key"
7597
- },
7598
- {
7599
- "name": "approved",
7600
- "type": "core::starknet::contract_address::ContractAddress",
7601
- "kind": "key"
7602
- },
7603
- {
7604
- "name": "token_id",
7605
- "type": "core::integer::u256",
7606
- "kind": "key"
7607
- }
7608
- ]
7609
- },
7610
- {
7611
- "type": "event",
7612
- "name": "openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll",
7613
- "kind": "struct",
7614
- "members": [
7615
- {
7616
- "name": "owner",
7617
- "type": "core::starknet::contract_address::ContractAddress",
7618
- "kind": "key"
7619
- },
7620
- {
7621
- "name": "operator",
7622
- "type": "core::starknet::contract_address::ContractAddress",
7623
- "kind": "key"
7624
- },
7625
- {
7626
- "name": "approved",
7627
- "type": "core::bool",
7628
- "kind": "data"
7629
- }
7630
- ]
7631
- },
7632
- {
7633
- "type": "event",
7634
- "name": "openzeppelin_token::erc721::erc721::ERC721Component::Event",
7635
- "kind": "enum",
7636
- "variants": [
7637
- {
7638
- "name": "Transfer",
7639
- "type": "openzeppelin_token::erc721::erc721::ERC721Component::Transfer",
7640
- "kind": "nested"
7641
- },
7642
- {
7643
- "name": "Approval",
7644
- "type": "openzeppelin_token::erc721::erc721::ERC721Component::Approval",
7645
- "kind": "nested"
7646
- },
7647
- {
7648
- "name": "ApprovalForAll",
7649
- "type": "openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll",
7650
- "kind": "nested"
7651
- }
7652
- ]
7653
- },
7654
- {
7655
- "type": "event",
7656
- "name": "openzeppelin_introspection::src5::SRC5Component::Event",
7657
- "kind": "enum",
7658
- "variants": []
7659
- },
7660
- {
7661
- "type": "event",
7662
- "name": "ip_club::IPClubNFT::IPClubNFT::Event",
7663
- "kind": "enum",
7664
- "variants": [
7665
- {
7666
- "name": "ERC721Event",
7667
- "type": "openzeppelin_token::erc721::erc721::ERC721Component::Event",
7668
- "kind": "flat"
7669
- },
7670
- {
7671
- "name": "SRC5Event",
7672
- "type": "openzeppelin_introspection::src5::SRC5Component::Event",
7673
- "kind": "flat"
7674
- }
7675
- ]
7676
- }
7677
- ];
7678
-
7679
- // src/starknet/abis/ipClubFactory.ts
7680
- var IPClubFactoryABI = [
7681
- {
7682
- "type": "impl",
7683
- "name": "IPClubFactoryImpl",
7684
- "interface_name": "ip_club::interface::IIPClubFactory"
7685
- },
7686
- {
7687
- "type": "struct",
7688
- "name": "core::byte_array::ByteArray",
7689
- "members": [
7690
- { "name": "data", "type": "core::array::Array::<core::bytes_31::bytes31>" },
7691
- { "name": "pending_word", "type": "core::felt252" },
7692
- { "name": "pending_word_len", "type": "core::internal::bounded_int::BoundedInt::<0, 30>" }
7693
- ]
7694
- },
7695
- {
7696
- "type": "struct",
7697
- "name": "core::integer::u256",
7698
- "members": [
7699
- { "name": "low", "type": "core::integer::u128" },
7700
- { "name": "high", "type": "core::integer::u128" }
7701
- ]
7702
- },
7703
- {
7704
- "type": "enum",
7705
- "name": "core::option::Option::<core::starknet::contract_address::ContractAddress>",
7706
- "variants": [
7707
- { "name": "Some", "type": "core::starknet::contract_address::ContractAddress" },
7708
- { "name": "None", "type": "()" }
7709
- ]
7710
- },
7711
- {
7712
- "type": "interface",
7713
- "name": "ip_club::interface::IIPClubFactory",
7714
- "items": [
7715
- {
7716
- "type": "function",
7717
- "name": "collection_class_hash",
7718
- "inputs": [],
7719
- "outputs": [{ "type": "core::starknet::class_hash::ClassHash" }],
7720
- "state_mutability": "view"
7721
- },
7722
- {
7723
- "type": "function",
7724
- "name": "version",
7725
- "inputs": [],
7726
- "outputs": [{ "type": "core::byte_array::ByteArray" }],
7727
- "state_mutability": "view"
7728
- },
7729
- {
7730
- "type": "function",
7731
- "name": "deploy_club",
7732
- "inputs": [
7733
- { "name": "name", "type": "core::byte_array::ByteArray" },
7734
- { "name": "symbol", "type": "core::byte_array::ByteArray" },
7735
- { "name": "base_uri", "type": "core::byte_array::ByteArray" },
7736
- { "name": "max_supply", "type": "core::integer::u256" },
7737
- { "name": "entry_fee", "type": "core::integer::u256" },
7738
- { "name": "payment_token", "type": "core::option::Option::<core::starknet::contract_address::ContractAddress>" },
7739
- { "name": "royalty_bps", "type": "core::integer::u256" }
7740
- ],
7741
- "outputs": [{ "type": "core::starknet::contract_address::ContractAddress" }],
7742
- "state_mutability": "external"
7743
- }
7744
- ]
7745
- },
7746
- {
7747
- "type": "impl",
7748
- "name": "SRC5Impl",
7749
- "interface_name": "openzeppelin_introspection::interface::ISRC5"
7750
- },
7751
- {
7752
- "type": "enum",
7753
- "name": "core::bool",
7754
- "variants": [
7755
- { "name": "False", "type": "()" },
7756
- { "name": "True", "type": "()" }
7757
- ]
7758
- },
7759
- {
7760
- "type": "interface",
7761
- "name": "openzeppelin_introspection::interface::ISRC5",
7762
- "items": [
7763
- {
7764
- "type": "function",
7765
- "name": "supports_interface",
7766
- "inputs": [{ "name": "interface_id", "type": "core::felt252" }],
7767
- "outputs": [{ "type": "core::bool" }],
7768
- "state_mutability": "view"
7769
- }
7770
- ]
7771
- },
7772
- {
7773
- "type": "constructor",
7774
- "name": "constructor",
7775
- "inputs": [
7776
- { "name": "collection_class_hash", "type": "core::starknet::class_hash::ClassHash" }
7777
- ]
7778
- },
7779
- {
7780
- "type": "event",
7781
- "name": "openzeppelin_introspection::src5::SRC5Component::Event",
7782
- "kind": "enum",
7783
- "variants": []
7784
- },
7785
- {
7786
- "type": "event",
7787
- "name": "ip_club::IPClubFactory::IPClubFactory::ClubDeployed",
7788
- "kind": "struct",
7789
- "members": [
7790
- { "name": "collection_address", "type": "core::starknet::contract_address::ContractAddress", "kind": "key" },
7791
- { "name": "owner", "type": "core::starknet::contract_address::ContractAddress", "kind": "key" },
7792
- { "name": "name", "type": "core::byte_array::ByteArray", "kind": "data" },
7793
- { "name": "symbol", "type": "core::byte_array::ByteArray", "kind": "data" }
7794
- ]
7795
- },
7796
- {
7797
- "type": "event",
7798
- "name": "ip_club::IPClubFactory::IPClubFactory::Event",
7799
- "kind": "enum",
7800
- "variants": [
7801
- { "name": "SRC5Event", "type": "openzeppelin_introspection::src5::SRC5Component::Event", "kind": "flat" },
7802
- { "name": "ClubDeployed", "type": "ip_club::IPClubFactory::IPClubFactory::ClubDeployed", "kind": "nested" }
7803
- ]
7804
- }
7805
- ];
7806
-
7807
- // src/starknet/abis/ipClubCollection.ts
7808
- var IPClubCollectionABI = [
7809
- {
7810
- "type": "impl",
7811
- "name": "ERC721MetadataImpl",
7812
- "interface_name": "openzeppelin_token::erc721::interface::IERC721Metadata"
7813
- },
7814
- {
7815
- "type": "struct",
7816
- "name": "core::byte_array::ByteArray",
7817
- "members": [
7818
- {
7819
- "name": "data",
7820
- "type": "core::array::Array::<core::bytes_31::bytes31>"
7821
- },
7822
- {
7823
- "name": "pending_word",
7824
- "type": "core::felt252"
7825
- },
7826
- {
7827
- "name": "pending_word_len",
7828
- "type": "core::internal::bounded_int::BoundedInt::<0, 30>"
7829
- }
7830
- ]
7831
- },
7832
- {
7833
- "type": "struct",
7834
- "name": "core::integer::u256",
6772
+ "type": "struct",
6773
+ "name": "core::integer::u256",
7835
6774
  "members": [
7836
6775
  {
7837
6776
  "name": "low",
@@ -7844,64 +6783,33 @@ var IPClubCollectionABI = [
7844
6783
  ]
7845
6784
  },
7846
6785
  {
7847
- "type": "interface",
7848
- "name": "openzeppelin_token::erc721::interface::IERC721Metadata",
7849
- "items": [
7850
- {
7851
- "type": "function",
7852
- "name": "name",
7853
- "inputs": [],
7854
- "outputs": [
7855
- {
7856
- "type": "core::byte_array::ByteArray"
7857
- }
7858
- ],
7859
- "state_mutability": "view"
7860
- },
7861
- {
7862
- "type": "function",
7863
- "name": "symbol",
7864
- "inputs": [],
7865
- "outputs": [
7866
- {
7867
- "type": "core::byte_array::ByteArray"
7868
- }
7869
- ],
7870
- "state_mutability": "view"
7871
- },
7872
- {
7873
- "type": "function",
7874
- "name": "token_uri",
7875
- "inputs": [
7876
- {
7877
- "name": "token_id",
7878
- "type": "core::integer::u256"
7879
- }
7880
- ],
7881
- "outputs": [
7882
- {
7883
- "type": "core::byte_array::ByteArray"
7884
- }
7885
- ],
7886
- "state_mutability": "view"
7887
- }
7888
- ]
7889
- },
7890
- {
7891
- "type": "impl",
7892
- "name": "ERC721MetadataCamelOnlyImpl",
7893
- "interface_name": "openzeppelin_token::erc721::interface::IERC721MetadataCamelOnly"
6786
+ "type": "struct",
6787
+ "name": "core::byte_array::ByteArray",
6788
+ "members": [
6789
+ {
6790
+ "name": "data",
6791
+ "type": "core::array::Array::<core::bytes_31::bytes31>"
6792
+ },
6793
+ {
6794
+ "name": "pending_word",
6795
+ "type": "core::felt252"
6796
+ },
6797
+ {
6798
+ "name": "pending_word_len",
6799
+ "type": "core::internal::bounded_int::BoundedInt::<0, 30>"
6800
+ }
6801
+ ]
7894
6802
  },
7895
6803
  {
7896
6804
  "type": "interface",
7897
- "name": "openzeppelin_token::erc721::interface::IERC721MetadataCamelOnly",
6805
+ "name": "openzeppelin_token::erc1155::interface::IERC1155MetadataURI",
7898
6806
  "items": [
7899
6807
  {
7900
6808
  "type": "function",
7901
- "name": "tokenURI",
6809
+ "name": "uri",
7902
6810
  "inputs": [
7903
6811
  {
7904
- "name": "tokenId",
6812
+ "name": "token_id",
7905
6813
  "type": "core::integer::u256"
7906
6814
  }
7907
6815
  ],
@@ -7919,6 +6827,20 @@ var IPClubCollectionABI = [
7919
6827
  "name": "IPClubCollectionImpl",
7920
6828
  "interface_name": "ip_club::interface::IIPClubCollection"
7921
6829
  },
6830
+ {
6831
+ "type": "enum",
6832
+ "name": "core::option::Option::<core::integer::u64>",
6833
+ "variants": [
6834
+ {
6835
+ "name": "Some",
6836
+ "type": "core::integer::u64"
6837
+ },
6838
+ {
6839
+ "name": "None",
6840
+ "type": "()"
6841
+ }
6842
+ ]
6843
+ },
7922
6844
  {
7923
6845
  "type": "enum",
7924
6846
  "name": "core::bool",
@@ -7934,16 +6856,32 @@ var IPClubCollectionABI = [
7934
6856
  ]
7935
6857
  },
7936
6858
  {
7937
- "type": "enum",
7938
- "name": "core::option::Option::<core::starknet::contract_address::ContractAddress>",
7939
- "variants": [
6859
+ "type": "struct",
6860
+ "name": "ip_club::types::Membership",
6861
+ "members": [
7940
6862
  {
7941
- "name": "Some",
7942
- "type": "core::starknet::contract_address::ContractAddress"
6863
+ "name": "max_supply",
6864
+ "type": "core::integer::u256"
7943
6865
  },
7944
6866
  {
7945
- "name": "None",
7946
- "type": "()"
6867
+ "name": "minted",
6868
+ "type": "core::integer::u256"
6869
+ },
6870
+ {
6871
+ "name": "start_time",
6872
+ "type": "core::option::Option::<core::integer::u64>"
6873
+ },
6874
+ {
6875
+ "name": "end_time",
6876
+ "type": "core::option::Option::<core::integer::u64>"
6877
+ },
6878
+ {
6879
+ "name": "royalty_bps",
6880
+ "type": "core::integer::u16"
6881
+ },
6882
+ {
6883
+ "name": "metadata_uri",
6884
+ "type": "core::byte_array::ByteArray"
7947
6885
  }
7948
6886
  ]
7949
6887
  },
@@ -7953,11 +6891,27 @@ var IPClubCollectionABI = [
7953
6891
  "items": [
7954
6892
  {
7955
6893
  "type": "function",
7956
- "name": "mint",
6894
+ "name": "create_membership",
7957
6895
  "inputs": [
7958
6896
  {
7959
- "name": "to",
7960
- "type": "core::starknet::contract_address::ContractAddress"
6897
+ "name": "max_supply",
6898
+ "type": "core::integer::u256"
6899
+ },
6900
+ {
6901
+ "name": "start_time",
6902
+ "type": "core::option::Option::<core::integer::u64>"
6903
+ },
6904
+ {
6905
+ "name": "end_time",
6906
+ "type": "core::option::Option::<core::integer::u64>"
6907
+ },
6908
+ {
6909
+ "name": "royalty_bps",
6910
+ "type": "core::integer::u16"
6911
+ },
6912
+ {
6913
+ "name": "metadata_uri",
6914
+ "type": "core::byte_array::ByteArray"
7961
6915
  }
7962
6916
  ],
7963
6917
  "outputs": [
@@ -7969,11 +6923,19 @@ var IPClubCollectionABI = [
7969
6923
  },
7970
6924
  {
7971
6925
  "type": "function",
7972
- "name": "set_open",
6926
+ "name": "mint",
7973
6927
  "inputs": [
7974
6928
  {
7975
- "name": "open",
7976
- "type": "core::bool"
6929
+ "name": "to",
6930
+ "type": "core::starknet::contract_address::ContractAddress"
6931
+ },
6932
+ {
6933
+ "name": "token_id",
6934
+ "type": "core::integer::u256"
6935
+ },
6936
+ {
6937
+ "name": "amount",
6938
+ "type": "core::integer::u256"
7977
6939
  }
7978
6940
  ],
7979
6941
  "outputs": [],
@@ -7981,66 +6943,85 @@ var IPClubCollectionABI = [
7981
6943
  },
7982
6944
  {
7983
6945
  "type": "function",
7984
- "name": "base_uri",
7985
- "inputs": [],
6946
+ "name": "is_member",
6947
+ "inputs": [
6948
+ {
6949
+ "name": "holder",
6950
+ "type": "core::starknet::contract_address::ContractAddress"
6951
+ }
6952
+ ],
7986
6953
  "outputs": [
7987
6954
  {
7988
- "type": "core::byte_array::ByteArray"
6955
+ "type": "core::bool"
7989
6956
  }
7990
6957
  ],
7991
6958
  "state_mutability": "view"
7992
6959
  },
7993
6960
  {
7994
6961
  "type": "function",
7995
- "name": "entry_fee",
7996
- "inputs": [],
7997
- "outputs": [
6962
+ "name": "is_member_of",
6963
+ "inputs": [
7998
6964
  {
6965
+ "name": "token_id",
7999
6966
  "type": "core::integer::u256"
6967
+ },
6968
+ {
6969
+ "name": "holder",
6970
+ "type": "core::starknet::contract_address::ContractAddress"
6971
+ }
6972
+ ],
6973
+ "outputs": [
6974
+ {
6975
+ "type": "core::bool"
8000
6976
  }
8001
6977
  ],
8002
6978
  "state_mutability": "view"
8003
6979
  },
8004
6980
  {
8005
6981
  "type": "function",
8006
- "name": "payment_token",
8007
- "inputs": [],
6982
+ "name": "get_membership",
6983
+ "inputs": [
6984
+ {
6985
+ "name": "token_id",
6986
+ "type": "core::integer::u256"
6987
+ }
6988
+ ],
8008
6989
  "outputs": [
8009
6990
  {
8010
- "type": "core::option::Option::<core::starknet::contract_address::ContractAddress>"
6991
+ "type": "ip_club::types::Membership"
8011
6992
  }
8012
6993
  ],
8013
6994
  "state_mutability": "view"
8014
6995
  },
8015
6996
  {
8016
6997
  "type": "function",
8017
- "name": "max_supply",
6998
+ "name": "name",
8018
6999
  "inputs": [],
8019
7000
  "outputs": [
8020
7001
  {
8021
- "type": "core::integer::u256"
7002
+ "type": "core::byte_array::ByteArray"
8022
7003
  }
8023
7004
  ],
8024
7005
  "state_mutability": "view"
8025
7006
  },
8026
7007
  {
8027
7008
  "type": "function",
8028
- "name": "total_minted",
7009
+ "name": "symbol",
8029
7010
  "inputs": [],
8030
7011
  "outputs": [
8031
7012
  {
8032
- "type": "core::integer::u256"
7013
+ "type": "core::byte_array::ByteArray"
8033
7014
  }
8034
7015
  ],
8035
7016
  "state_mutability": "view"
8036
7017
  },
8037
7018
  {
8038
7019
  "type": "function",
8039
- "name": "is_open",
7020
+ "name": "base_uri",
8040
7021
  "inputs": [],
8041
7022
  "outputs": [
8042
7023
  {
8043
- "type": "core::bool"
7024
+ "type": "core::byte_array::ByteArray"
8044
7025
  }
8045
7026
  ],
8046
7027
  "state_mutability": "view"
@@ -8100,8 +7081,28 @@ var IPClubCollectionABI = [
8100
7081
  },
8101
7082
  {
8102
7083
  "type": "impl",
8103
- "name": "ERC721Impl",
8104
- "interface_name": "openzeppelin_token::erc721::interface::IERC721"
7084
+ "name": "ERC1155Impl",
7085
+ "interface_name": "openzeppelin_token::erc1155::interface::IERC1155"
7086
+ },
7087
+ {
7088
+ "type": "struct",
7089
+ "name": "core::array::Span::<core::starknet::contract_address::ContractAddress>",
7090
+ "members": [
7091
+ {
7092
+ "name": "snapshot",
7093
+ "type": "@core::array::Array::<core::starknet::contract_address::ContractAddress>"
7094
+ }
7095
+ ]
7096
+ },
7097
+ {
7098
+ "type": "struct",
7099
+ "name": "core::array::Span::<core::integer::u256>",
7100
+ "members": [
7101
+ {
7102
+ "name": "snapshot",
7103
+ "type": "@core::array::Array::<core::integer::u256>"
7104
+ }
7105
+ ]
8105
7106
  },
8106
7107
  {
8107
7108
  "type": "struct",
@@ -8115,7 +7116,7 @@ var IPClubCollectionABI = [
8115
7116
  },
8116
7117
  {
8117
7118
  "type": "interface",
8118
- "name": "openzeppelin_token::erc721::interface::IERC721",
7119
+ "name": "openzeppelin_token::erc1155::interface::IERC1155",
8119
7120
  "items": [
8120
7121
  {
8121
7122
  "type": "function",
@@ -8124,6 +7125,10 @@ var IPClubCollectionABI = [
8124
7125
  {
8125
7126
  "name": "account",
8126
7127
  "type": "core::starknet::contract_address::ContractAddress"
7128
+ },
7129
+ {
7130
+ "name": "token_id",
7131
+ "type": "core::integer::u256"
8127
7132
  }
8128
7133
  ],
8129
7134
  "outputs": [
@@ -8135,16 +7140,20 @@ var IPClubCollectionABI = [
8135
7140
  },
8136
7141
  {
8137
7142
  "type": "function",
8138
- "name": "owner_of",
7143
+ "name": "balance_of_batch",
8139
7144
  "inputs": [
8140
7145
  {
8141
- "name": "token_id",
8142
- "type": "core::integer::u256"
7146
+ "name": "accounts",
7147
+ "type": "core::array::Span::<core::starknet::contract_address::ContractAddress>"
7148
+ },
7149
+ {
7150
+ "name": "token_ids",
7151
+ "type": "core::array::Span::<core::integer::u256>"
8143
7152
  }
8144
7153
  ],
8145
7154
  "outputs": [
8146
7155
  {
8147
- "type": "core::starknet::contract_address::ContractAddress"
7156
+ "type": "core::array::Span::<core::integer::u256>"
8148
7157
  }
8149
7158
  ],
8150
7159
  "state_mutability": "view"
@@ -8165,6 +7174,10 @@ var IPClubCollectionABI = [
8165
7174
  "name": "token_id",
8166
7175
  "type": "core::integer::u256"
8167
7176
  },
7177
+ {
7178
+ "name": "value",
7179
+ "type": "core::integer::u256"
7180
+ },
8168
7181
  {
8169
7182
  "name": "data",
8170
7183
  "type": "core::array::Span::<core::felt252>"
@@ -8175,7 +7188,7 @@ var IPClubCollectionABI = [
8175
7188
  },
8176
7189
  {
8177
7190
  "type": "function",
8178
- "name": "transfer_from",
7191
+ "name": "safe_batch_transfer_from",
8179
7192
  "inputs": [
8180
7193
  {
8181
7194
  "name": "from",
@@ -8186,24 +7199,16 @@ var IPClubCollectionABI = [
8186
7199
  "type": "core::starknet::contract_address::ContractAddress"
8187
7200
  },
8188
7201
  {
8189
- "name": "token_id",
8190
- "type": "core::integer::u256"
8191
- }
8192
- ],
8193
- "outputs": [],
8194
- "state_mutability": "external"
8195
- },
8196
- {
8197
- "type": "function",
8198
- "name": "approve",
8199
- "inputs": [
7202
+ "name": "token_ids",
7203
+ "type": "core::array::Span::<core::integer::u256>"
7204
+ },
8200
7205
  {
8201
- "name": "to",
8202
- "type": "core::starknet::contract_address::ContractAddress"
7206
+ "name": "values",
7207
+ "type": "core::array::Span::<core::integer::u256>"
8203
7208
  },
8204
7209
  {
8205
- "name": "token_id",
8206
- "type": "core::integer::u256"
7210
+ "name": "data",
7211
+ "type": "core::array::Span::<core::felt252>"
8207
7212
  }
8208
7213
  ],
8209
7214
  "outputs": [],
@@ -8211,66 +7216,50 @@ var IPClubCollectionABI = [
8211
7216
  },
8212
7217
  {
8213
7218
  "type": "function",
8214
- "name": "set_approval_for_all",
7219
+ "name": "is_approved_for_all",
8215
7220
  "inputs": [
8216
7221
  {
8217
- "name": "operator",
7222
+ "name": "owner",
8218
7223
  "type": "core::starknet::contract_address::ContractAddress"
8219
7224
  },
8220
7225
  {
8221
- "name": "approved",
8222
- "type": "core::bool"
8223
- }
8224
- ],
8225
- "outputs": [],
8226
- "state_mutability": "external"
8227
- },
8228
- {
8229
- "type": "function",
8230
- "name": "get_approved",
8231
- "inputs": [
8232
- {
8233
- "name": "token_id",
8234
- "type": "core::integer::u256"
7226
+ "name": "operator",
7227
+ "type": "core::starknet::contract_address::ContractAddress"
8235
7228
  }
8236
7229
  ],
8237
7230
  "outputs": [
8238
7231
  {
8239
- "type": "core::starknet::contract_address::ContractAddress"
7232
+ "type": "core::bool"
8240
7233
  }
8241
7234
  ],
8242
7235
  "state_mutability": "view"
8243
7236
  },
8244
7237
  {
8245
7238
  "type": "function",
8246
- "name": "is_approved_for_all",
7239
+ "name": "set_approval_for_all",
8247
7240
  "inputs": [
8248
- {
8249
- "name": "owner",
8250
- "type": "core::starknet::contract_address::ContractAddress"
8251
- },
8252
7241
  {
8253
7242
  "name": "operator",
8254
7243
  "type": "core::starknet::contract_address::ContractAddress"
8255
- }
8256
- ],
8257
- "outputs": [
7244
+ },
8258
7245
  {
7246
+ "name": "approved",
8259
7247
  "type": "core::bool"
8260
7248
  }
8261
7249
  ],
8262
- "state_mutability": "view"
7250
+ "outputs": [],
7251
+ "state_mutability": "external"
8263
7252
  }
8264
7253
  ]
8265
7254
  },
8266
7255
  {
8267
7256
  "type": "impl",
8268
- "name": "ERC721CamelOnly",
8269
- "interface_name": "openzeppelin_token::erc721::interface::IERC721CamelOnly"
7257
+ "name": "ERC1155CamelImpl",
7258
+ "interface_name": "openzeppelin_token::erc1155::interface::IERC1155Camel"
8270
7259
  },
8271
7260
  {
8272
7261
  "type": "interface",
8273
- "name": "openzeppelin_token::erc721::interface::IERC721CamelOnly",
7262
+ "name": "openzeppelin_token::erc1155::interface::IERC1155Camel",
8274
7263
  "items": [
8275
7264
  {
8276
7265
  "type": "function",
@@ -8279,6 +7268,10 @@ var IPClubCollectionABI = [
8279
7268
  {
8280
7269
  "name": "account",
8281
7270
  "type": "core::starknet::contract_address::ContractAddress"
7271
+ },
7272
+ {
7273
+ "name": "tokenId",
7274
+ "type": "core::integer::u256"
8282
7275
  }
8283
7276
  ],
8284
7277
  "outputs": [
@@ -8290,16 +7283,20 @@ var IPClubCollectionABI = [
8290
7283
  },
8291
7284
  {
8292
7285
  "type": "function",
8293
- "name": "ownerOf",
7286
+ "name": "balanceOfBatch",
8294
7287
  "inputs": [
8295
7288
  {
8296
- "name": "tokenId",
8297
- "type": "core::integer::u256"
7289
+ "name": "accounts",
7290
+ "type": "core::array::Span::<core::starknet::contract_address::ContractAddress>"
7291
+ },
7292
+ {
7293
+ "name": "tokenIds",
7294
+ "type": "core::array::Span::<core::integer::u256>"
8298
7295
  }
8299
7296
  ],
8300
7297
  "outputs": [
8301
7298
  {
8302
- "type": "core::starknet::contract_address::ContractAddress"
7299
+ "type": "core::array::Span::<core::integer::u256>"
8303
7300
  }
8304
7301
  ],
8305
7302
  "state_mutability": "view"
@@ -8320,6 +7317,10 @@ var IPClubCollectionABI = [
8320
7317
  "name": "tokenId",
8321
7318
  "type": "core::integer::u256"
8322
7319
  },
7320
+ {
7321
+ "name": "value",
7322
+ "type": "core::integer::u256"
7323
+ },
8323
7324
  {
8324
7325
  "name": "data",
8325
7326
  "type": "core::array::Span::<core::felt252>"
@@ -8330,7 +7331,7 @@ var IPClubCollectionABI = [
8330
7331
  },
8331
7332
  {
8332
7333
  "type": "function",
8333
- "name": "transferFrom",
7334
+ "name": "safeBatchTransferFrom",
8334
7335
  "inputs": [
8335
7336
  {
8336
7337
  "name": "from",
@@ -8341,24 +7342,16 @@ var IPClubCollectionABI = [
8341
7342
  "type": "core::starknet::contract_address::ContractAddress"
8342
7343
  },
8343
7344
  {
8344
- "name": "tokenId",
8345
- "type": "core::integer::u256"
8346
- }
8347
- ],
8348
- "outputs": [],
8349
- "state_mutability": "external"
8350
- },
8351
- {
8352
- "type": "function",
8353
- "name": "setApprovalForAll",
8354
- "inputs": [
7345
+ "name": "tokenIds",
7346
+ "type": "core::array::Span::<core::integer::u256>"
7347
+ },
8355
7348
  {
8356
- "name": "operator",
8357
- "type": "core::starknet::contract_address::ContractAddress"
7349
+ "name": "values",
7350
+ "type": "core::array::Span::<core::integer::u256>"
8358
7351
  },
8359
7352
  {
8360
- "name": "approved",
8361
- "type": "core::bool"
7353
+ "name": "data",
7354
+ "type": "core::array::Span::<core::felt252>"
8362
7355
  }
8363
7356
  ],
8364
7357
  "outputs": [],
@@ -8366,39 +7359,39 @@ var IPClubCollectionABI = [
8366
7359
  },
8367
7360
  {
8368
7361
  "type": "function",
8369
- "name": "getApproved",
7362
+ "name": "isApprovedForAll",
8370
7363
  "inputs": [
8371
7364
  {
8372
- "name": "tokenId",
8373
- "type": "core::integer::u256"
7365
+ "name": "owner",
7366
+ "type": "core::starknet::contract_address::ContractAddress"
7367
+ },
7368
+ {
7369
+ "name": "operator",
7370
+ "type": "core::starknet::contract_address::ContractAddress"
8374
7371
  }
8375
7372
  ],
8376
7373
  "outputs": [
8377
7374
  {
8378
- "type": "core::starknet::contract_address::ContractAddress"
7375
+ "type": "core::bool"
8379
7376
  }
8380
7377
  ],
8381
7378
  "state_mutability": "view"
8382
7379
  },
8383
7380
  {
8384
7381
  "type": "function",
8385
- "name": "isApprovedForAll",
7382
+ "name": "setApprovalForAll",
8386
7383
  "inputs": [
8387
- {
8388
- "name": "owner",
8389
- "type": "core::starknet::contract_address::ContractAddress"
8390
- },
8391
7384
  {
8392
7385
  "name": "operator",
8393
7386
  "type": "core::starknet::contract_address::ContractAddress"
8394
- }
8395
- ],
8396
- "outputs": [
7387
+ },
8397
7388
  {
7389
+ "name": "approved",
8398
7390
  "type": "core::bool"
8399
7391
  }
8400
7392
  ],
8401
- "state_mutability": "view"
7393
+ "outputs": [],
7394
+ "state_mutability": "external"
8402
7395
  }
8403
7396
  ]
8404
7397
  },
@@ -8505,22 +7498,6 @@ var IPClubCollectionABI = [
8505
7498
  "name": "base_uri",
8506
7499
  "type": "core::byte_array::ByteArray"
8507
7500
  },
8508
- {
8509
- "name": "max_supply",
8510
- "type": "core::integer::u256"
8511
- },
8512
- {
8513
- "name": "entry_fee",
8514
- "type": "core::integer::u256"
8515
- },
8516
- {
8517
- "name": "payment_token",
8518
- "type": "core::option::Option::<core::starknet::contract_address::ContractAddress>"
8519
- },
8520
- {
8521
- "name": "royalty_bps",
8522
- "type": "core::integer::u256"
8523
- },
8524
7501
  {
8525
7502
  "name": "owner",
8526
7503
  "type": "core::starknet::contract_address::ContractAddress"
@@ -8529,9 +7506,14 @@ var IPClubCollectionABI = [
8529
7506
  },
8530
7507
  {
8531
7508
  "type": "event",
8532
- "name": "openzeppelin_token::erc721::erc721::ERC721Component::Transfer",
7509
+ "name": "openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferSingle",
8533
7510
  "kind": "struct",
8534
7511
  "members": [
7512
+ {
7513
+ "name": "operator",
7514
+ "type": "core::starknet::contract_address::ContractAddress",
7515
+ "kind": "key"
7516
+ },
8535
7517
  {
8536
7518
  "name": "from",
8537
7519
  "type": "core::starknet::contract_address::ContractAddress",
@@ -8543,37 +7525,52 @@ var IPClubCollectionABI = [
8543
7525
  "kind": "key"
8544
7526
  },
8545
7527
  {
8546
- "name": "token_id",
7528
+ "name": "id",
8547
7529
  "type": "core::integer::u256",
8548
- "kind": "key"
7530
+ "kind": "data"
7531
+ },
7532
+ {
7533
+ "name": "value",
7534
+ "type": "core::integer::u256",
7535
+ "kind": "data"
8549
7536
  }
8550
7537
  ]
8551
7538
  },
8552
7539
  {
8553
7540
  "type": "event",
8554
- "name": "openzeppelin_token::erc721::erc721::ERC721Component::Approval",
7541
+ "name": "openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferBatch",
8555
7542
  "kind": "struct",
8556
7543
  "members": [
8557
7544
  {
8558
- "name": "owner",
7545
+ "name": "operator",
8559
7546
  "type": "core::starknet::contract_address::ContractAddress",
8560
7547
  "kind": "key"
8561
7548
  },
8562
7549
  {
8563
- "name": "approved",
7550
+ "name": "from",
8564
7551
  "type": "core::starknet::contract_address::ContractAddress",
8565
7552
  "kind": "key"
8566
7553
  },
8567
7554
  {
8568
- "name": "token_id",
8569
- "type": "core::integer::u256",
7555
+ "name": "to",
7556
+ "type": "core::starknet::contract_address::ContractAddress",
8570
7557
  "kind": "key"
7558
+ },
7559
+ {
7560
+ "name": "ids",
7561
+ "type": "core::array::Span::<core::integer::u256>",
7562
+ "kind": "data"
7563
+ },
7564
+ {
7565
+ "name": "values",
7566
+ "type": "core::array::Span::<core::integer::u256>",
7567
+ "kind": "data"
8571
7568
  }
8572
7569
  ]
8573
7570
  },
8574
7571
  {
8575
7572
  "type": "event",
8576
- "name": "openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll",
7573
+ "name": "openzeppelin_token::erc1155::erc1155::ERC1155Component::ApprovalForAll",
8577
7574
  "kind": "struct",
8578
7575
  "members": [
8579
7576
  {
@@ -8595,22 +7592,44 @@ var IPClubCollectionABI = [
8595
7592
  },
8596
7593
  {
8597
7594
  "type": "event",
8598
- "name": "openzeppelin_token::erc721::erc721::ERC721Component::Event",
7595
+ "name": "openzeppelin_token::erc1155::erc1155::ERC1155Component::URI",
7596
+ "kind": "struct",
7597
+ "members": [
7598
+ {
7599
+ "name": "value",
7600
+ "type": "core::byte_array::ByteArray",
7601
+ "kind": "data"
7602
+ },
7603
+ {
7604
+ "name": "id",
7605
+ "type": "core::integer::u256",
7606
+ "kind": "key"
7607
+ }
7608
+ ]
7609
+ },
7610
+ {
7611
+ "type": "event",
7612
+ "name": "openzeppelin_token::erc1155::erc1155::ERC1155Component::Event",
8599
7613
  "kind": "enum",
8600
7614
  "variants": [
8601
7615
  {
8602
- "name": "Transfer",
8603
- "type": "openzeppelin_token::erc721::erc721::ERC721Component::Transfer",
7616
+ "name": "TransferSingle",
7617
+ "type": "openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferSingle",
8604
7618
  "kind": "nested"
8605
7619
  },
8606
7620
  {
8607
- "name": "Approval",
8608
- "type": "openzeppelin_token::erc721::erc721::ERC721Component::Approval",
7621
+ "name": "TransferBatch",
7622
+ "type": "openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferBatch",
8609
7623
  "kind": "nested"
8610
7624
  },
8611
7625
  {
8612
7626
  "name": "ApprovalForAll",
8613
- "type": "openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll",
7627
+ "type": "openzeppelin_token::erc1155::erc1155::ERC1155Component::ApprovalForAll",
7628
+ "kind": "nested"
7629
+ },
7630
+ {
7631
+ "name": "URI",
7632
+ "type": "openzeppelin_token::erc1155::erc1155::ERC1155Component::URI",
8614
7633
  "kind": "nested"
8615
7634
  }
8616
7635
  ]
@@ -8674,7 +7693,7 @@ var IPClubCollectionABI = [
8674
7693
  },
8675
7694
  {
8676
7695
  "type": "event",
8677
- "name": "ip_club::IPClubCollection::IPClubCollection::MemberMinted",
7696
+ "name": "ip_club::IPClubCollection::IPClubCollection::MembershipCreated",
8678
7697
  "kind": "struct",
8679
7698
  "members": [
8680
7699
  {
@@ -8683,25 +7702,28 @@ var IPClubCollectionABI = [
8683
7702
  "kind": "key"
8684
7703
  },
8685
7704
  {
8686
- "name": "to",
8687
- "type": "core::starknet::contract_address::ContractAddress",
8688
- "kind": "key"
7705
+ "name": "max_supply",
7706
+ "type": "core::integer::u256",
7707
+ "kind": "data"
8689
7708
  },
8690
7709
  {
8691
- "name": "payer",
8692
- "type": "core::starknet::contract_address::ContractAddress",
7710
+ "name": "start_time",
7711
+ "type": "core::option::Option::<core::integer::u64>",
8693
7712
  "kind": "data"
8694
- }
8695
- ]
8696
- },
8697
- {
8698
- "type": "event",
8699
- "name": "ip_club::IPClubCollection::IPClubCollection::OpenStatusChanged",
8700
- "kind": "struct",
8701
- "members": [
7713
+ },
8702
7714
  {
8703
- "name": "open",
8704
- "type": "core::bool",
7715
+ "name": "end_time",
7716
+ "type": "core::option::Option::<core::integer::u64>",
7717
+ "kind": "data"
7718
+ },
7719
+ {
7720
+ "name": "metadata_uri",
7721
+ "type": "core::byte_array::ByteArray",
7722
+ "kind": "data"
7723
+ },
7724
+ {
7725
+ "name": "created_at",
7726
+ "type": "core::integer::u64",
8705
7727
  "kind": "data"
8706
7728
  }
8707
7729
  ]
@@ -8712,8 +7734,8 @@ var IPClubCollectionABI = [
8712
7734
  "kind": "enum",
8713
7735
  "variants": [
8714
7736
  {
8715
- "name": "ERC721Event",
8716
- "type": "openzeppelin_token::erc721::erc721::ERC721Component::Event",
7737
+ "name": "ERC1155Event",
7738
+ "type": "openzeppelin_token::erc1155::erc1155::ERC1155Component::Event",
8717
7739
  "kind": "flat"
8718
7740
  },
8719
7741
  {
@@ -8727,13 +7749,8 @@ var IPClubCollectionABI = [
8727
7749
  "kind": "flat"
8728
7750
  },
8729
7751
  {
8730
- "name": "MemberMinted",
8731
- "type": "ip_club::IPClubCollection::IPClubCollection::MemberMinted",
8732
- "kind": "nested"
8733
- },
8734
- {
8735
- "name": "OpenStatusChanged",
8736
- "type": "ip_club::IPClubCollection::IPClubCollection::OpenStatusChanged",
7752
+ "name": "MembershipCreated",
7753
+ "type": "ip_club::IPClubCollection::IPClubCollection::MembershipCreated",
8737
7754
  "kind": "nested"
8738
7755
  }
8739
7756
  ]
@@ -11535,121 +10552,90 @@ var TicketService = class {
11535
10552
  };
11536
10553
  var ClubService = class {
11537
10554
  constructor(config) {
11538
- const coords = getStarknetCoordinates(config.chain);
11539
- this.registryAddress = coords.ipClubRegistry;
11540
- this.factoryAddress = coords.ipClubFactory;
11541
- }
11542
- _registry(account, registryAddress) {
11543
- const address = registryAddress ?? this.registryAddress;
11544
- if (!address) throw new Error("IP-Club registry address not configured for this chain");
11545
- return newContract(IPClubABI, normalizeAddress("STARKNET", address), account);
10555
+ this.config = config;
10556
+ this.factoryAddress = getStarknetCoordinates(config.chain).ipClubFactory;
11546
10557
  }
11547
10558
  _factory(account, factoryAddress) {
11548
10559
  const address = factoryAddress ?? this.factoryAddress;
11549
10560
  if (!address) throw new Error("IP-Club factory address not configured for this chain");
11550
10561
  return newContract(IPClubFactoryABI, normalizeAddress("STARKNET", address), account);
11551
10562
  }
11552
- _collection(account, collectionAddress) {
11553
- return newContract(IPClubCollectionABI, normalizeAddress("STARKNET", collectionAddress), account);
10563
+ _collection(address, account) {
10564
+ return newContract(IPClubCollectionABI, normalizeAddress("STARKNET", address), account);
10565
+ }
10566
+ _collectionRead(address) {
10567
+ const provider = new starknet.RpcProvider({ nodeUrl: this.config.rpcUrl });
10568
+ return newContract(IPClubCollectionABI, normalizeAddress("STARKNET", address), provider);
11554
10569
  }
11555
- /** Deploy a new per-creator membership ERC-721 collection via the factory. */
11556
- async deployClub(account, params) {
11557
- const maxSupply = starknet.cairo.uint256(params.maxSupply ?? 0xffffffffffffffffn);
11558
- const entryFee = starknet.cairo.uint256(params.entryFee ?? 0n);
11559
- const paymentToken = params.paymentToken ? new starknet.CairoOption(starknet.CairoOptionVariant.Some, params.paymentToken) : new starknet.CairoOption(starknet.CairoOptionVariant.None);
11560
- const royaltyBps = starknet.cairo.uint256(params.royaltyBps ?? 0n);
11561
- const call = this._factory(account, params.factoryAddress).populate("deploy_club", [
10570
+ /**
10571
+ * Deploys a new IPClubCollection via the factory. Caller becomes owner.
10572
+ * `baseUri` is the collection-level metadata URI, embedded on-chain in the
10573
+ * deploy transaction.
10574
+ */
10575
+ async deployCollection(account, params) {
10576
+ const call = this._factory(account, params.factoryAddress).populate("deploy_collection", [
11562
10577
  params.name,
11563
10578
  params.symbol,
11564
- params.baseUri,
11565
- maxSupply,
11566
- entryFee,
11567
- paymentToken,
11568
- royaltyBps
10579
+ params.baseUri
11569
10580
  ]);
11570
10581
  const res = await account.execute([call]);
11571
10582
  return { txHash: res.transaction_hash };
11572
10583
  }
11573
- /** Owner-only pause or resume new mints on a club collection. */
11574
- async setOpen(account, params) {
11575
- const call = this._collection(account, params.collectionAddress).populate("set_open", [params.open]);
10584
+ /** Owner-only. Creates a new membership tier inside the caller's deployed collection. */
10585
+ async createMembership(account, params) {
10586
+ const startTime = params.startTime != null ? new starknet.CairoOption(starknet.CairoOptionVariant.Some, params.startTime) : new starknet.CairoOption(starknet.CairoOptionVariant.None);
10587
+ const endTime = params.endTime != null ? new starknet.CairoOption(starknet.CairoOptionVariant.Some, params.endTime) : new starknet.CairoOption(starknet.CairoOptionVariant.None);
10588
+ const call = this._collection(params.collection, account).populate("create_membership", [
10589
+ starknet.cairo.uint256(params.maxSupply),
10590
+ startTime,
10591
+ endTime,
10592
+ params.royaltyBps,
10593
+ params.metadataUri
10594
+ ]);
11576
10595
  const res = await account.execute([call]);
11577
10596
  return { txHash: res.transaction_hash };
11578
10597
  }
11579
- /** Public mint — caller pays entry fee (if any) and receives the membership NFT. */
11580
- async mintMembership(account, params) {
11581
- const calls = [];
11582
- if (params.entryFee && params.paymentToken && BigInt(params.entryFee) > 0n) {
11583
- const amount = starknet.cairo.uint256(params.entryFee);
11584
- calls.push({
11585
- contractAddress: params.paymentToken,
11586
- entrypoint: "approve",
11587
- calldata: [
11588
- normalizeAddress("STARKNET", params.collectionAddress),
11589
- amount.low.toString(),
11590
- amount.high.toString()
11591
- ]
11592
- });
11593
- }
11594
- calls.push(
11595
- this._collection(account, params.collectionAddress).populate("mint", [
11596
- params.to ?? account.address
11597
- ])
11598
- );
11599
- const res = await account.execute(calls);
11600
- return { txHash: res.transaction_hash };
11601
- }
11602
- // ── Legacy registry methods (retained for backward compatibility) ──────────────
11603
- /** @deprecated Use deployClub — the factory pattern replaced the registry. */
11604
- async createClub(account, params) {
11605
- const maxMembers = params.maxMembers != null ? new starknet.CairoOption(starknet.CairoOptionVariant.Some, params.maxMembers) : new starknet.CairoOption(starknet.CairoOptionVariant.None);
11606
- const entryFee = params.entryFee != null ? new starknet.CairoOption(starknet.CairoOptionVariant.Some, starknet.cairo.uint256(params.entryFee)) : new starknet.CairoOption(starknet.CairoOptionVariant.None);
11607
- const paymentToken = params.paymentToken ? new starknet.CairoOption(starknet.CairoOptionVariant.Some, params.paymentToken) : new starknet.CairoOption(starknet.CairoOptionVariant.None);
11608
- const call = this._registry(account, params.registryAddress).populate("create_club", [
11609
- params.name,
11610
- params.symbol,
11611
- params.metadataUri,
11612
- maxMembers,
11613
- entryFee,
11614
- paymentToken
10598
+ /**
10599
+ * Owner-only. Mints `amount` of `tokenId` to `to`. The validity window
10600
+ * gates membership, never minting — future-window tiers mint fine.
10601
+ */
10602
+ async mint(account, params) {
10603
+ const call = this._collection(params.collection, account).populate("mint", [
10604
+ params.to,
10605
+ starknet.cairo.uint256(params.tokenId),
10606
+ starknet.cairo.uint256(params.amount)
11615
10607
  ]);
11616
10608
  const res = await account.execute([call]);
11617
10609
  return { txHash: res.transaction_hash };
11618
10610
  }
11619
- /** @deprecated Legacy registry use factory-deployed collection methods. */
11620
- async setClubOpen(account, params) {
11621
- const call = this._registry(account, params.registryAddress).populate("set_club_open", [
11622
- starknet.cairo.uint256(params.clubId),
11623
- params.open
10611
+ /** Read true if holder holds any tier currently inside its validity window. */
10612
+ async isMember(params) {
10613
+ const result = await this._collectionRead(params.collection).call("is_member", [
10614
+ params.holder
11624
10615
  ]);
11625
- const res = await account.execute([call]);
11626
- return { txHash: res.transaction_hash };
10616
+ return Boolean(result);
11627
10617
  }
11628
- /** @deprecated Legacy registry use mintMembership with factory-deployed collections. */
11629
- async joinClub(account, params) {
11630
- const registryAddress = params.registryAddress ?? this.registryAddress;
11631
- if (!registryAddress) throw new Error("IP-Club registry address not configured for this chain");
11632
- const calls = [];
11633
- if (params.paymentToken && params.entryFee && BigInt(params.entryFee) > 0n) {
11634
- const amount = starknet.cairo.uint256(params.entryFee);
11635
- calls.push({
11636
- contractAddress: params.paymentToken,
11637
- entrypoint: "approve",
11638
- calldata: [normalizeAddress("STARKNET", registryAddress), amount.low.toString(), amount.high.toString()]
11639
- });
11640
- }
11641
- calls.push(this._registry(account, registryAddress).populate("join_club", [starknet.cairo.uint256(params.clubId)]));
11642
- const res = await account.execute(calls);
11643
- return { txHash: res.transaction_hash };
10618
+ /** Read true if holder holds `tokenId` and the current time is inside its window. */
10619
+ async isMemberOf(params) {
10620
+ const result = await this._collectionRead(params.collection).call("is_member_of", [
10621
+ starknet.cairo.uint256(params.tokenId),
10622
+ params.holder
10623
+ ]);
10624
+ return Boolean(result);
11644
10625
  }
11645
- /** @deprecated Legacy registry use factory-deployed collection burn. */
11646
- async leaveClub(account, params) {
11647
- const call = this._registry(account, params.registryAddress).populate("leave_club", [
11648
- starknet.cairo.uint256(params.clubId),
10626
+ /** Read returns the Membership record for a token ID. */
10627
+ async getMembership(params) {
10628
+ const m = await this._collectionRead(params.collection).call("get_membership", [
11649
10629
  starknet.cairo.uint256(params.tokenId)
11650
10630
  ]);
11651
- const res = await account.execute([call]);
11652
- return { txHash: res.transaction_hash };
10631
+ return {
10632
+ maxSupply: BigInt(m.max_supply),
10633
+ minted: BigInt(m.minted),
10634
+ startTime: m.start_time?.variant === "Some" ? Number(m.start_time.values[0] ?? m.start_time.value) : null,
10635
+ endTime: m.end_time?.variant === "Some" ? Number(m.end_time.values[0] ?? m.end_time.value) : null,
10636
+ royaltyBps: Number(m.royalty_bps),
10637
+ metadataUri: m.metadata_uri
10638
+ };
11653
10639
  }
11654
10640
  };
11655
10641
  var SponsorshipService = class {
@@ -12691,10 +11677,8 @@ exports.DropCollectionABI = DropCollectionABI;
12691
11677
  exports.DropFactoryABI = DropFactoryABI;
12692
11678
  exports.DropService = DropService;
12693
11679
  exports.ERC1155CollectionService = ERC1155CollectionService;
12694
- exports.IPClubABI = IPClubABI;
12695
11680
  exports.IPClubCollectionABI = IPClubCollectionABI;
12696
11681
  exports.IPClubFactoryABI = IPClubFactoryABI;
12697
- exports.IPClubNFTABI = IPClubNFTABI;
12698
11682
  exports.IPCollection1155ABI = IPCollection1155ABI;
12699
11683
  exports.IPCollection1155FactoryABI = IPCollection1155FactoryABI;
12700
11684
  exports.IPCollectionABI = IPCollectionABI;