@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.
package/dist/index.cjs CHANGED
@@ -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
@@ -896,8 +893,6 @@ var STARKNET_DROP_COLLECTION_CLASS_HASH = SN.dropCollectionClassHash;
896
893
  var STARKNET_NFTCOMMENTS_CONTRACT = SN.nftComments;
897
894
  var STARKNET_IP_TICKETS_FACTORY_CONTRACT = SN.ipTicketsFactory;
898
895
  var STARKNET_IP_TICKET_COLLECTION_CLASS_HASH = SN.ipTicketCollectionClassHash;
899
- var STARKNET_IP_CLUB_REGISTRY_CONTRACT = SN.ipClubRegistry;
900
- var STARKNET_IP_CLUB_NFT_CLASS_HASH = SN.ipClubNftClassHash;
901
896
  var STARKNET_IP_CLUB_FACTORY_CONTRACT = SN.ipClubFactory;
902
897
  var STARKNET_IP_CLUB_COLLECTION_CLASS_HASH = SN.ipClubCollectionClassHash;
903
898
  var STARKNET_IP_SPONSORSHIP_CONTRACT = SN.ipSponsorship;
@@ -1064,13 +1059,20 @@ var SERVICES = {
1064
1059
  "ip-club": {
1065
1060
  id: "ip-club",
1066
1061
  displayName: "IP Club",
1067
- description: "Membership clubs with an on-chain NFT membership card.",
1068
- standard: "ERC721",
1062
+ description: "Membership clubs \u2014 create tiers, mint membership cards, trade like any collection.",
1063
+ standard: "ERC1155",
1069
1064
  provenance: "MEDIALANE",
1065
+ onchain: {
1066
+ STARKNET: {
1067
+ factoryAddress: SN2.ipClubFactory,
1068
+ classHash: SN2.ipClubCollectionClassHash
1069
+ }
1070
+ },
1070
1071
  uiVariant: "club",
1071
- capabilities: ["subscribe"],
1072
+ capabilities: ["mint", "list", "buy", "make_offer", "cancel", "transfer"],
1072
1073
  events: [
1073
- { name: "NewClubCreated", emittedBy: "factory" }
1074
+ { name: "ClubDeployed", emittedBy: "factory" },
1075
+ { name: "MembershipCreated", emittedBy: "instance" }
1074
1076
  ],
1075
1077
  metadataSchema: { licenseDefault: "CC BY-SA" }
1076
1078
  },
@@ -6923,12 +6925,12 @@ var IPTicketCollectionFactoryABI = [
6923
6925
  }
6924
6926
  ];
6925
6927
 
