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