6926
- // src/starknet/abis/ipClub.ts
6927
- var IPClubABI = [
6928
+ // src/starknet/abis/ipClubFactory.ts
6929
+ var IPClubFactoryABI = [
6928
6930
  {
6929
6931
  "type": "impl",
6930
- "name": "IPClubImpl",
6931
- "interface_name": "ip_club::interfaces::IIPClub::IIPClub"
6932
+ "name": "IPClubCollectionFactoryImpl",
6933
+ "interface_name": "ip_club::interface::IIPClubCollectionFactory"
6932
6934
  },
6933
6935
  {
6934
6936
  "type": "struct",
@@ -6948,20 +6950,168 @@ var IPClubABI = [
6948
6950
  }
6949
6951
  ]
6950
6952
  },
6953
+ {
6954
+ "type": "interface",
6955
+ "name": "ip_club::interface::IIPClubCollectionFactory",
6956
+ "items": [
6957
+ {
6958
+ "type": "function",
6959
+ "name": "collection_class_hash",
6960
+ "inputs": [],
6961
+ "outputs": [
6962
+ {
6963
+ "type": "core::starknet::class_hash::ClassHash"
6964
+ }
6965
+ ],
6966
+ "state_mutability": "view"
6967
+ },
6968
+ {
6969
+ "type": "function",
6970
+ "name": "version",
6971
+ "inputs": [],
6972
+ "outputs": [
6973
+ {
6974
+ "type": "core::byte_array::ByteArray"
6975
+ }
6976
+ ],
6977
+ "state_mutability": "view"
6978
+ },
6979
+ {
6980
+ "type": "function",
6981
+ "name": "deploy_collection",
6982
+ "inputs": [
6983
+ {
6984
+ "name": "name",
6985
+ "type": "core::byte_array::ByteArray"
6986
+ },
6987
+ {
6988
+ "name": "symbol",
6989
+ "type": "core::byte_array::ByteArray"
6990
+ },
6991
+ {
6992
+ "name": "base_uri",
6993
+ "type": "core::byte_array::ByteArray"
6994
+ }
6995
+ ],
6996
+ "outputs": [
6997
+ {
6998
+ "type": "core::starknet::contract_address::ContractAddress"
6999
+ }
7000
+ ],
7001
+ "state_mutability": "external"
7002
+ }
7003
+ ]
7004
+ },
7005
+ {
7006
+ "type": "impl",
7007
+ "name": "SRC5Impl",
7008
+ "interface_name": "openzeppelin_introspection::interface::ISRC5"
7009
+ },
6951
7010
  {
6952
7011
  "type": "enum",
6953
- "name": "core::option::Option::<core::integer::u32>",
7012
+ "name": "core::bool",
6954
7013
  "variants": [
6955
7014
  {
6956
- "name": "Some",
6957
- "type": "core::integer::u32"
7015
+ "name": "False",
7016
+ "type": "()"
6958
7017
  },
6959
7018
  {
6960
- "name": "None",
7019
+ "name": "True",
6961
7020
  "type": "()"
6962
7021
  }
6963
7022
  ]
6964
7023
  },
7024
+ {
7025
+ "type": "interface",
7026
+ "name": "openzeppelin_introspection::interface::ISRC5",
7027
+ "items": [
7028
+ {
7029
+ "type": "function",
7030
+ "name": "supports_interface",
7031
+ "inputs": [
7032
+ {
7033
+ "name": "interface_id",
7034
+ "type": "core::felt252"
7035
+ }
7036
+ ],
7037
+ "outputs": [
7038
+ {
7039
+ "type": "core::bool"
7040
+ }
7041
+ ],
7042
+ "state_mutability": "view"
7043
+ }
7044
+ ]
7045
+ },
7046
+ {
7047
+ "type": "constructor",
7048
+ "name": "constructor",
7049
+ "inputs": [
7050
+ {
7051
+ "name": "collection_class_hash",
7052
+ "type": "core::starknet::class_hash::ClassHash"
7053
+ }
7054
+ ]
7055
+ },
7056
+ {
7057
+ "type": "event",
7058
+ "name": "openzeppelin_introspection::src5::SRC5Component::Event",
7059
+ "kind": "enum",
7060
+ "variants": []
7061
+ },
7062
+ {
7063
+ "type": "event",
7064
+ "name": "ip_club::IPClubCollectionFactory::IPClubCollectionFactory::ClubDeployed",
7065
+ "kind": "struct",
7066
+ "members": [
7067
+ {
7068
+ "name": "collection_address",
7069
+ "type": "core::starknet::contract_address::ContractAddress",
7070
+ "kind": "key"
7071
+ },
7072
+ {
7073
+ "name": "owner",
7074
+ "type": "core::starknet::contract_address::ContractAddress",
7075
+ "kind": "key"
7076
+ },
7077
+ {
7078
+ "name": "name",
7079
+ "type": "core::byte_array::ByteArray",
7080
+ "kind": "data"
7081
+ },
7082
+ {
7083
+ "name": "symbol",
7084
+ "type": "core::byte_array::ByteArray",
7085
+ "kind": "data"
7086
+ }
7087
+ ]
7088
+ },
7089
+ {
7090
+ "type": "event",
7091
+ "name": "ip_club::IPClubCollectionFactory::IPClubCollectionFactory::Event",
7092
+ "kind": "enum",
7093
+ "variants": [
7094
+ {
7095
+ "name": "SRC5Event",
7096
+ "type": "openzeppelin_introspection::src5::SRC5Component::Event",
7097
+ "kind": "flat"
7098
+ },
7099
+ {
7100
+ "name": "ClubDeployed",
7101
+ "type": "ip_club::IPClubCollectionFactory::IPClubCollectionFactory::ClubDeployed",
7102
+ "kind": "nested"
7103
+ }
7104
+ ]
7105
+ }
7106
+ ];
7107
+
7108
+ // src/starknet/abis/ipClubCollection.ts
7109
+ var IPClubCollectionABI = [
7110
+ {
7111
+ "type": "impl",
7112
+ "name": "ERC1155MetadataURIImpl",
7113
+ "interface_name": "openzeppelin_token::erc1155::interface::IERC1155MetadataURI"
7114
+ },
6965
7115
  {
6966
7116
  "type": "struct",
6967
7117
  "name": "core::integer::u256",
@@ -6977,26 +7127,57 @@ var IPClubABI = [
6977
7127
  ]
6978
7128
  },
6979
7129
  {
6980
- "type": "enum",
6981
- "name": "core::option::Option::<core::integer::u256>",
6982
- "variants": [
7130
+ "type": "struct",
7131
+ "name": "core::byte_array::ByteArray",
7132
+ "members": [
6983
7133
  {
6984
- "name": "Some",
6985
- "type": "core::integer::u256"
7134
+ "name": "data",
7135
+ "type": "core::array::Array::<core::bytes_31::bytes31>"
6986
7136
  },
6987
7137
  {
6988
- "name": "None",
6989
- "type": "()"
7138
+ "name": "pending_word",
7139
+ "type": "core::felt252"
7140
+ },
7141
+ {
7142
+ "name": "pending_word_len",
7143
+ "type": "core::internal::bounded_int::BoundedInt::<0, 30>"
7144
+ }
7145
+ ]
7146
+ },
7147
+ {
7148
+ "type": "interface",
7149
+ "name": "openzeppelin_token::erc1155::interface::IERC1155MetadataURI",
7150
+ "items": [
7151
+ {
7152
+ "type": "function",
7153
+ "name": "uri",
7154
+ "inputs": [
7155
+ {
7156
+ "name": "token_id",
7157
+ "type": "core::integer::u256"
7158
+ }
7159
+ ],
7160
+ "outputs": [
7161
+ {
7162
+ "type": "core::byte_array::ByteArray"
7163
+ }
7164
+ ],
7165
+ "state_mutability": "view"
6990
7166
  }
6991
7167
  ]
6992
7168
  },
7169
+ {
7170
+ "type": "impl",
7171
+ "name": "IPClubCollectionImpl",
7172
+ "interface_name": "ip_club::interface::IIPClubCollection"
7173
+ },
6993
7174
  {
6994
7175
  "type": "enum",
6995
- "name": "core::option::Option::<core::starknet::contract_address::ContractAddress>",
7176
+ "name": "core::option::Option::<core::integer::u64>",
6996
7177
  "variants": [
6997
7178
  {
6998
7179
  "name": "Some",
6999
- "type": "core::starknet::contract_address::ContractAddress"
7180
+ "type": "core::integer::u64"
7000
7181
  },
7001
7182
  {
7002
7183
  "name": "None",
@@ -7020,69 +7201,61 @@ var IPClubABI = [
7020
7201
  },
7021
7202
  {
7022
7203
  "type": "struct",
7023
- "name": "ip_club::types::ClubRecord",
7204
+ "name": "ip_club::types::Membership",
7024
7205
  "members": [
7025
7206
  {
7026
- "name": "creator",
7027
- "type": "core::starknet::contract_address::ContractAddress"
7028
- },
7029
- {
7030
- "name": "club_nft",
7031
- "type": "core::starknet::contract_address::ContractAddress"
7207
+ "name": "max_supply",
7208
+ "type": "core::integer::u256"
7032
7209
  },
7033
7210
  {
7034
- "name": "open",
7035
- "type": "core::bool"
7211
+ "name": "minted",
7212
+ "type": "core::integer::u256"
7036
7213
  },
7037
7214
  {
7038
- "name": "num_members",
7039
- "type": "core::integer::u32"
7215
+ "name": "start_time",
7216
+ "type": "core::option::Option::<core::integer::u64>"
7040
7217
  },
7041
7218
  {
7042
- "name": "max_members",
7043
- "type": "core::option::Option::<core::integer::u32>"
7219
+ "name": "end_time",
7220
+ "type": "core::option::Option::<core::integer::u64>"
7044
7221
  },
7045
7222
  {
7046
- "name": "entry_fee",
7047
- "type": "core::option::Option::<core::integer::u256>"
7223
+ "name": "royalty_bps",
7224
+ "type": "core::integer::u16"
7048
7225
  },
7049
7226
  {
7050
- "name": "payment_token",
7051
- "type": "core::option::Option::<core::starknet::contract_address::ContractAddress>"
7227
+ "name": "metadata_uri",
7228
+ "type": "core::byte_array::ByteArray"
7052
7229
  }
7053
7230
  ]
7054
7231
  },
7055
7232
  {
7056
7233
  "type": "interface",
7057
- "name": "ip_club::interfaces::IIPClub::IIPClub",
7234
+ "name": "ip_club::interface::IIPClubCollection",
7058
7235
  "items": [
7059
7236
  {
7060
7237
  "type": "function",
7061
- "name": "create_club",
7238
+ "name": "create_membership",
7062
7239
  "inputs": [
7063
7240
  {
7064
- "name": "name",
7065
- "type": "core::byte_array::ByteArray"
7066
- },
7067
- {
7068
- "name": "symbol",
7069
- "type": "core::byte_array::ByteArray"
7241
+ "name": "max_supply",
7242
+ "type": "core::integer::u256"
7070
7243
  },
7071
7244
  {
7072
- "name": "metadata_uri",
7073
- "type": "core::byte_array::ByteArray"
7245
+ "name": "start_time",
7246
+ "type": "core::option::Option::<core::integer::u64>"
7074
7247
  },
7075
7248
  {
7076
- "name": "max_members",
7077
- "type": "core::option::Option::<core::integer::u32>"
7249
+ "name": "end_time",
7250
+ "type": "core::option::Option::<core::integer::u64>"
7078
7251
  },
7079
7252
  {
7080
- "name": "entry_fee",
7081
- "type": "core::option::Option::<core::integer::u256>"
7253
+ "name": "royalty_bps",
7254
+ "type": "core::integer::u16"
7082
7255
  },
7083
7256
  {
7084
- "name": "payment_token",
7085
- "type": "core::option::Option::<core::starknet::contract_address::ContractAddress>"
7257
+ "name": "metadata_uri",
7258
+ "type": "core::byte_array::ByteArray"
7086
7259
  }
7087
7260
  ],
7088
7261
  "outputs": [
@@ -7094,1290 +7267,105 @@ var IPClubABI = [
7094
7267
  },
7095
7268
  {
7096
7269
  "type": "function",
7097
- "name": "set_club_open",
7270
+ "name": "mint",
7098
7271
  "inputs": [
7099
7272
  {
7100
- "name": "club_id",
7273
+ "name": "to",
7274
+ "type": "core::starknet::contract_address::ContractAddress"
7275
+ },
7276
+ {
7277
+ "name": "token_id",
7101
7278
  "type": "core::integer::u256"
7102
7279
  },
7103
7280
  {
7104
- "name": "open",
7105
- "type": "core::bool"
7106
- }
7107
- ],
7108
- "outputs": [],
7109
- "state_mutability": "external"
7110
- },
7111
- {
7112
- "type": "function",
7113
- "name": "join_club",
7114
- "inputs": [
7115
- {
7116
- "name": "club_id",
7117
- "type": "core::integer::u256"
7118
- }
7119
- ],
7120
- "outputs": [],
7121
- "state_mutability": "external"
7122
- },
7123
- {
7124
- "type": "function",
7125
- "name": "leave_club",
7126
- "inputs": [
7127
- {
7128
- "name": "club_id",
7129
- "type": "core::integer::u256"
7130
- },
7131
- {
7132
- "name": "token_id",
7133
- "type": "core::integer::u256"
7134
- }
7135
- ],
7136
- "outputs": [],
7137
- "state_mutability": "external"
7138
- },
7139
- {
7140
- "type": "function",
7141
- "name": "get_club_record",
7142
- "inputs": [
7143
- {
7144
- "name": "club_id",
7145
- "type": "core::integer::u256"
7146
- }
7147
- ],
7148
- "outputs": [
7149
- {
7150
- "type": "ip_club::types::ClubRecord"
7151
- }
7152
- ],
7153
- "state_mutability": "view"
7154
- },
7155
- {
7156
- "type": "function",
7157
- "name": "is_member",
7158
- "inputs": [
7159
- {
7160
- "name": "club_id",
7161
- "type": "core::integer::u256"
7162
- },
7163
- {
7164
- "name": "user",
7165
- "type": "core::starknet::contract_address::ContractAddress"
7166
- }
7167
- ],
7168
- "outputs": [
7169
- {
7170
- "type": "core::bool"
7171
- }
7172
- ],
7173
- "state_mutability": "view"
7174
- },
7175
- {
7176
- "type": "function",
7177
- "name": "get_last_club_id",
7178
- "inputs": [],
7179
- "outputs": [
7180
- {
7181
- "type": "core::integer::u256"
7182
- }
7183
- ],
7184
- "state_mutability": "view"
7185
- }
7186
- ]
7187
- },
7188
- {
7189
- "type": "impl",
7190
- "name": "SRC5Impl",
7191
- "interface_name": "openzeppelin_introspection::interface::ISRC5"
7192
- },
7193
- {
7194
- "type": "interface",
7195
- "name": "openzeppelin_introspection::interface::ISRC5",
7196
- "items": [
7197
- {
7198
- "type": "function",
7199
- "name": "supports_interface",
7200
- "inputs": [
7201
- {
7202
- "name": "interface_id",
7203
- "type": "core::felt252"
7204
- }
7205
- ],
7206
- "outputs": [
7207
- {
7208
- "type": "core::bool"
7209
- }
7210
- ],
7211
- "state_mutability": "view"
7212
- }
7213
- ]
7214
- },
7215
- {
7216
- "type": "constructor",
7217
- "name": "constructor",
7218
- "inputs": [
7219
- {
7220
- "name": "ip_club_nft_class_hash",
7221
- "type": "core::starknet::class_hash::ClassHash"
7222
- }
7223
- ]
7224
- },
7225
- {
7226
- "type": "event",
7227
- "name": "openzeppelin_introspection::src5::SRC5Component::Event",
7228
- "kind": "enum",
7229
- "variants": []
7230
- },
7231
- {
7232
- "type": "event",
7233
- "name": "ip_club::events::NewClubCreated",
7234
- "kind": "struct",
7235
- "members": [
7236
- {
7237
- "name": "club_id",
7238
- "type": "core::integer::u256",
7239
- "kind": "key"
7240
- },
7241
- {
7242
- "name": "creator",
7243
- "type": "core::starknet::contract_address::ContractAddress",
7244
- "kind": "key"
7245
- },
7246
- {
7247
- "name": "club_nft",
7248
- "type": "core::starknet::contract_address::ContractAddress",
7249
- "kind": "data"
7250
- },
7251
- {
7252
- "name": "metadata_uri",
7253
- "type": "core::byte_array::ByteArray",
7254
- "kind": "data"
7255
- },
7256
- {
7257
- "name": "timestamp",
7258
- "type": "core::integer::u64",
7259
- "kind": "data"
7260
- }
7261
- ]
7262
- },
7263
- {
7264
- "type": "event",
7265
- "name": "ip_club::events::ClubStatusUpdated",
7266
- "kind": "struct",
7267
- "members": [
7268
- {
7269
- "name": "club_id",
7270
- "type": "core::integer::u256",
7271
- "kind": "key"
7272
- },
7273
- {
7274
- "name": "open",
7275
- "type": "core::bool",
7276
- "kind": "data"
7277
- },
7278
- {
7279
- "name": "timestamp",
7280
- "type": "core::integer::u64",
7281
- "kind": "data"
7282
- }
7283
- ]
7284
- },
7285
- {
7286
- "type": "event",
7287
- "name": "ip_club::events::NewMember",
7288
- "kind": "struct",
7289
- "members": [
7290
- {
7291
- "name": "club_id",
7292
- "type": "core::integer::u256",
7293
- "kind": "key"
7294
- },
7295
- {
7296
- "name": "member",
7297
- "type": "core::starknet::contract_address::ContractAddress",
7298
- "kind": "key"
7299
- },
7300
- {
7301
- "name": "timestamp",
7302
- "type": "core::integer::u64",
7303
- "kind": "data"
7304
- }
7305
- ]
7306
- },
7307
- {
7308
- "type": "event",
7309
- "name": "ip_club::events::MemberLeft",
7310
- "kind": "struct",
7311
- "members": [
7312
- {
7313
- "name": "club_id",
7314
- "type": "core::integer::u256",
7315
- "kind": "key"
7316
- },
7317
- {
7318
- "name": "member",
7319
- "type": "core::starknet::contract_address::ContractAddress",
7320
- "kind": "key"
7321
- },
7322
- {
7323
- "name": "timestamp",
7324
- "type": "core::integer::u64",
7325
- "kind": "data"
7326
- }
7327
- ]
7328
- },
7329
- {
7330
- "type": "event",
7331
- "name": "ip_club::IPClub::IPClub::Event",
7332
- "kind": "enum",
7333
- "variants": [
7334
- {
7335
- "name": "SRC5Event",
7336
- "type": "openzeppelin_introspection::src5::SRC5Component::Event",
7337
- "kind": "flat"
7338
- },
7339
- {
7340
- "name": "NewClubCreated",
7341
- "type": "ip_club::events::NewClubCreated",
7342
- "kind": "nested"
7343
- },
7344
- {
7345
- "name": "ClubStatusUpdated",
7346
- "type": "ip_club::events::ClubStatusUpdated",
7347
- "kind": "nested"
7348
- },
7349
- {
7350
- "name": "NewMember",
7351
- "type": "ip_club::events::NewMember",
7352
- "kind": "nested"
7353
- },
7354
- {
7355
- "name": "MemberLeft",
7356
- "type": "ip_club::events::MemberLeft",
7357
- "kind": "nested"
7358
- }
7359
- ]
7360
- }
7361
- ];
7362
-
7363
- // src/starknet/abis/ipClubNft.ts
7364
- var IPClubNFTABI = [
7365
- {
7366
- "type": "impl",
7367
- "name": "IIPClubNFTImpl",
7368
- "interface_name": "ip_club::interfaces::IIPClubNFT::IIPClubNFT"
7369
- },
7370
- {
7371
- "type": "struct",
7372
- "name": "core::integer::u256",
7373
- "members": [
7374
- {
7375
- "name": "low",
7376
- "type": "core::integer::u128"
7377
- },
7378
- {
7379
- "name": "high",
7380
- "type": "core::integer::u128"
7381
- }
7382
- ]
7383
- },
7384
- {
7385
- "type": "enum",
7386
- "name": "core::bool",
7387
- "variants": [
7388
- {
7389
- "name": "False",
7390
- "type": "()"
7391
- },
7392
- {
7393
- "name": "True",
7394
- "type": "()"
7395
- }
7396
- ]
7397
- },
7398
- {
7399
- "type": "interface",
7400
- "name": "ip_club::interfaces::IIPClubNFT::IIPClubNFT",
7401
- "items": [
7402
- {
7403
- "type": "function",
7404
- "name": "mint",
7405
- "inputs": [
7406
- {
7407
- "name": "recipient",
7408
- "type": "core::starknet::contract_address::ContractAddress"
7409
- }
7410
- ],
7411
- "outputs": [],
7412
- "state_mutability": "external"
7413
- },
7414
- {
7415
- "type": "function",
7416
- "name": "burn",
7417
- "inputs": [
7418
- {
7419
- "name": "member",
7420
- "type": "core::starknet::contract_address::ContractAddress"
7421
- },
7422
- {
7423
- "name": "token_id",
7424
- "type": "core::integer::u256"
7425
- }
7426
- ],
7427
- "outputs": [],
7428
- "state_mutability": "external"
7429
- },
7430
- {
7431
- "type": "function",
7432
- "name": "has_nft",
7433
- "inputs": [
7434
- {
7435
- "name": "user",
7436
- "type": "core::starknet::contract_address::ContractAddress"
7437
- }
7438
- ],
7439
- "outputs": [
7440
- {
7441
- "type": "core::bool"
7442
- }
7443
- ],
7444
- "state_mutability": "view"
7445
- },
7446
- {
7447
- "type": "function",
7448
- "name": "get_nft_creator",
7449
- "inputs": [],
7450
- "outputs": [
7451
- {
7452
- "type": "core::starknet::contract_address::ContractAddress"
7453
- }
7454
- ],
7455
- "state_mutability": "view"
7456
- },
7457
- {
7458
- "type": "function",
7459
- "name": "get_ip_club_manager",
7460
- "inputs": [],
7461
- "outputs": [
7462
- {
7463
- "type": "core::starknet::contract_address::ContractAddress"
7464
- }
7465
- ],
7466
- "state_mutability": "view"
7467
- },
7468
- {
7469
- "type": "function",
7470
- "name": "get_associated_club_id",
7471
- "inputs": [],
7472
- "outputs": [
7473
- {
7474
- "type": "core::integer::u256"
7475
- }
7476
- ],
7477
- "state_mutability": "view"
7478
- },
7479
- {
7480
- "type": "function",
7481
- "name": "get_last_minted_id",
7482
- "inputs": [],
7483
- "outputs": [
7484
- {
7485
- "type": "core::integer::u256"
7486
- }
7487
- ],
7488
- "state_mutability": "view"
7489
- }
7490
- ]
7491
- },
7492
- {
7493
- "type": "impl",
7494
- "name": "ERC721MixinImpl",
7495
- "interface_name": "openzeppelin_token::erc721::interface::ERC721ABI"
7496
- },
7497
- {
7498
- "type": "struct",
7499
- "name": "core::array::Span::<core::felt252>",
7500
- "members": [
7501
- {
7502
- "name": "snapshot",
7503
- "type": "@core::array::Array::<core::felt252>"
7504
- }
7505
- ]
7506
- },
7507
- {
7508
- "type": "struct",
7509
- "name": "core::byte_array::ByteArray",
7510
- "members": [
7511
- {
7512
- "name": "data",
7513
- "type": "core::array::Array::<core::bytes_31::bytes31>"
7514
- },
7515
- {
7516
- "name": "pending_word",
7517
- "type": "core::felt252"
7518
- },
7519
- {
7520
- "name": "pending_word_len",
7521
- "type": "core::internal::bounded_int::BoundedInt::<0, 30>"
7522
- }
7523
- ]
7524
- },
7525
- {
7526
- "type": "interface",
7527
- "name": "openzeppelin_token::erc721::interface::ERC721ABI",
7528
- "items": [
7529
- {
7530
- "type": "function",
7531
- "name": "balance_of",
7532
- "inputs": [
7533
- {
7534
- "name": "account",
7535
- "type": "core::starknet::contract_address::ContractAddress"
7536
- }
7537
- ],
7538
- "outputs": [
7539
- {
7540
- "type": "core::integer::u256"
7541
- }
7542
- ],
7543
- "state_mutability": "view"
7544
- },
7545
- {
7546
- "type": "function",
7547
- "name": "owner_of",
7548
- "inputs": [
7549
- {
7550
- "name": "token_id",
7551
- "type": "core::integer::u256"
7552
- }
7553
- ],
7554
- "outputs": [
7555
- {
7556
- "type": "core::starknet::contract_address::ContractAddress"
7557
- }
7558
- ],
7559
- "state_mutability": "view"
7560
- },
7561
- {
7562
- "type": "function",
7563
- "name": "safe_transfer_from",
7564
- "inputs": [
7565
- {
7566
- "name": "from",
7567
- "type": "core::starknet::contract_address::ContractAddress"
7568
- },
7569
- {
7570
- "name": "to",
7571
- "type": "core::starknet::contract_address::ContractAddress"
7572
- },
7573
- {
7574
- "name": "token_id",
7575
- "type": "core::integer::u256"
7576
- },
7577
- {
7578
- "name": "data",
7579
- "type": "core::array::Span::<core::felt252>"
7580
- }
7581
- ],
7582
- "outputs": [],
7583
- "state_mutability": "external"
7584
- },
7585
- {
7586
- "type": "function",
7587
- "name": "transfer_from",
7588
- "inputs": [
7589
- {
7590
- "name": "from",
7591
- "type": "core::starknet::contract_address::ContractAddress"
7592
- },
7593
- {
7594
- "name": "to",
7595
- "type": "core::starknet::contract_address::ContractAddress"
7596
- },
7597
- {
7598
- "name": "token_id",
7599
- "type": "core::integer::u256"
7600
- }
7601
- ],
7602
- "outputs": [],
7603
- "state_mutability": "external"
7604
- },
7605
- {
7606
- "type": "function",
7607
- "name": "approve",
7608
- "inputs": [
7609
- {
7610
- "name": "to",
7611
- "type": "core::starknet::contract_address::ContractAddress"
7612
- },
7613
- {
7614
- "name": "token_id",
7615
- "type": "core::integer::u256"
7616
- }
7617
- ],
7618
- "outputs": [],
7619
- "state_mutability": "external"
7620
- },
7621
- {
7622
- "type": "function",
7623
- "name": "set_approval_for_all",
7624
- "inputs": [
7625
- {
7626
- "name": "operator",
7627
- "type": "core::starknet::contract_address::ContractAddress"
7628
- },
7629
- {
7630
- "name": "approved",
7631
- "type": "core::bool"
7632
- }
7633
- ],
7634
- "outputs": [],
7635
- "state_mutability": "external"
7636
- },
7637
- {
7638
- "type": "function",
7639
- "name": "get_approved",
7640
- "inputs": [
7641
- {
7642
- "name": "token_id",
7643
- "type": "core::integer::u256"
7644
- }
7645
- ],
7646
- "outputs": [
7647
- {
7648
- "type": "core::starknet::contract_address::ContractAddress"
7649
- }
7650
- ],
7651
- "state_mutability": "view"
7652
- },
7653
- {
7654
- "type": "function",
7655
- "name": "is_approved_for_all",
7656
- "inputs": [
7657
- {
7658
- "name": "owner",
7659
- "type": "core::starknet::contract_address::ContractAddress"
7660
- },
7661
- {
7662
- "name": "operator",
7663
- "type": "core::starknet::contract_address::ContractAddress"
7664
- }
7665
- ],
7666
- "outputs": [
7667
- {
7668
- "type": "core::bool"
7669
- }
7670
- ],
7671
- "state_mutability": "view"
7672
- },
7673
- {
7674
- "type": "function",
7675
- "name": "supports_interface",
7676
- "inputs": [
7677
- {
7678
- "name": "interface_id",
7679
- "type": "core::felt252"
7680
- }
7681
- ],
7682
- "outputs": [
7683
- {
7684
- "type": "core::bool"
7685
- }
7686
- ],
7687
- "state_mutability": "view"
7688
- },
7689
- {
7690
- "type": "function",
7691
- "name": "name",
7692
- "inputs": [],
7693
- "outputs": [
7694
- {
7695
- "type": "core::byte_array::ByteArray"
7696
- }
7697
- ],
7698
- "state_mutability": "view"
7699
- },
7700
- {
7701
- "type": "function",
7702
- "name": "symbol",
7703
- "inputs": [],
7704
- "outputs": [
7705
- {
7706
- "type": "core::byte_array::ByteArray"
7707
- }
7708
- ],
7709
- "state_mutability": "view"
7710
- },
7711
- {
7712
- "type": "function",
7713
- "name": "token_uri",
7714
- "inputs": [
7715
- {
7716
- "name": "token_id",
7717
- "type": "core::integer::u256"
7718
- }
7719
- ],
7720
- "outputs": [
7721
- {
7722
- "type": "core::byte_array::ByteArray"
7723
- }
7724
- ],
7725
- "state_mutability": "view"
7726
- },
7727
- {
7728
- "type": "function",
7729
- "name": "balanceOf",
7730
- "inputs": [
7731
- {
7732
- "name": "account",
7733
- "type": "core::starknet::contract_address::ContractAddress"
7734
- }
7735
- ],
7736
- "outputs": [
7737
- {
7738
- "type": "core::integer::u256"
7739
- }
7740
- ],
7741
- "state_mutability": "view"
7742
- },
7743
- {
7744
- "type": "function",
7745
- "name": "ownerOf",
7746
- "inputs": [
7747
- {
7748
- "name": "tokenId",
7749
- "type": "core::integer::u256"
7750
- }
7751
- ],
7752
- "outputs": [
7753
- {
7754
- "type": "core::starknet::contract_address::ContractAddress"
7755
- }
7756
- ],
7757
- "state_mutability": "view"
7758
- },
7759
- {
7760
- "type": "function",
7761
- "name": "safeTransferFrom",
7762
- "inputs": [
7763
- {
7764
- "name": "from",
7765
- "type": "core::starknet::contract_address::ContractAddress"
7766
- },
7767
- {
7768
- "name": "to",
7769
- "type": "core::starknet::contract_address::ContractAddress"
7770
- },
7771
- {
7772
- "name": "tokenId",
7773
- "type": "core::integer::u256"
7774
- },
7775
- {
7776
- "name": "data",
7777
- "type": "core::array::Span::<core::felt252>"
7778
- }
7779
- ],
7780
- "outputs": [],
7781
- "state_mutability": "external"
7782
- },
7783
- {
7784
- "type": "function",
7785
- "name": "transferFrom",
7786
- "inputs": [
7787
- {
7788
- "name": "from",
7789
- "type": "core::starknet::contract_address::ContractAddress"
7790
- },
7791
- {
7792
- "name": "to",
7793
- "type": "core::starknet::contract_address::ContractAddress"
7794
- },
7795
- {
7796
- "name": "tokenId",
7797
- "type": "core::integer::u256"
7798
- }
7799
- ],
7800
- "outputs": [],
7801
- "state_mutability": "external"
7802
- },
7803
- {
7804
- "type": "function",
7805
- "name": "setApprovalForAll",
7806
- "inputs": [
7807
- {
7808
- "name": "operator",
7809
- "type": "core::starknet::contract_address::ContractAddress"
7810
- },
7811
- {
7812
- "name": "approved",
7813
- "type": "core::bool"
7814
- }
7815
- ],
7816
- "outputs": [],
7817
- "state_mutability": "external"
7818
- },
7819
- {
7820
- "type": "function",
7821
- "name": "getApproved",
7822
- "inputs": [
7823
- {
7824
- "name": "tokenId",
7825
- "type": "core::integer::u256"
7826
- }
7827
- ],
7828
- "outputs": [
7829
- {
7830
- "type": "core::starknet::contract_address::ContractAddress"
7831
- }
7832
- ],
7833
- "state_mutability": "view"
7834
- },
7835
- {
7836
- "type": "function",
7837
- "name": "isApprovedForAll",
7838
- "inputs": [
7839
- {
7840
- "name": "owner",
7841
- "type": "core::starknet::contract_address::ContractAddress"
7842
- },
7843
- {
7844
- "name": "operator",
7845
- "type": "core::starknet::contract_address::ContractAddress"
7846
- }
7847
- ],
7848
- "outputs": [
7849
- {
7850
- "type": "core::bool"
7851
- }
7852
- ],
7853
- "state_mutability": "view"
7854
- },
7855
- {
7856
- "type": "function",
7857
- "name": "tokenURI",
7858
- "inputs": [
7859
- {
7860
- "name": "tokenId",
7861
- "type": "core::integer::u256"
7862
- }
7863
- ],
7864
- "outputs": [
7865
- {
7866
- "type": "core::byte_array::ByteArray"
7867
- }
7868
- ],
7869
- "state_mutability": "view"
7870
- }
7871
- ]
7872
- },
7873
- {
7874
- "type": "constructor",
7875
- "name": "constructor",
7876
- "inputs": [
7877
- {
7878
- "name": "name",
7879
- "type": "core::byte_array::ByteArray"
7880
- },
7881
- {
7882
- "name": "symbol",
7883
- "type": "core::byte_array::ByteArray"
7884
- },
7885
- {
7886
- "name": "club_id",
7887
- "type": "core::integer::u256"
7888
- },
7889
- {
7890
- "name": "creator",
7891
- "type": "core::starknet::contract_address::ContractAddress"
7892
- },
7893
- {
7894
- "name": "ip_club_manager",
7895
- "type": "core::starknet::contract_address::ContractAddress"
7896
- },
7897
- {
7898
- "name": "metadata_uri",
7899
- "type": "core::byte_array::ByteArray"
7900
- }
7901
- ]
7902
- },
7903
- {
7904
- "type": "event",
7905
- "name": "openzeppelin_token::erc721::erc721::ERC721Component::Transfer",
7906
- "kind": "struct",
7907
- "members": [
7908
- {
7909
- "name": "from",
7910
- "type": "core::starknet::contract_address::ContractAddress",
7911
- "kind": "key"
7912
- },
7913
- {
7914
- "name": "to",
7915
- "type": "core::starknet::contract_address::ContractAddress",
7916
- "kind": "key"
7917
- },
7918
- {
7919
- "name": "token_id",
7920
- "type": "core::integer::u256",
7921
- "kind": "key"
7922
- }
7923
- ]
7924
- },
7925
- {
7926
- "type": "event",
7927
- "name": "openzeppelin_token::erc721::erc721::ERC721Component::Approval",
7928
- "kind": "struct",
7929
- "members": [
7930
- {
7931
- "name": "owner",
7932
- "type": "core::starknet::contract_address::ContractAddress",
7933
- "kind": "key"
7934
- },
7935
- {
7936
- "name": "approved",
7937
- "type": "core::starknet::contract_address::ContractAddress",
7938
- "kind": "key"
7939
- },
7940
- {
7941
- "name": "token_id",
7942
- "type": "core::integer::u256",
7943
- "kind": "key"
7944
- }
7945
- ]
7946
- },
7947
- {
7948
- "type": "event",
7949
- "name": "openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll",
7950
- "kind": "struct",
7951
- "members": [
7952
- {
7953
- "name": "owner",
7954
- "type": "core::starknet::contract_address::ContractAddress",
7955
- "kind": "key"
7956
- },
7957
- {
7958
- "name": "operator",
7959
- "type": "core::starknet::contract_address::ContractAddress",
7960
- "kind": "key"
7961
- },
7962
- {
7963
- "name": "approved",
7964
- "type": "core::bool",
7965
- "kind": "data"
7966
- }
7967
- ]
7968
- },
7969
- {
7970
- "type": "event",
7971
- "name": "openzeppelin_token::erc721::erc721::ERC721Component::Event",
7972
- "kind": "enum",
7973
- "variants": [
7974
- {
7975
- "name": "Transfer",
7976
- "type": "openzeppelin_token::erc721::erc721::ERC721Component::Transfer",
7977
- "kind": "nested"
7978
- },
7979
- {
7980
- "name": "Approval",
7981
- "type": "openzeppelin_token::erc721::erc721::ERC721Component::Approval",
7982
- "kind": "nested"
7983
- },
7984
- {
7985
- "name": "ApprovalForAll",
7986
- "type": "openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll",
7987
- "kind": "nested"
7988
- }
7989
- ]
7990
- },
7991
- {
7992
- "type": "event",
7993
- "name": "openzeppelin_introspection::src5::SRC5Component::Event",
7994
- "kind": "enum",
7995
- "variants": []
7996
- },
7997
- {
7998
- "type": "event",
7999
- "name": "ip_club::IPClubNFT::IPClubNFT::Event",
8000
- "kind": "enum",
8001
- "variants": [
8002
- {
8003
- "name": "ERC721Event",
8004
- "type": "openzeppelin_token::erc721::erc721::ERC721Component::Event",
8005
- "kind": "flat"
8006
- },
8007
- {
8008
- "name": "SRC5Event",
8009
- "type": "openzeppelin_introspection::src5::SRC5Component::Event",
8010
- "kind": "flat"
8011
- }
8012
- ]
8013
- }
8014
- ];
8015
-
8016
- // src/starknet/abis/ipClubFactory.ts
8017
- var IPClubFactoryABI = [
8018
- {
8019
- "type": "impl",
8020
- "name": "IPClubFactoryImpl",
8021
- "interface_name": "ip_club::interface::IIPClubFactory"
8022
- },
8023
- {
8024
- "type": "struct",
8025
- "name": "core::byte_array::ByteArray",
8026
- "members": [
8027
- { "name": "data", "type": "core::array::Array::<core::bytes_31::bytes31>" },
8028
- { "name": "pending_word", "type": "core::felt252" },
8029
- { "name": "pending_word_len", "type": "core::internal::bounded_int::BoundedInt::<0, 30>" }
8030
- ]
8031
- },
8032
- {
8033
- "type": "struct",
8034
- "name": "core::integer::u256",
8035
- "members": [
8036
- { "name": "low", "type": "core::integer::u128" },
8037
- { "name": "high", "type": "core::integer::u128" }
8038
- ]
8039
- },
8040
- {
8041
- "type": "enum",
8042
- "name": "core::option::Option::<core::starknet::contract_address::ContractAddress>",
8043
- "variants": [
8044
- { "name": "Some", "type": "core::starknet::contract_address::ContractAddress" },
8045
- { "name": "None", "type": "()" }
8046
- ]
8047
- },
8048
- {
8049
- "type": "interface",
8050
- "name": "ip_club::interface::IIPClubFactory",
8051
- "items": [
8052
- {
8053
- "type": "function",
8054
- "name": "collection_class_hash",
8055
- "inputs": [],
8056
- "outputs": [{ "type": "core::starknet::class_hash::ClassHash" }],
8057
- "state_mutability": "view"
8058
- },
8059
- {
8060
- "type": "function",
8061
- "name": "version",
8062
- "inputs": [],
8063
- "outputs": [{ "type": "core::byte_array::ByteArray" }],
8064
- "state_mutability": "view"
8065
- },
8066
- {
8067
- "type": "function",
8068
- "name": "deploy_club",
8069
- "inputs": [
8070
- { "name": "name", "type": "core::byte_array::ByteArray" },
8071
- { "name": "symbol", "type": "core::byte_array::ByteArray" },
8072
- { "name": "base_uri", "type": "core::byte_array::ByteArray" },
8073
- { "name": "max_supply", "type": "core::integer::u256" },
8074
- { "name": "entry_fee", "type": "core::integer::u256" },
8075
- { "name": "payment_token", "type": "core::option::Option::<core::starknet::contract_address::ContractAddress>" },
8076
- { "name": "royalty_bps", "type": "core::integer::u256" }
8077
- ],
8078
- "outputs": [{ "type": "core::starknet::contract_address::ContractAddress" }],
8079
- "state_mutability": "external"
8080
- }
8081
- ]
8082
- },
8083
- {
8084
- "type": "impl",
8085
- "name": "SRC5Impl",
8086
- "interface_name": "openzeppelin_introspection::interface::ISRC5"
8087
- },
8088
- {
8089
- "type": "enum",
8090
- "name": "core::bool",
8091
- "variants": [
8092
- { "name": "False", "type": "()" },
8093
- { "name": "True", "type": "()" }
8094
- ]
8095
- },
8096
- {
8097
- "type": "interface",
8098
- "name": "openzeppelin_introspection::interface::ISRC5",
8099
- "items": [
8100
- {
8101
- "type": "function",
8102
- "name": "supports_interface",
8103
- "inputs": [{ "name": "interface_id", "type": "core::felt252" }],
8104
- "outputs": [{ "type": "core::bool" }],
8105
- "state_mutability": "view"
8106
- }
8107
- ]
8108
- },
8109
- {
8110
- "type": "constructor",
8111
- "name": "constructor",
8112
- "inputs": [
8113
- { "name": "collection_class_hash", "type": "core::starknet::class_hash::ClassHash" }
8114
- ]
8115
- },
8116
- {
8117
- "type": "event",
8118
- "name": "openzeppelin_introspection::src5::SRC5Component::Event",
8119
- "kind": "enum",
8120
- "variants": []
8121
- },
8122
- {
8123
- "type": "event",
8124
- "name": "ip_club::IPClubFactory::IPClubFactory::ClubDeployed",
8125
- "kind": "struct",
8126
- "members": [
8127
- { "name": "collection_address", "type": "core::starknet::contract_address::ContractAddress", "kind": "key" },
8128
- { "name": "owner", "type": "core::starknet::contract_address::ContractAddress", "kind": "key" },
8129
- { "name": "name", "type": "core::byte_array::ByteArray", "kind": "data" },
8130
- { "name": "symbol", "type": "core::byte_array::ByteArray", "kind": "data" }
8131
- ]
8132
- },
8133
- {
8134
- "type": "event",
8135
- "name": "ip_club::IPClubFactory::IPClubFactory::Event",
8136
- "kind": "enum",
8137
- "variants": [
8138
- { "name": "SRC5Event", "type": "openzeppelin_introspection::src5::SRC5Component::Event", "kind": "flat" },
8139
- { "name": "ClubDeployed", "type": "ip_club::IPClubFactory::IPClubFactory::ClubDeployed", "kind": "nested" }
8140
- ]
8141
- }
8142
- ];
8143
-
8144
- // src/starknet/abis/ipClubCollection.ts
8145
- var IPClubCollectionABI = [
8146
- {
8147
- "type": "impl",
8148
- "name": "ERC721MetadataImpl",
8149
- "interface_name": "openzeppelin_token::erc721::interface::IERC721Metadata"
8150
- },
8151
- {
8152
- "type": "struct",
8153
- "name": "core::byte_array::ByteArray",
8154
- "members": [
8155
- {
8156
- "name": "data",
8157
- "type": "core::array::Array::<core::bytes_31::bytes31>"
8158
- },
8159
- {
8160
- "name": "pending_word",
8161
- "type": "core::felt252"
8162
- },
8163
- {
8164
- "name": "pending_word_len",
8165
- "type": "core::internal::bounded_int::BoundedInt::<0, 30>"
8166
- }
8167
- ]
8168
- },
8169
- {
8170
- "type": "struct",
8171
- "name": "core::integer::u256",
8172
- "members": [
8173
- {
8174
- "name": "low",
8175
- "type": "core::integer::u128"
8176
- },
8177
- {
8178
- "name": "high",
8179
- "type": "core::integer::u128"
8180
- }
8181
- ]
8182
- },
8183
- {
8184
- "type": "interface",
8185
- "name": "openzeppelin_token::erc721::interface::IERC721Metadata",
8186
- "items": [
8187
- {
8188
- "type": "function",
8189
- "name": "name",
8190
- "inputs": [],
8191
- "outputs": [
8192
- {
8193
- "type": "core::byte_array::ByteArray"
8194
- }
8195
- ],
8196
- "state_mutability": "view"
8197
- },
8198
- {
8199
- "type": "function",
8200
- "name": "symbol",
8201
- "inputs": [],
8202
- "outputs": [
8203
- {
8204
- "type": "core::byte_array::ByteArray"
7281
+ "name": "amount",
7282
+ "type": "core::integer::u256"
8205
7283
  }
8206
7284
  ],
8207
- "state_mutability": "view"
7285
+ "outputs": [],
7286
+ "state_mutability": "external"
8208
7287
  },
8209
7288
  {
8210
7289
  "type": "function",
8211
- "name": "token_uri",
7290
+ "name": "is_member",
8212
7291
  "inputs": [
8213
7292
  {
8214
- "name": "token_id",
8215
- "type": "core::integer::u256"
7293
+ "name": "holder",
7294
+ "type": "core::starknet::contract_address::ContractAddress"
8216
7295
  }
8217
7296
  ],
8218
7297
  "outputs": [
8219
7298
  {
8220
- "type": "core::byte_array::ByteArray"
7299
+ "type": "core::bool"
8221
7300
  }
8222
7301
  ],
8223
7302
  "state_mutability": "view"
8224
- }
8225
- ]
8226
- },
8227
- {
8228
- "type": "impl",
8229
- "name": "ERC721MetadataCamelOnlyImpl",
8230
- "interface_name": "openzeppelin_token::erc721::interface::IERC721MetadataCamelOnly"
8231
- },
8232
- {
8233
- "type": "interface",
8234
- "name": "openzeppelin_token::erc721::interface::IERC721MetadataCamelOnly",
8235
- "items": [
7303
+ },
8236
7304
  {
8237
7305
  "type": "function",
8238
- "name": "tokenURI",
7306
+ "name": "is_member_of",
8239
7307
  "inputs": [
8240
7308
  {
8241
- "name": "tokenId",
7309
+ "name": "token_id",
8242
7310
  "type": "core::integer::u256"
8243
- }
8244
- ],
8245
- "outputs": [
8246
- {
8247
- "type": "core::byte_array::ByteArray"
8248
- }
8249
- ],
8250
- "state_mutability": "view"
8251
- }
8252
- ]
8253
- },
8254
- {
8255
- "type": "impl",
8256
- "name": "IPClubCollectionImpl",
8257
- "interface_name": "ip_club::interface::IIPClubCollection"
8258
- },
8259
- {
8260
- "type": "enum",
8261
- "name": "core::bool",
8262
- "variants": [
8263
- {
8264
- "name": "False",
8265
- "type": "()"
8266
- },
8267
- {
8268
- "name": "True",
8269
- "type": "()"
8270
- }
8271
- ]
8272
- },
8273
- {
8274
- "type": "enum",
8275
- "name": "core::option::Option::<core::starknet::contract_address::ContractAddress>",
8276
- "variants": [
8277
- {
8278
- "name": "Some",
8279
- "type": "core::starknet::contract_address::ContractAddress"
8280
- },
8281
- {
8282
- "name": "None",
8283
- "type": "()"
8284
- }
8285
- ]
8286
- },
8287
- {
8288
- "type": "interface",
8289
- "name": "ip_club::interface::IIPClubCollection",
8290
- "items": [
8291
- {
8292
- "type": "function",
8293
- "name": "mint",
8294
- "inputs": [
7311
+ },
8295
7312
  {
8296
- "name": "to",
7313
+ "name": "holder",
8297
7314
  "type": "core::starknet::contract_address::ContractAddress"
8298
7315
  }
8299
7316
  ],
8300
7317
  "outputs": [
8301
7318
  {
8302
- "type": "core::integer::u256"
8303
- }
8304
- ],
8305
- "state_mutability": "external"
8306
- },
8307
- {
8308
- "type": "function",
8309
- "name": "set_open",
8310
- "inputs": [
8311
- {
8312
- "name": "open",
8313
7319
  "type": "core::bool"
8314
7320
  }
8315
7321
  ],
8316
- "outputs": [],
8317
- "state_mutability": "external"
8318
- },
8319
- {
8320
- "type": "function",
8321
- "name": "base_uri",
8322
- "inputs": [],
8323
- "outputs": [
8324
- {
8325
- "type": "core::byte_array::ByteArray"
8326
- }
8327
- ],
8328
7322
  "state_mutability": "view"
8329
7323
  },
8330
7324
  {
8331
7325
  "type": "function",
8332
- "name": "entry_fee",
8333
- "inputs": [],
8334
- "outputs": [
7326
+ "name": "get_membership",
7327
+ "inputs": [
8335
7328
  {
7329
+ "name": "token_id",
8336
7330
  "type": "core::integer::u256"
8337
7331
  }
8338
7332
  ],
8339
- "state_mutability": "view"
8340
- },
8341
- {
8342
- "type": "function",
8343
- "name": "payment_token",
8344
- "inputs": [],
8345
7333
  "outputs": [
8346
7334
  {
8347
- "type": "core::option::Option::<core::starknet::contract_address::ContractAddress>"
7335
+ "type": "ip_club::types::Membership"
8348
7336
  }
8349
7337
  ],
8350
7338
  "state_mutability": "view"
8351
7339
  },
8352
7340
  {
8353
7341
  "type": "function",
8354
- "name": "max_supply",
7342
+ "name": "name",
8355
7343
  "inputs": [],
8356
7344
  "outputs": [
8357
7345
  {
8358
- "type": "core::integer::u256"
7346
+ "type": "core::byte_array::ByteArray"
8359
7347
  }
8360
7348
  ],
8361
7349
  "state_mutability": "view"
8362
7350
  },
8363
7351
  {
8364
7352
  "type": "function",
8365
- "name": "total_minted",
7353
+ "name": "symbol",
8366
7354
  "inputs": [],
8367
7355
  "outputs": [
8368
7356
  {
8369
- "type": "core::integer::u256"
7357
+ "type": "core::byte_array::ByteArray"
8370
7358
  }
8371
7359
  ],
8372
7360
  "state_mutability": "view"
8373
7361
  },
8374
7362
  {
8375
7363
  "type": "function",
8376
- "name": "is_open",
7364
+ "name": "base_uri",
8377
7365
  "inputs": [],
8378
7366
  "outputs": [
8379
7367
  {
8380
- "type": "core::bool"
7368
+ "type": "core::byte_array::ByteArray"
8381
7369
  }
8382
7370
  ],
8383
7371
  "state_mutability": "view"
@@ -8437,8 +7425,28 @@ var IPClubCollectionABI = [
8437
7425
  },
8438
7426
  {
8439
7427
  "type": "impl",
8440
- "name": "ERC721Impl",
8441
- "interface_name": "openzeppelin_token::erc721::interface::IERC721"
7428
+ "name": "ERC1155Impl",
7429
+ "interface_name": "openzeppelin_token::erc1155::interface::IERC1155"
7430
+ },
7431
+ {
7432
+ "type": "struct",
7433
+ "name": "core::array::Span::<core::starknet::contract_address::ContractAddress>",
7434
+ "members": [
7435
+ {
7436
+ "name": "snapshot",
7437
+ "type": "@core::array::Array::<core::starknet::contract_address::ContractAddress>"
7438
+ }
7439
+ ]
7440
+ },
7441
+ {
7442
+ "type": "struct",
7443
+ "name": "core::array::Span::<core::integer::u256>",
7444
+ "members": [
7445
+ {
7446
+ "name": "snapshot",
7447
+ "type": "@core::array::Array::<core::integer::u256>"
7448
+ }
7449
+ ]
8442
7450
  },
8443
7451
  {
8444
7452
  "type": "struct",
@@ -8452,7 +7460,7 @@ var IPClubCollectionABI = [
8452
7460
  },
8453
7461
  {
8454
7462
  "type": "interface",
8455
- "name": "openzeppelin_token::erc721::interface::IERC721",
7463
+ "name": "openzeppelin_token::erc1155::interface::IERC1155",
8456
7464
  "items": [
8457
7465
  {
8458
7466
  "type": "function",
@@ -8461,6 +7469,10 @@ var IPClubCollectionABI = [
8461
7469
  {
8462
7470
  "name": "account",
8463
7471
  "type": "core::starknet::contract_address::ContractAddress"
7472
+ },
7473
+ {
7474
+ "name": "token_id",
7475
+ "type": "core::integer::u256"
8464
7476
  }
8465
7477
  ],
8466
7478
  "outputs": [
@@ -8472,16 +7484,20 @@ var IPClubCollectionABI = [
8472
7484
  },
8473
7485
  {
8474
7486
  "type": "function",
8475
- "name": "owner_of",
7487
+ "name": "balance_of_batch",
8476
7488
  "inputs": [
8477
7489
  {
8478
- "name": "token_id",
8479
- "type": "core::integer::u256"
7490
+ "name": "accounts",
7491
+ "type": "core::array::Span::<core::starknet::contract_address::ContractAddress>"
7492
+ },
7493
+ {
7494
+ "name": "token_ids",
7495
+ "type": "core::array::Span::<core::integer::u256>"
8480
7496
  }
8481
7497
  ],
8482
7498
  "outputs": [
8483
7499
  {
8484
- "type": "core::starknet::contract_address::ContractAddress"
7500
+ "type": "core::array::Span::<core::integer::u256>"
8485
7501
  }
8486
7502
  ],
8487
7503
  "state_mutability": "view"
@@ -8502,6 +7518,10 @@ var IPClubCollectionABI = [
8502
7518
  "name": "token_id",
8503
7519
  "type": "core::integer::u256"
8504
7520
  },
7521
+ {
7522
+ "name": "value",
7523
+ "type": "core::integer::u256"
7524
+ },
8505
7525
  {
8506
7526
  "name": "data",
8507
7527
  "type": "core::array::Span::<core::felt252>"
@@ -8512,7 +7532,7 @@ var IPClubCollectionABI = [
8512
7532
  },
8513
7533
  {
8514
7534
  "type": "function",
8515
- "name": "transfer_from",
7535
+ "name": "safe_batch_transfer_from",
8516
7536
  "inputs": [
8517
7537
  {
8518
7538
  "name": "from",
@@ -8523,24 +7543,16 @@ var IPClubCollectionABI = [
8523
7543
  "type": "core::starknet::contract_address::ContractAddress"
8524
7544
  },
8525
7545
  {
8526
- "name": "token_id",
8527
- "type": "core::integer::u256"
8528
- }
8529
- ],
8530
- "outputs": [],
8531
- "state_mutability": "external"
8532
- },
8533
- {
8534
- "type": "function",
8535
- "name": "approve",
8536
- "inputs": [
7546
+ "name": "token_ids",
7547
+ "type": "core::array::Span::<core::integer::u256>"
7548
+ },
8537
7549
  {
8538
- "name": "to",
8539
- "type": "core::starknet::contract_address::ContractAddress"
7550
+ "name": "values",
7551
+ "type": "core::array::Span::<core::integer::u256>"
8540
7552
  },
8541
7553
  {
8542
- "name": "token_id",
8543
- "type": "core::integer::u256"
7554
+ "name": "data",
7555
+ "type": "core::array::Span::<core::felt252>"
8544
7556
  }
8545
7557
  ],
8546
7558
  "outputs": [],
@@ -8548,66 +7560,50 @@ var IPClubCollectionABI = [
8548
7560
  },
8549
7561
  {
8550
7562
  "type": "function",
8551
- "name": "set_approval_for_all",
7563
+ "name": "is_approved_for_all",
8552
7564
  "inputs": [
8553
7565
  {
8554
- "name": "operator",
7566
+ "name": "owner",
8555
7567
  "type": "core::starknet::contract_address::ContractAddress"
8556
7568
  },
8557
7569
  {
8558
- "name": "approved",
8559
- "type": "core::bool"
8560
- }
8561
- ],
8562
- "outputs": [],
8563
- "state_mutability": "external"
8564
- },
8565
- {
8566
- "type": "function",
8567
- "name": "get_approved",
8568
- "inputs": [
8569
- {
8570
- "name": "token_id",
8571
- "type": "core::integer::u256"
7570
+ "name": "operator",
7571
+ "type": "core::starknet::contract_address::ContractAddress"
8572
7572
  }
8573
7573
  ],
8574
7574
  "outputs": [
8575
7575
  {
8576
- "type": "core::starknet::contract_address::ContractAddress"
7576
+ "type": "core::bool"
8577
7577
  }
8578
7578
  ],
8579
7579
  "state_mutability": "view"
8580
7580
  },
8581
7581
  {
8582
7582
  "type": "function",
8583
- "name": "is_approved_for_all",
7583
+ "name": "set_approval_for_all",
8584
7584
  "inputs": [
8585
- {
8586
- "name": "owner",
8587
- "type": "core::starknet::contract_address::ContractAddress"
8588
- },
8589
7585
  {
8590
7586
  "name": "operator",
8591
7587
  "type": "core::starknet::contract_address::ContractAddress"
8592
- }
8593
- ],
8594
- "outputs": [
7588
+ },
8595
7589
  {
7590
+ "name": "approved",
8596
7591
  "type": "core::bool"
8597
7592
  }
8598
7593
  ],
8599
- "state_mutability": "view"
7594
+ "outputs": [],
7595
+ "state_mutability": "external"
8600
7596
  }
8601
7597
  ]
8602
7598
  },
8603
7599
  {
8604
7600
  "type": "impl",
8605
- "name": "ERC721CamelOnly",
8606
- "interface_name": "openzeppelin_token::erc721::interface::IERC721CamelOnly"
7601
+ "name": "ERC1155CamelImpl",
7602
+ "interface_name": "openzeppelin_token::erc1155::interface::IERC1155Camel"
8607
7603
  },
8608
7604
  {
8609
7605
  "type": "interface",
8610
- "name": "openzeppelin_token::erc721::interface::IERC721CamelOnly",
7606
+ "name": "openzeppelin_token::erc1155::interface::IERC1155Camel",
8611
7607
  "items": [
8612
7608
  {
8613
7609
  "type": "function",
@@ -8616,6 +7612,10 @@ var IPClubCollectionABI = [
8616
7612
  {
8617
7613
  "name": "account",
8618
7614
  "type": "core::starknet::contract_address::ContractAddress"
7615
+ },
7616
+ {
7617
+ "name": "tokenId",
7618
+ "type": "core::integer::u256"
8619
7619
  }
8620
7620
  ],
8621
7621
  "outputs": [
@@ -8627,16 +7627,20 @@ var IPClubCollectionABI = [
8627
7627
  },
8628
7628
  {
8629
7629
  "type": "function",
8630
- "name": "ownerOf",
7630
+ "name": "balanceOfBatch",
8631
7631
  "inputs": [
8632
7632
  {
8633
- "name": "tokenId",
8634
- "type": "core::integer::u256"
7633
+ "name": "accounts",
7634
+ "type": "core::array::Span::<core::starknet::contract_address::ContractAddress>"
7635
+ },
7636
+ {
7637
+ "name": "tokenIds",
7638
+ "type": "core::array::Span::<core::integer::u256>"
8635
7639
  }
8636
7640
  ],
8637
7641
  "outputs": [
8638
7642
  {
8639
- "type": "core::starknet::contract_address::ContractAddress"
7643
+ "type": "core::array::Span::<core::integer::u256>"
8640
7644
  }
8641
7645
  ],
8642
7646
  "state_mutability": "view"
@@ -8657,6 +7661,10 @@ var IPClubCollectionABI = [
8657
7661
  "name": "tokenId",
8658
7662
  "type": "core::integer::u256"
8659
7663
  },
7664
+ {
7665
+ "name": "value",
7666
+ "type": "core::integer::u256"
7667
+ },
8660
7668
  {
8661
7669
  "name": "data",
8662
7670
  "type": "core::array::Span::<core::felt252>"
@@ -8667,7 +7675,7 @@ var IPClubCollectionABI = [
8667
7675
  },
8668
7676
  {
8669
7677
  "type": "function",
8670
- "name": "transferFrom",
7678
+ "name": "safeBatchTransferFrom",
8671
7679
  "inputs": [
8672
7680
  {
8673
7681
  "name": "from",
@@ -8678,24 +7686,16 @@ var IPClubCollectionABI = [
8678
7686
  "type": "core::starknet::contract_address::ContractAddress"
8679
7687
  },
8680
7688
  {
8681
- "name": "tokenId",
8682
- "type": "core::integer::u256"
8683
- }
8684
- ],
8685
- "outputs": [],
8686
- "state_mutability": "external"
8687
- },
8688
- {
8689
- "type": "function",
8690
- "name": "setApprovalForAll",
8691
- "inputs": [
7689
+ "name": "tokenIds",
7690
+ "type": "core::array::Span::<core::integer::u256>"
7691
+ },
8692
7692
  {
8693
- "name": "operator",
8694
- "type": "core::starknet::contract_address::ContractAddress"
7693
+ "name": "values",
7694
+ "type": "core::array::Span::<core::integer::u256>"
8695
7695
  },
8696
7696
  {
8697
- "name": "approved",
8698
- "type": "core::bool"
7697
+ "name": "data",
7698
+ "type": "core::array::Span::<core::felt252>"
8699
7699
  }
8700
7700
  ],
8701
7701
  "outputs": [],
@@ -8703,39 +7703,39 @@ var IPClubCollectionABI = [
8703
7703
  },
8704
7704
  {
8705
7705
  "type": "function",
8706
- "name": "getApproved",
7706
+ "name": "isApprovedForAll",
8707
7707
  "inputs": [
8708
7708
  {
8709
- "name": "tokenId",
8710
- "type": "core::integer::u256"
7709
+ "name": "owner",
7710
+ "type": "core::starknet::contract_address::ContractAddress"
7711
+ },
7712
+ {
7713
+ "name": "operator",
7714
+ "type": "core::starknet::contract_address::ContractAddress"
8711
7715
  }
8712
7716
  ],
8713
7717
  "outputs": [
8714
7718
  {
8715
- "type": "core::starknet::contract_address::ContractAddress"
7719
+ "type": "core::bool"
8716
7720
  }
8717
7721
  ],
8718
7722
  "state_mutability": "view"
8719
7723
  },
8720
7724
  {
8721
7725
  "type": "function",
8722
- "name": "isApprovedForAll",
7726
+ "name": "setApprovalForAll",
8723
7727
  "inputs": [
8724
- {
8725
- "name": "owner",
8726
- "type": "core::starknet::contract_address::ContractAddress"
8727
- },
8728
7728
  {
8729
7729
  "name": "operator",
8730
7730
  "type": "core::starknet::contract_address::ContractAddress"
8731
- }
8732
- ],
8733
- "outputs": [
7731
+ },
8734
7732
  {
7733
+ "name": "approved",
8735
7734
  "type": "core::bool"
8736
7735
  }
8737
7736
  ],
8738
- "state_mutability": "view"
7737
+ "outputs": [],
7738
+ "state_mutability": "external"
8739
7739
  }
8740
7740
  ]
8741
7741
  },
@@ -8842,22 +7842,6 @@ var IPClubCollectionABI = [
8842
7842
  "name": "base_uri",
8843
7843
  "type": "core::byte_array::ByteArray"
8844
7844
  },
8845
- {
8846
- "name": "max_supply",
8847
- "type": "core::integer::u256"
8848
- },
8849
- {
8850
- "name": "entry_fee",
8851
- "type": "core::integer::u256"
8852
- },
8853
- {
8854
- "name": "payment_token",
8855
- "type": "core::option::Option::<core::starknet::contract_address::ContractAddress>"
8856
- },
8857
- {
8858
- "name": "royalty_bps",
8859
- "type": "core::integer::u256"
8860
- },
8861
7845
  {
8862
7846
  "name": "owner",
8863
7847
  "type": "core::starknet::contract_address::ContractAddress"
@@ -8866,9 +7850,14 @@ var IPClubCollectionABI = [
8866
7850
  },
8867
7851
  {
8868
7852
  "type": "event",
8869
- "name": "openzeppelin_token::erc721::erc721::ERC721Component::Transfer",
7853
+ "name": "openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferSingle",
8870
7854
  "kind": "struct",
8871
7855
  "members": [
7856
+ {
7857
+ "name": "operator",
7858
+ "type": "core::starknet::contract_address::ContractAddress",
7859
+ "kind": "key"
7860
+ },
8872
7861
  {
8873
7862
  "name": "from",
8874
7863
  "type": "core::starknet::contract_address::ContractAddress",
@@ -8880,37 +7869,52 @@ var IPClubCollectionABI = [
8880
7869
  "kind": "key"
8881
7870
  },
8882
7871
  {
8883
- "name": "token_id",
7872
+ "name": "id",
8884
7873
  "type": "core::integer::u256",
8885
- "kind": "key"
7874
+ "kind": "data"
7875
+ },
7876
+ {
7877
+ "name": "value",
7878
+ "type": "core::integer::u256",
7879
+ "kind": "data"
8886
7880
  }
8887
7881
  ]
8888
7882
  },
8889
7883
  {
8890
7884
  "type": "event",
8891
- "name": "openzeppelin_token::erc721::erc721::ERC721Component::Approval",
7885
+ "name": "openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferBatch",
8892
7886
  "kind": "struct",
8893
7887
  "members": [
8894
7888
  {
8895
- "name": "owner",
7889
+ "name": "operator",
8896
7890
  "type": "core::starknet::contract_address::ContractAddress",
8897
7891
  "kind": "key"
8898
7892
  },
8899
7893
  {
8900
- "name": "approved",
7894
+ "name": "from",
8901
7895
  "type": "core::starknet::contract_address::ContractAddress",
8902
7896
  "kind": "key"
8903
7897
  },
8904
7898
  {
8905
- "name": "token_id",
8906
- "type": "core::integer::u256",
7899
+ "name": "to",
7900
+ "type": "core::starknet::contract_address::ContractAddress",
8907
7901
  "kind": "key"
7902
+ },
7903
+ {
7904
+ "name": "ids",
7905
+ "type": "core::array::Span::<core::integer::u256>",
7906
+ "kind": "data"
7907
+ },
7908
+ {
7909
+ "name": "values",
7910
+ "type": "core::array::Span::<core::integer::u256>",
7911
+ "kind": "data"
8908
7912
  }
8909
7913
  ]
8910
7914
  },
8911
7915
  {
8912
7916
  "type": "event",
8913
- "name": "openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll",
7917
+ "name": "openzeppelin_token::erc1155::erc1155::ERC1155Component::ApprovalForAll",
8914
7918
  "kind": "struct",
8915
7919
  "members": [
8916
7920
  {
@@ -8932,22 +7936,44 @@ var IPClubCollectionABI = [
8932
7936
  },
8933
7937
  {
8934
7938
  "type": "event",
8935
- "name": "openzeppelin_token::erc721::erc721::ERC721Component::Event",
7939
+ "name": "openzeppelin_token::erc1155::erc1155::ERC1155Component::URI",
7940
+ "kind": "struct",
7941
+ "members": [
7942
+ {
7943
+ "name": "value",
7944
+ "type": "core::byte_array::ByteArray",
7945
+ "kind": "data"
7946
+ },
7947
+ {
7948
+ "name": "id",
7949
+ "type": "core::integer::u256",
7950
+ "kind": "key"
7951
+ }
7952
+ ]
7953
+ },
7954
+ {
7955
+ "type": "event",
7956
+ "name": "openzeppelin_token::erc1155::erc1155::ERC1155Component::Event",
8936
7957
  "kind": "enum",
8937
7958
  "variants": [
8938
7959
  {
8939
- "name": "Transfer",
8940
- "type": "openzeppelin_token::erc721::erc721::ERC721Component::Transfer",
7960
+ "name": "TransferSingle",
7961
+ "type": "openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferSingle",
8941
7962
  "kind": "nested"
8942
7963
  },
8943
7964
  {
8944
- "name": "Approval",
8945
- "type": "openzeppelin_token::erc721::erc721::ERC721Component::Approval",
7965
+ "name": "TransferBatch",
7966
+ "type": "openzeppelin_token::erc1155::erc1155::ERC1155Component::TransferBatch",
8946
7967
  "kind": "nested"
8947
7968
  },
8948
7969
  {
8949
7970
  "name": "ApprovalForAll",
8950
- "type": "openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll",
7971
+ "type": "openzeppelin_token::erc1155::erc1155::ERC1155Component::ApprovalForAll",
7972
+ "kind": "nested"
7973
+ },
7974
+ {
7975
+ "name": "URI",
7976
+ "type": "openzeppelin_token::erc1155::erc1155::ERC1155Component::URI",
8951
7977
  "kind": "nested"
8952
7978
  }
8953
7979
  ]
@@ -9011,7 +8037,7 @@ var IPClubCollectionABI = [
9011
8037
  },
9012
8038
  {
9013
8039
  "type": "event",
9014
- "name": "ip_club::IPClubCollection::IPClubCollection::MemberMinted",
8040
+ "name": "ip_club::IPClubCollection::IPClubCollection::MembershipCreated",
9015
8041
  "kind": "struct",
9016
8042
  "members": [
9017
8043
  {
@@ -9020,25 +8046,28 @@ var IPClubCollectionABI = [
9020
8046
  "kind": "key"
9021
8047
  },
9022
8048
  {
9023
- "name": "to",
9024
- "type": "core::starknet::contract_address::ContractAddress",
9025
- "kind": "key"
8049
+ "name": "max_supply",
8050
+ "type": "core::integer::u256",
8051
+ "kind": "data"
9026
8052
  },
9027
8053
  {
9028
- "name": "payer",
9029
- "type": "core::starknet::contract_address::ContractAddress",
8054
+ "name": "start_time",
8055
+ "type": "core::option::Option::<core::integer::u64>",
9030
8056
  "kind": "data"
9031
- }
9032
- ]
9033
- },
9034
- {
9035
- "type": "event",
9036
- "name": "ip_club::IPClubCollection::IPClubCollection::OpenStatusChanged",
9037
- "kind": "struct",
9038
- "members": [
8057
+ },
9039
8058
  {
9040
- "name": "open",
9041
- "type": "core::bool",
8059
+ "name": "end_time",
8060
+ "type": "core::option::Option::<core::integer::u64>",
8061
+ "kind": "data"
8062
+ },
8063
+ {
8064
+ "name": "metadata_uri",
8065
+ "type": "core::byte_array::ByteArray",
8066
+ "kind": "data"
8067
+ },
8068
+ {
8069
+ "name": "created_at",
8070
+ "type": "core::integer::u64",
9042
8071
  "kind": "data"
9043
8072
  }
9044
8073
  ]
@@ -9049,8 +8078,8 @@ var IPClubCollectionABI = [
9049
8078
  "kind": "enum",
9050
8079
  "variants": [
9051
8080
  {
9052
- "name": "ERC721Event",
9053
- "type": "openzeppelin_token::erc721::erc721::ERC721Component::Event",
8081
+ "name": "ERC1155Event",
8082
+ "type": "openzeppelin_token::erc1155::erc1155::ERC1155Component::Event",
9054
8083
  "kind": "flat"
9055
8084
  },
9056
8085
  {
@@ -9064,13 +8093,8 @@ var IPClubCollectionABI = [
9064
8093
  "kind": "flat"
9065
8094
  },
9066
8095
  {
9067
- "name": "MemberMinted",
9068
- "type": "ip_club::IPClubCollection::IPClubCollection::MemberMinted",
9069
- "kind": "nested"
9070
- },
9071
- {
9072
- "name": "OpenStatusChanged",
9073
- "type": "ip_club::IPClubCollection::IPClubCollection::OpenStatusChanged",
8096
+ "name": "MembershipCreated",
8097
+ "type": "ip_club::IPClubCollection::IPClubCollection::MembershipCreated",
9074
8098
  "kind": "nested"
9075
8099
  }
9076
8100
  ]
@@ -11864,121 +10888,90 @@ var TicketService = class {
11864
10888
  };
11865
10889
  var ClubService = class {
11866
10890
  constructor(config) {
11867
- const coords = getStarknetCoordinates(config.chain);
11868
- this.registryAddress = coords.ipClubRegistry;
11869
- this.factoryAddress = coords.ipClubFactory;
11870
- }
11871
- _registry(account, registryAddress) {
11872
- const address = registryAddress ?? this.registryAddress;
11873
- if (!address) throw new Error("IP-Club registry address not configured for this chain");
11874
- return newContract(IPClubABI, normalizeAddress("STARKNET", address), account);
10891
+ this.config = config;
10892
+ this.factoryAddress = getStarknetCoordinates(config.chain).ipClubFactory;
11875
10893
  }
11876
10894
  _factory(account, factoryAddress) {
11877
10895
  const address = factoryAddress ?? this.factoryAddress;
11878
10896
  if (!address) throw new Error("IP-Club factory address not configured for this chain");
11879
10897
  return newContract(IPClubFactoryABI, normalizeAddress("STARKNET", address), account);
11880
10898
  }
11881
- _collection(account, collectionAddress) {
11882
- return newContract(IPClubCollectionABI, normalizeAddress("STARKNET", collectionAddress), account);
10899
+ _collection(address, account) {
10900
+ return newContract(IPClubCollectionABI, normalizeAddress("STARKNET", address), account);
10901
+ }
10902
+ _collectionRead(address) {
10903
+ const provider = new starknet.RpcProvider({ nodeUrl: this.config.rpcUrl });
10904
+ return newContract(IPClubCollectionABI, normalizeAddress("STARKNET", address), provider);
11883
10905
  }
11884
- /** Deploy a new per-creator membership ERC-721 collection via the factory. */
11885
- async deployClub(account, params) {
11886
- const maxSupply = starknet.cairo.uint256(params.maxSupply ?? 0xffffffffffffffffn);
11887
- const entryFee = starknet.cairo.uint256(params.entryFee ?? 0n);
11888
- const paymentToken = params.paymentToken ? new starknet.CairoOption(starknet.CairoOptionVariant.Some, params.paymentToken) : new starknet.CairoOption(starknet.CairoOptionVariant.None);
11889
- const royaltyBps = starknet.cairo.uint256(params.royaltyBps ?? 0n);
11890
- const call = this._factory(account, params.factoryAddress).populate("deploy_club", [
10906
+ /**
10907
+ * Deploys a new IPClubCollection via the factory. Caller becomes owner.
10908
+ * `baseUri` is the collection-level metadata URI, embedded on-chain in the
10909
+ * deploy transaction.
10910
+ */
10911
+ async deployCollection(account, params) {
10912
+ const call = this._factory(account, params.factoryAddress).populate("deploy_collection", [
11891
10913
  params.name,
11892
10914
  params.symbol,
11893
- params.baseUri,
11894
- maxSupply,
11895
- entryFee,
11896
- paymentToken,
11897
- royaltyBps
10915
+ params.baseUri
11898
10916
  ]);
11899
10917
  const res = await account.execute([call]);
11900
10918
  return { txHash: res.transaction_hash };
11901
10919
  }
11902
- /** Owner-only pause or resume new mints on a club collection. */
11903
- async setOpen(account, params) {
11904
- const call = this._collection(account, params.collectionAddress).populate("set_open", [params.open]);
10920
+ /** Owner-only. Creates a new membership tier inside the caller's deployed collection. */
10921
+ async createMembership(account, params) {
10922
+ const startTime = params.startTime != null ? new starknet.CairoOption(starknet.CairoOptionVariant.Some, params.startTime) : new starknet.CairoOption(starknet.CairoOptionVariant.None);
10923
+ const endTime = params.endTime != null ? new starknet.CairoOption(starknet.CairoOptionVariant.Some, params.endTime) : new starknet.CairoOption(starknet.CairoOptionVariant.None);
10924
+ const call = this._collection(params.collection, account).populate("create_membership", [
10925
+ starknet.cairo.uint256(params.maxSupply),
10926
+ startTime,
10927
+ endTime,
10928
+ params.royaltyBps,
10929
+ params.metadataUri
10930
+ ]);
11905
10931
  const res = await account.execute([call]);
11906
10932
  return { txHash: res.transaction_hash };
11907
10933
  }
11908
- /** Public mint — caller pays entry fee (if any) and receives the membership NFT. */
11909
- async mintMembership(account, params) {
11910
- const calls = [];
11911
- if (params.entryFee && params.paymentToken && BigInt(params.entryFee) > 0n) {
11912
- const amount = starknet.cairo.uint256(params.entryFee);
11913
- calls.push({
11914
- contractAddress: params.paymentToken,
11915
- entrypoint: "approve",
11916
- calldata: [
11917
- normalizeAddress("STARKNET", params.collectionAddress),
11918
- amount.low.toString(),
11919
- amount.high.toString()
11920
- ]
11921
- });
11922
- }
11923
- calls.push(
11924
- this._collection(account, params.collectionAddress).populate("mint", [
11925
- params.to ?? account.address
11926
- ])
11927
- );
11928
- const res = await account.execute(calls);
11929
- return { txHash: res.transaction_hash };
11930
- }
11931
- // ── Legacy registry methods (retained for backward compatibility) ──────────────
11932
- /** @deprecated Use deployClub — the factory pattern replaced the registry. */
11933
- async createClub(account, params) {
11934
- const maxMembers = params.maxMembers != null ? new starknet.CairoOption(starknet.CairoOptionVariant.Some, params.maxMembers) : new starknet.CairoOption(starknet.CairoOptionVariant.None);
11935
- const entryFee = params.entryFee != null ? new starknet.CairoOption(starknet.CairoOptionVariant.Some, starknet.cairo.uint256(params.entryFee)) : new starknet.CairoOption(starknet.CairoOptionVariant.None);
11936
- const paymentToken = params.paymentToken ? new starknet.CairoOption(starknet.CairoOptionVariant.Some, params.paymentToken) : new starknet.CairoOption(starknet.CairoOptionVariant.None);
11937
- const call = this._registry(account, params.registryAddress).populate("create_club", [
11938
- params.name,
11939
- params.symbol,
11940
- params.metadataUri,
11941
- maxMembers,
11942
- entryFee,
11943
- paymentToken
10934
+ /**
10935
+ * Owner-only. Mints `amount` of `tokenId` to `to`. The validity window
10936
+ * gates membership, never minting — future-window tiers mint fine.
10937
+ */
10938
+ async mint(account, params) {
10939
+ const call = this._collection(params.collection, account).populate("mint", [
10940
+ params.to,
10941
+ starknet.cairo.uint256(params.tokenId),
10942
+ starknet.cairo.uint256(params.amount)
11944
10943
  ]);
11945
10944
  const res = await account.execute([call]);
11946
10945
  return { txHash: res.transaction_hash };
11947
10946
  }
11948
- /** @deprecated Legacy registry use factory-deployed collection methods. */
11949
- async setClubOpen(account, params) {
11950
- const call = this._registry(account, params.registryAddress).populate("set_club_open", [
11951
- starknet.cairo.uint256(params.clubId),
11952
- params.open
10947
+ /** Read true if holder holds any tier currently inside its validity window. */
10948
+ async isMember(params) {
10949
+ const result = await this._collectionRead(params.collection).call("is_member", [
10950
+ params.holder
11953
10951
  ]);
11954
- const res = await account.execute([call]);
11955
- return { txHash: res.transaction_hash };
10952
+ return Boolean(result);
11956
10953
  }
11957
- /** @deprecated Legacy registry use mintMembership with factory-deployed collections. */
11958
- async joinClub(account, params) {
11959
- const registryAddress = params.registryAddress ?? this.registryAddress;
11960
- if (!registryAddress) throw new Error("IP-Club registry address not configured for this chain");
11961
- const calls = [];
11962
- if (params.paymentToken && params.entryFee && BigInt(params.entryFee) > 0n) {
11963
- const amount = starknet.cairo.uint256(params.entryFee);
11964
- calls.push({
11965
- contractAddress: params.paymentToken,
11966
- entrypoint: "approve",
11967
- calldata: [normalizeAddress("STARKNET", registryAddress), amount.low.toString(), amount.high.toString()]
11968
- });
11969
- }
11970
- calls.push(this._registry(account, registryAddress).populate("join_club", [starknet.cairo.uint256(params.clubId)]));
11971
- const res = await account.execute(calls);
11972
- return { txHash: res.transaction_hash };
10954
+ /** Read true if holder holds `tokenId` and the current time is inside its window. */
10955
+ async isMemberOf(params) {
10956
+ const result = await this._collectionRead(params.collection).call("is_member_of", [
10957
+ starknet.cairo.uint256(params.tokenId),
10958
+ params.holder
10959
+ ]);
10960
+ return Boolean(result);
11973
10961
  }
11974
- /** @deprecated Legacy registry use factory-deployed collection burn. */
11975
- async leaveClub(account, params) {
11976
- const call = this._registry(account, params.registryAddress).populate("leave_club", [
11977
- starknet.cairo.uint256(params.clubId),
10962
+ /** Read returns the Membership record for a token ID. */
10963
+ async getMembership(params) {
10964
+ const m = await this._collectionRead(params.collection).call("get_membership", [
11978
10965
  starknet.cairo.uint256(params.tokenId)
11979
10966
  ]);
11980
- const res = await account.execute([call]);
11981
- return { txHash: res.transaction_hash };
10967
+ return {
10968
+ maxSupply: BigInt(m.max_supply),
10969
+ minted: BigInt(m.minted),
10970
+ startTime: m.start_time?.variant === "Some" ? Number(m.start_time.values[0] ?? m.start_time.value) : null,
10971
+ endTime: m.end_time?.variant === "Some" ? Number(m.end_time.values[0] ?? m.end_time.value) : null,
10972
+ royaltyBps: Number(m.royalty_bps),
10973
+ metadataUri: m.metadata_uri
10974
+ };
11982
10975
  }
11983
10976
  };
11984
10977
  var SponsorshipService = class {
@@ -13006,10 +11999,8 @@ exports.DropFactoryABI = DropFactoryABI;
13006
11999
  exports.DropService = DropService;
13007
12000
  exports.ERC1155CollectionService = ERC1155CollectionService;
13008
12001
  exports.FeeConfigSchema = FeeConfigSchema;
13009
- exports.IPClubABI = IPClubABI;
13010
12002
  exports.IPClubCollectionABI = IPClubCollectionABI;
13011
12003
  exports.IPClubFactoryABI = IPClubFactoryABI;
13012
- exports.IPClubNFTABI = IPClubNFTABI;
13013
12004
  exports.IPCollection1155ABI = IPCollection1155ABI;
13014
12005
  exports.IPCollection1155FactoryABI = IPCollection1155FactoryABI;
13015
12006
  exports.IPCollectionABI = IPCollectionABI;
@@ -13047,8 +12038,6 @@ exports.STARKNET_IPCOLLECTION_CLASS_HASH = STARKNET_IPCOLLECTION_CLASS_HASH;
13047
12038
  exports.STARKNET_IPNFT_CLASS_HASH = STARKNET_IPNFT_CLASS_HASH;
13048
12039
  exports.STARKNET_IP_CLUB_COLLECTION_CLASS_HASH = STARKNET_IP_CLUB_COLLECTION_CLASS_HASH;
13049
12040
  exports.STARKNET_IP_CLUB_FACTORY_CONTRACT = STARKNET_IP_CLUB_FACTORY_CONTRACT;
13050
- exports.STARKNET_IP_CLUB_NFT_CLASS_HASH = STARKNET_IP_CLUB_NFT_CLASS_HASH;
13051
- exports.STARKNET_IP_CLUB_REGISTRY_CONTRACT = STARKNET_IP_CLUB_REGISTRY_CONTRACT;
13052
12041
  exports.STARKNET_IP_SPONSORSHIP_CLASS_HASH = STARKNET_IP_SPONSORSHIP_CLASS_HASH;
13053
12042
  exports.STARKNET_IP_SPONSORSHIP_CONTRACT = STARKNET_IP_SPONSORSHIP_CONTRACT;
13054
12043
  exports.STARKNET_IP_TICKETS_FACTORY_CONTRACT = STARKNET_IP_TICKETS_FACTORY_CONTRACT;