@medialane/sdk 0.57.0 → 0.59.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
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import { keccak_256 } from '@noble/hashes/sha3.js';
3
3
  import { base58, base32 } from '@scure/base';
4
- import { hash, num, cairo, Contract, uint256, RpcProvider, CairoOption, CairoOptionVariant, ec, encode, TypedDataRevision, constants, shortString } from 'starknet';
4
+ import { hash, num, cairo, Contract, uint256, RpcProvider, CairoOption, CairoOptionVariant, ec, encode, TypedDataRevision, shortString, constants } from 'starknet';
5
5
 
6
6
  // src/config.ts
7
7
 
@@ -41,6 +41,10 @@ var COORDINATES = {
41
41
  ipClubRegistry: "0x00e189c619b6bb07d78973a149641c59c37eb0716f8584d7520bce12d303eede",
42
42
  ipClubNftClassHash: "0x02bc9b20cca21b04245e9215bf7121f4d7295b195890e449b472b573017fb889",
43
43
  ipClubStartBlock: 11404776,
44
+ ipClubFactory: "0x010726346c264d1832a7303afaf5692dbd2b05446fecc6da30d958d0227c36d0",
45
+ ipClubFactoryClassHash: "0x07197062578375d962b2d42d3e91560770b11b1c97a9defb74c706a2c5299473",
46
+ ipClubCollectionClassHash: "0x049dc5e5ff00e67d5d457c6991ee70822f36a979b76cefd1b617aeccd7051d4b",
47
+ ipClubFactoryStartBlock: 11652766,
44
48
  ipSponsorship: "0x044d9b9c3bb29b94685b0a3fe27a5e2dfa30a3637ab55979c718ebcd3268bc2f",
45
49
  ipSponsorshipStartBlock: 11405085,
46
50
  // Dedicated ip-erc721/MIP instance for sponsorship receipts (class hash
@@ -889,6 +893,8 @@ var STARKNET_IP_TICKETS_FACTORY_CONTRACT = SN.ipTicketsFactory;
889
893
  var STARKNET_IP_TICKET_COLLECTION_CLASS_HASH = SN.ipTicketCollectionClassHash;
890
894
  var STARKNET_IP_CLUB_REGISTRY_CONTRACT = SN.ipClubRegistry;
891
895
  var STARKNET_IP_CLUB_NFT_CLASS_HASH = SN.ipClubNftClassHash;
896
+ var STARKNET_IP_CLUB_FACTORY_CONTRACT = SN.ipClubFactory;
897
+ var STARKNET_IP_CLUB_COLLECTION_CLASS_HASH = SN.ipClubCollectionClassHash;
892
898
  var STARKNET_IP_SPONSORSHIP_CONTRACT = SN.ipSponsorship;
893
899
  var STARKNET_IP_SPONSORSHIP_LICENSE_CONTRACT = SN.ipSponsorshipLicense;
894
900
  var STARKNET_CREATOR_COIN_FACTORY_CONTRACT = SN.creatorCoinFactory;
@@ -8208,27 +8214,141 @@ var IPClubNFTABI = [
8208
8214
  }
8209
8215
  ];
8210
8216
 
8211
- // src/starknet/abis/ipSponsorship.ts
8212
- var IPSponsorshipABI = [
8217
+ // src/starknet/abis/ipClubFactory.ts
8218
+ var IPClubFactoryABI = [
8213
8219
  {
8214
8220
  "type": "impl",
8215
- "name": "IPSponsorshipImpl",
8216
- "interface_name": "ip_sponsorship::interface::IIPSponsorship"
8221
+ "name": "IPClubFactoryImpl",
8222
+ "interface_name": "ip_club::interface::IIPClubFactory"
8223
+ },
8224
+ {
8225
+ "type": "struct",
8226
+ "name": "core::byte_array::ByteArray",
8227
+ "members": [
8228
+ { "name": "data", "type": "core::array::Array::<core::bytes_31::bytes31>" },
8229
+ { "name": "pending_word", "type": "core::felt252" },
8230
+ { "name": "pending_word_len", "type": "core::internal::bounded_int::BoundedInt::<0, 30>" }
8231
+ ]
8217
8232
  },
8218
8233
  {
8219
8234
  "type": "struct",
8220
8235
  "name": "core::integer::u256",
8221
8236
  "members": [
8237
+ { "name": "low", "type": "core::integer::u128" },
8238
+ { "name": "high", "type": "core::integer::u128" }
8239
+ ]
8240
+ },
8241
+ {
8242
+ "type": "enum",
8243
+ "name": "core::option::Option::<core::starknet::contract_address::ContractAddress>",
8244
+ "variants": [
8245
+ { "name": "Some", "type": "core::starknet::contract_address::ContractAddress" },
8246
+ { "name": "None", "type": "()" }
8247
+ ]
8248
+ },
8249
+ {
8250
+ "type": "interface",
8251
+ "name": "ip_club::interface::IIPClubFactory",
8252
+ "items": [
8222
8253
  {
8223
- "name": "low",
8224
- "type": "core::integer::u128"
8254
+ "type": "function",
8255
+ "name": "collection_class_hash",
8256
+ "inputs": [],
8257
+ "outputs": [{ "type": "core::starknet::class_hash::ClassHash" }],
8258
+ "state_mutability": "view"
8225
8259
  },
8226
8260
  {
8227
- "name": "high",
8228
- "type": "core::integer::u128"
8261
+ "type": "function",
8262
+ "name": "version",
8263
+ "inputs": [],
8264
+ "outputs": [{ "type": "core::byte_array::ByteArray" }],
8265
+ "state_mutability": "view"
8266
+ },
8267
+ {
8268
+ "type": "function",
8269
+ "name": "deploy_club",
8270
+ "inputs": [
8271
+ { "name": "name", "type": "core::byte_array::ByteArray" },
8272
+ { "name": "symbol", "type": "core::byte_array::ByteArray" },
8273
+ { "name": "base_uri", "type": "core::byte_array::ByteArray" },
8274
+ { "name": "max_supply", "type": "core::integer::u256" },
8275
+ { "name": "entry_fee", "type": "core::integer::u256" },
8276
+ { "name": "payment_token", "type": "core::option::Option::<core::starknet::contract_address::ContractAddress>" },
8277
+ { "name": "royalty_bps", "type": "core::integer::u256" }
8278
+ ],
8279
+ "outputs": [{ "type": "core::starknet::contract_address::ContractAddress" }],
8280
+ "state_mutability": "external"
8281
+ }
8282
+ ]
8283
+ },
8284
+ {
8285
+ "type": "impl",
8286
+ "name": "SRC5Impl",
8287
+ "interface_name": "openzeppelin_introspection::interface::ISRC5"
8288
+ },
8289
+ {
8290
+ "type": "enum",
8291
+ "name": "core::bool",
8292
+ "variants": [
8293
+ { "name": "False", "type": "()" },
8294
+ { "name": "True", "type": "()" }
8295
+ ]
8296
+ },
8297
+ {
8298
+ "type": "interface",
8299
+ "name": "openzeppelin_introspection::interface::ISRC5",
8300
+ "items": [
8301
+ {
8302
+ "type": "function",
8303
+ "name": "supports_interface",
8304
+ "inputs": [{ "name": "interface_id", "type": "core::felt252" }],
8305
+ "outputs": [{ "type": "core::bool" }],
8306
+ "state_mutability": "view"
8229
8307
  }
8230
8308
  ]
8231
8309
  },
8310
+ {
8311
+ "type": "constructor",
8312
+ "name": "constructor",
8313
+ "inputs": [
8314
+ { "name": "collection_class_hash", "type": "core::starknet::class_hash::ClassHash" }
8315
+ ]
8316
+ },
8317
+ {
8318
+ "type": "event",
8319
+ "name": "openzeppelin_introspection::src5::SRC5Component::Event",
8320
+ "kind": "enum",
8321
+ "variants": []
8322
+ },
8323
+ {
8324
+ "type": "event",
8325
+ "name": "ip_club::IPClubFactory::IPClubFactory::ClubDeployed",
8326
+ "kind": "struct",
8327
+ "members": [
8328
+ { "name": "collection_address", "type": "core::starknet::contract_address::ContractAddress", "kind": "key" },
8329
+ { "name": "owner", "type": "core::starknet::contract_address::ContractAddress", "kind": "key" },
8330
+ { "name": "name", "type": "core::byte_array::ByteArray", "kind": "data" },
8331
+ { "name": "symbol", "type": "core::byte_array::ByteArray", "kind": "data" }
8332
+ ]
8333
+ },
8334
+ {
8335
+ "type": "event",
8336
+ "name": "ip_club::IPClubFactory::IPClubFactory::Event",
8337
+ "kind": "enum",
8338
+ "variants": [
8339
+ { "name": "SRC5Event", "type": "openzeppelin_introspection::src5::SRC5Component::Event", "kind": "flat" },
8340
+ { "name": "ClubDeployed", "type": "ip_club::IPClubFactory::IPClubFactory::ClubDeployed", "kind": "nested" }
8341
+ ]
8342
+ }
8343
+ ];
8344
+
8345
+ // src/starknet/abis/ipClubCollection.ts
8346
+ var IPClubCollectionABI = [
8347
+ {
8348
+ "type": "impl",
8349
+ "name": "ERC721MetadataImpl",
8350
+ "interface_name": "openzeppelin_token::erc721::interface::IERC721Metadata"
8351
+ },
8232
8352
  {
8233
8353
  "type": "struct",
8234
8354
  "name": "core::byte_array::ByteArray",
@@ -8247,6 +8367,96 @@ var IPSponsorshipABI = [
8247
8367
  }
8248
8368
  ]
8249
8369
  },
8370
+ {
8371
+ "type": "struct",
8372
+ "name": "core::integer::u256",
8373
+ "members": [
8374
+ {
8375
+ "name": "low",
8376
+ "type": "core::integer::u128"
8377
+ },
8378
+ {
8379
+ "name": "high",
8380
+ "type": "core::integer::u128"
8381
+ }
8382
+ ]
8383
+ },
8384
+ {
8385
+ "type": "interface",
8386
+ "name": "openzeppelin_token::erc721::interface::IERC721Metadata",
8387
+ "items": [
8388
+ {
8389
+ "type": "function",
8390
+ "name": "name",
8391
+ "inputs": [],
8392
+ "outputs": [
8393
+ {
8394
+ "type": "core::byte_array::ByteArray"
8395
+ }
8396
+ ],
8397
+ "state_mutability": "view"
8398
+ },
8399
+ {
8400
+ "type": "function",
8401
+ "name": "symbol",
8402
+ "inputs": [],
8403
+ "outputs": [
8404
+ {
8405
+ "type": "core::byte_array::ByteArray"
8406
+ }
8407
+ ],
8408
+ "state_mutability": "view"
8409
+ },
8410
+ {
8411
+ "type": "function",
8412
+ "name": "token_uri",
8413
+ "inputs": [
8414
+ {
8415
+ "name": "token_id",
8416
+ "type": "core::integer::u256"
8417
+ }
8418
+ ],
8419
+ "outputs": [
8420
+ {
8421
+ "type": "core::byte_array::ByteArray"
8422
+ }
8423
+ ],
8424
+ "state_mutability": "view"
8425
+ }
8426
+ ]
8427
+ },
8428
+ {
8429
+ "type": "impl",
8430
+ "name": "ERC721MetadataCamelOnlyImpl",
8431
+ "interface_name": "openzeppelin_token::erc721::interface::IERC721MetadataCamelOnly"
8432
+ },
8433
+ {
8434
+ "type": "interface",
8435
+ "name": "openzeppelin_token::erc721::interface::IERC721MetadataCamelOnly",
8436
+ "items": [
8437
+ {
8438
+ "type": "function",
8439
+ "name": "tokenURI",
8440
+ "inputs": [
8441
+ {
8442
+ "name": "tokenId",
8443
+ "type": "core::integer::u256"
8444
+ }
8445
+ ],
8446
+ "outputs": [
8447
+ {
8448
+ "type": "core::byte_array::ByteArray"
8449
+ }
8450
+ ],
8451
+ "state_mutability": "view"
8452
+ }
8453
+ ]
8454
+ },
8455
+ {
8456
+ "type": "impl",
8457
+ "name": "IPClubCollectionImpl",
8458
+ "interface_name": "ip_club::interface::IIPClubCollection"
8459
+ },
8250
8460
  {
8251
8461
  "type": "enum",
8252
8462
  "name": "core::bool",
@@ -8276,148 +8486,1844 @@ var IPSponsorshipABI = [
8276
8486
  ]
8277
8487
  },
8278
8488
  {
8279
- "type": "struct",
8280
- "name": "ip_sponsorship::types::SponsorshipOffer",
8281
- "members": [
8489
+ "type": "interface",
8490
+ "name": "ip_club::interface::IIPClubCollection",
8491
+ "items": [
8282
8492
  {
8283
- "name": "author",
8284
- "type": "core::starknet::contract_address::ContractAddress"
8493
+ "type": "function",
8494
+ "name": "mint",
8495
+ "inputs": [
8496
+ {
8497
+ "name": "to",
8498
+ "type": "core::starknet::contract_address::ContractAddress"
8499
+ }
8500
+ ],
8501
+ "outputs": [
8502
+ {
8503
+ "type": "core::integer::u256"
8504
+ }
8505
+ ],
8506
+ "state_mutability": "external"
8285
8507
  },
8286
8508
  {
8287
- "name": "nft_contract",
8288
- "type": "core::starknet::contract_address::ContractAddress"
8509
+ "type": "function",
8510
+ "name": "set_open",
8511
+ "inputs": [
8512
+ {
8513
+ "name": "open",
8514
+ "type": "core::bool"
8515
+ }
8516
+ ],
8517
+ "outputs": [],
8518
+ "state_mutability": "external"
8289
8519
  },
8290
8520
  {
8291
- "name": "token_id",
8292
- "type": "core::integer::u256"
8521
+ "type": "function",
8522
+ "name": "base_uri",
8523
+ "inputs": [],
8524
+ "outputs": [
8525
+ {
8526
+ "type": "core::byte_array::ByteArray"
8527
+ }
8528
+ ],
8529
+ "state_mutability": "view"
8293
8530
  },
8294
8531
  {
8295
- "name": "min_amount",
8296
- "type": "core::integer::u256"
8532
+ "type": "function",
8533
+ "name": "entry_fee",
8534
+ "inputs": [],
8535
+ "outputs": [
8536
+ {
8537
+ "type": "core::integer::u256"
8538
+ }
8539
+ ],
8540
+ "state_mutability": "view"
8297
8541
  },
8298
8542
  {
8299
- "name": "duration",
8300
- "type": "core::integer::u64"
8543
+ "type": "function",
8544
+ "name": "payment_token",
8545
+ "inputs": [],
8546
+ "outputs": [
8547
+ {
8548
+ "type": "core::option::Option::<core::starknet::contract_address::ContractAddress>"
8549
+ }
8550
+ ],
8551
+ "state_mutability": "view"
8301
8552
  },
8302
8553
  {
8303
- "name": "payment_token",
8304
- "type": "core::starknet::contract_address::ContractAddress"
8554
+ "type": "function",
8555
+ "name": "max_supply",
8556
+ "inputs": [],
8557
+ "outputs": [
8558
+ {
8559
+ "type": "core::integer::u256"
8560
+ }
8561
+ ],
8562
+ "state_mutability": "view"
8563
+ },
8564
+ {
8565
+ "type": "function",
8566
+ "name": "total_minted",
8567
+ "inputs": [],
8568
+ "outputs": [
8569
+ {
8570
+ "type": "core::integer::u256"
8571
+ }
8572
+ ],
8573
+ "state_mutability": "view"
8574
+ },
8575
+ {
8576
+ "type": "function",
8577
+ "name": "is_open",
8578
+ "inputs": [],
8579
+ "outputs": [
8580
+ {
8581
+ "type": "core::bool"
8582
+ }
8583
+ ],
8584
+ "state_mutability": "view"
8585
+ },
8586
+ {
8587
+ "type": "function",
8588
+ "name": "royalty_info",
8589
+ "inputs": [
8590
+ {
8591
+ "name": "token_id",
8592
+ "type": "core::integer::u256"
8593
+ },
8594
+ {
8595
+ "name": "sale_price",
8596
+ "type": "core::integer::u256"
8597
+ }
8598
+ ],
8599
+ "outputs": [
8600
+ {
8601
+ "type": "(core::starknet::contract_address::ContractAddress, core::integer::u256)"
8602
+ }
8603
+ ],
8604
+ "state_mutability": "view"
8605
+ },
8606
+ {
8607
+ "type": "function",
8608
+ "name": "royaltyInfo",
8609
+ "inputs": [
8610
+ {
8611
+ "name": "token_id",
8612
+ "type": "core::integer::u256"
8613
+ },
8614
+ {
8615
+ "name": "sale_price",
8616
+ "type": "core::integer::u256"
8617
+ }
8618
+ ],
8619
+ "outputs": [
8620
+ {
8621
+ "type": "(core::starknet::contract_address::ContractAddress, core::integer::u256)"
8622
+ }
8623
+ ],
8624
+ "state_mutability": "view"
8625
+ },
8626
+ {
8627
+ "type": "function",
8628
+ "name": "version",
8629
+ "inputs": [],
8630
+ "outputs": [
8631
+ {
8632
+ "type": "core::byte_array::ByteArray"
8633
+ }
8634
+ ],
8635
+ "state_mutability": "view"
8636
+ }
8637
+ ]
8638
+ },
8639
+ {
8640
+ "type": "impl",
8641
+ "name": "ERC721Impl",
8642
+ "interface_name": "openzeppelin_token::erc721::interface::IERC721"
8643
+ },
8644
+ {
8645
+ "type": "struct",
8646
+ "name": "core::array::Span::<core::felt252>",
8647
+ "members": [
8648
+ {
8649
+ "name": "snapshot",
8650
+ "type": "@core::array::Array::<core::felt252>"
8651
+ }
8652
+ ]
8653
+ },
8654
+ {
8655
+ "type": "interface",
8656
+ "name": "openzeppelin_token::erc721::interface::IERC721",
8657
+ "items": [
8658
+ {
8659
+ "type": "function",
8660
+ "name": "balance_of",
8661
+ "inputs": [
8662
+ {
8663
+ "name": "account",
8664
+ "type": "core::starknet::contract_address::ContractAddress"
8665
+ }
8666
+ ],
8667
+ "outputs": [
8668
+ {
8669
+ "type": "core::integer::u256"
8670
+ }
8671
+ ],
8672
+ "state_mutability": "view"
8673
+ },
8674
+ {
8675
+ "type": "function",
8676
+ "name": "owner_of",
8677
+ "inputs": [
8678
+ {
8679
+ "name": "token_id",
8680
+ "type": "core::integer::u256"
8681
+ }
8682
+ ],
8683
+ "outputs": [
8684
+ {
8685
+ "type": "core::starknet::contract_address::ContractAddress"
8686
+ }
8687
+ ],
8688
+ "state_mutability": "view"
8689
+ },
8690
+ {
8691
+ "type": "function",
8692
+ "name": "safe_transfer_from",
8693
+ "inputs": [
8694
+ {
8695
+ "name": "from",
8696
+ "type": "core::starknet::contract_address::ContractAddress"
8697
+ },
8698
+ {
8699
+ "name": "to",
8700
+ "type": "core::starknet::contract_address::ContractAddress"
8701
+ },
8702
+ {
8703
+ "name": "token_id",
8704
+ "type": "core::integer::u256"
8705
+ },
8706
+ {
8707
+ "name": "data",
8708
+ "type": "core::array::Span::<core::felt252>"
8709
+ }
8710
+ ],
8711
+ "outputs": [],
8712
+ "state_mutability": "external"
8713
+ },
8714
+ {
8715
+ "type": "function",
8716
+ "name": "transfer_from",
8717
+ "inputs": [
8718
+ {
8719
+ "name": "from",
8720
+ "type": "core::starknet::contract_address::ContractAddress"
8721
+ },
8722
+ {
8723
+ "name": "to",
8724
+ "type": "core::starknet::contract_address::ContractAddress"
8725
+ },
8726
+ {
8727
+ "name": "token_id",
8728
+ "type": "core::integer::u256"
8729
+ }
8730
+ ],
8731
+ "outputs": [],
8732
+ "state_mutability": "external"
8733
+ },
8734
+ {
8735
+ "type": "function",
8736
+ "name": "approve",
8737
+ "inputs": [
8738
+ {
8739
+ "name": "to",
8740
+ "type": "core::starknet::contract_address::ContractAddress"
8741
+ },
8742
+ {
8743
+ "name": "token_id",
8744
+ "type": "core::integer::u256"
8745
+ }
8746
+ ],
8747
+ "outputs": [],
8748
+ "state_mutability": "external"
8749
+ },
8750
+ {
8751
+ "type": "function",
8752
+ "name": "set_approval_for_all",
8753
+ "inputs": [
8754
+ {
8755
+ "name": "operator",
8756
+ "type": "core::starknet::contract_address::ContractAddress"
8757
+ },
8758
+ {
8759
+ "name": "approved",
8760
+ "type": "core::bool"
8761
+ }
8762
+ ],
8763
+ "outputs": [],
8764
+ "state_mutability": "external"
8765
+ },
8766
+ {
8767
+ "type": "function",
8768
+ "name": "get_approved",
8769
+ "inputs": [
8770
+ {
8771
+ "name": "token_id",
8772
+ "type": "core::integer::u256"
8773
+ }
8774
+ ],
8775
+ "outputs": [
8776
+ {
8777
+ "type": "core::starknet::contract_address::ContractAddress"
8778
+ }
8779
+ ],
8780
+ "state_mutability": "view"
8781
+ },
8782
+ {
8783
+ "type": "function",
8784
+ "name": "is_approved_for_all",
8785
+ "inputs": [
8786
+ {
8787
+ "name": "owner",
8788
+ "type": "core::starknet::contract_address::ContractAddress"
8789
+ },
8790
+ {
8791
+ "name": "operator",
8792
+ "type": "core::starknet::contract_address::ContractAddress"
8793
+ }
8794
+ ],
8795
+ "outputs": [
8796
+ {
8797
+ "type": "core::bool"
8798
+ }
8799
+ ],
8800
+ "state_mutability": "view"
8801
+ }
8802
+ ]
8803
+ },
8804
+ {
8805
+ "type": "impl",
8806
+ "name": "ERC721CamelOnly",
8807
+ "interface_name": "openzeppelin_token::erc721::interface::IERC721CamelOnly"
8808
+ },
8809
+ {
8810
+ "type": "interface",
8811
+ "name": "openzeppelin_token::erc721::interface::IERC721CamelOnly",
8812
+ "items": [
8813
+ {
8814
+ "type": "function",
8815
+ "name": "balanceOf",
8816
+ "inputs": [
8817
+ {
8818
+ "name": "account",
8819
+ "type": "core::starknet::contract_address::ContractAddress"
8820
+ }
8821
+ ],
8822
+ "outputs": [
8823
+ {
8824
+ "type": "core::integer::u256"
8825
+ }
8826
+ ],
8827
+ "state_mutability": "view"
8828
+ },
8829
+ {
8830
+ "type": "function",
8831
+ "name": "ownerOf",
8832
+ "inputs": [
8833
+ {
8834
+ "name": "tokenId",
8835
+ "type": "core::integer::u256"
8836
+ }
8837
+ ],
8838
+ "outputs": [
8839
+ {
8840
+ "type": "core::starknet::contract_address::ContractAddress"
8841
+ }
8842
+ ],
8843
+ "state_mutability": "view"
8844
+ },
8845
+ {
8846
+ "type": "function",
8847
+ "name": "safeTransferFrom",
8848
+ "inputs": [
8849
+ {
8850
+ "name": "from",
8851
+ "type": "core::starknet::contract_address::ContractAddress"
8852
+ },
8853
+ {
8854
+ "name": "to",
8855
+ "type": "core::starknet::contract_address::ContractAddress"
8856
+ },
8857
+ {
8858
+ "name": "tokenId",
8859
+ "type": "core::integer::u256"
8860
+ },
8861
+ {
8862
+ "name": "data",
8863
+ "type": "core::array::Span::<core::felt252>"
8864
+ }
8865
+ ],
8866
+ "outputs": [],
8867
+ "state_mutability": "external"
8868
+ },
8869
+ {
8870
+ "type": "function",
8871
+ "name": "transferFrom",
8872
+ "inputs": [
8873
+ {
8874
+ "name": "from",
8875
+ "type": "core::starknet::contract_address::ContractAddress"
8876
+ },
8877
+ {
8878
+ "name": "to",
8879
+ "type": "core::starknet::contract_address::ContractAddress"
8880
+ },
8881
+ {
8882
+ "name": "tokenId",
8883
+ "type": "core::integer::u256"
8884
+ }
8885
+ ],
8886
+ "outputs": [],
8887
+ "state_mutability": "external"
8888
+ },
8889
+ {
8890
+ "type": "function",
8891
+ "name": "setApprovalForAll",
8892
+ "inputs": [
8893
+ {
8894
+ "name": "operator",
8895
+ "type": "core::starknet::contract_address::ContractAddress"
8896
+ },
8897
+ {
8898
+ "name": "approved",
8899
+ "type": "core::bool"
8900
+ }
8901
+ ],
8902
+ "outputs": [],
8903
+ "state_mutability": "external"
8904
+ },
8905
+ {
8906
+ "type": "function",
8907
+ "name": "getApproved",
8908
+ "inputs": [
8909
+ {
8910
+ "name": "tokenId",
8911
+ "type": "core::integer::u256"
8912
+ }
8913
+ ],
8914
+ "outputs": [
8915
+ {
8916
+ "type": "core::starknet::contract_address::ContractAddress"
8917
+ }
8918
+ ],
8919
+ "state_mutability": "view"
8920
+ },
8921
+ {
8922
+ "type": "function",
8923
+ "name": "isApprovedForAll",
8924
+ "inputs": [
8925
+ {
8926
+ "name": "owner",
8927
+ "type": "core::starknet::contract_address::ContractAddress"
8928
+ },
8929
+ {
8930
+ "name": "operator",
8931
+ "type": "core::starknet::contract_address::ContractAddress"
8932
+ }
8933
+ ],
8934
+ "outputs": [
8935
+ {
8936
+ "type": "core::bool"
8937
+ }
8938
+ ],
8939
+ "state_mutability": "view"
8940
+ }
8941
+ ]
8942
+ },
8943
+ {
8944
+ "type": "impl",
8945
+ "name": "SRC5Impl",
8946
+ "interface_name": "openzeppelin_introspection::interface::ISRC5"
8947
+ },
8948
+ {
8949
+ "type": "interface",
8950
+ "name": "openzeppelin_introspection::interface::ISRC5",
8951
+ "items": [
8952
+ {
8953
+ "type": "function",
8954
+ "name": "supports_interface",
8955
+ "inputs": [
8956
+ {
8957
+ "name": "interface_id",
8958
+ "type": "core::felt252"
8959
+ }
8960
+ ],
8961
+ "outputs": [
8962
+ {
8963
+ "type": "core::bool"
8964
+ }
8965
+ ],
8966
+ "state_mutability": "view"
8967
+ }
8968
+ ]
8969
+ },
8970
+ {
8971
+ "type": "impl",
8972
+ "name": "OwnableMixinImpl",
8973
+ "interface_name": "openzeppelin_access::ownable::interface::OwnableABI"
8974
+ },
8975
+ {
8976
+ "type": "interface",
8977
+ "name": "openzeppelin_access::ownable::interface::OwnableABI",
8978
+ "items": [
8979
+ {
8980
+ "type": "function",
8981
+ "name": "owner",
8982
+ "inputs": [],
8983
+ "outputs": [
8984
+ {
8985
+ "type": "core::starknet::contract_address::ContractAddress"
8986
+ }
8987
+ ],
8988
+ "state_mutability": "view"
8989
+ },
8990
+ {
8991
+ "type": "function",
8992
+ "name": "transfer_ownership",
8993
+ "inputs": [
8994
+ {
8995
+ "name": "new_owner",
8996
+ "type": "core::starknet::contract_address::ContractAddress"
8997
+ }
8998
+ ],
8999
+ "outputs": [],
9000
+ "state_mutability": "external"
9001
+ },
9002
+ {
9003
+ "type": "function",
9004
+ "name": "renounce_ownership",
9005
+ "inputs": [],
9006
+ "outputs": [],
9007
+ "state_mutability": "external"
9008
+ },
9009
+ {
9010
+ "type": "function",
9011
+ "name": "transferOwnership",
9012
+ "inputs": [
9013
+ {
9014
+ "name": "newOwner",
9015
+ "type": "core::starknet::contract_address::ContractAddress"
9016
+ }
9017
+ ],
9018
+ "outputs": [],
9019
+ "state_mutability": "external"
9020
+ },
9021
+ {
9022
+ "type": "function",
9023
+ "name": "renounceOwnership",
9024
+ "inputs": [],
9025
+ "outputs": [],
9026
+ "state_mutability": "external"
9027
+ }
9028
+ ]
9029
+ },
9030
+ {
9031
+ "type": "constructor",
9032
+ "name": "constructor",
9033
+ "inputs": [
9034
+ {
9035
+ "name": "name",
9036
+ "type": "core::byte_array::ByteArray"
9037
+ },
9038
+ {
9039
+ "name": "symbol",
9040
+ "type": "core::byte_array::ByteArray"
9041
+ },
9042
+ {
9043
+ "name": "base_uri",
9044
+ "type": "core::byte_array::ByteArray"
9045
+ },
9046
+ {
9047
+ "name": "max_supply",
9048
+ "type": "core::integer::u256"
9049
+ },
9050
+ {
9051
+ "name": "entry_fee",
9052
+ "type": "core::integer::u256"
9053
+ },
9054
+ {
9055
+ "name": "payment_token",
9056
+ "type": "core::option::Option::<core::starknet::contract_address::ContractAddress>"
9057
+ },
9058
+ {
9059
+ "name": "royalty_bps",
9060
+ "type": "core::integer::u256"
9061
+ },
9062
+ {
9063
+ "name": "owner",
9064
+ "type": "core::starknet::contract_address::ContractAddress"
9065
+ }
9066
+ ]
9067
+ },
9068
+ {
9069
+ "type": "event",
9070
+ "name": "openzeppelin_token::erc721::erc721::ERC721Component::Transfer",
9071
+ "kind": "struct",
9072
+ "members": [
9073
+ {
9074
+ "name": "from",
9075
+ "type": "core::starknet::contract_address::ContractAddress",
9076
+ "kind": "key"
9077
+ },
9078
+ {
9079
+ "name": "to",
9080
+ "type": "core::starknet::contract_address::ContractAddress",
9081
+ "kind": "key"
9082
+ },
9083
+ {
9084
+ "name": "token_id",
9085
+ "type": "core::integer::u256",
9086
+ "kind": "key"
9087
+ }
9088
+ ]
9089
+ },
9090
+ {
9091
+ "type": "event",
9092
+ "name": "openzeppelin_token::erc721::erc721::ERC721Component::Approval",
9093
+ "kind": "struct",
9094
+ "members": [
9095
+ {
9096
+ "name": "owner",
9097
+ "type": "core::starknet::contract_address::ContractAddress",
9098
+ "kind": "key"
9099
+ },
9100
+ {
9101
+ "name": "approved",
9102
+ "type": "core::starknet::contract_address::ContractAddress",
9103
+ "kind": "key"
9104
+ },
9105
+ {
9106
+ "name": "token_id",
9107
+ "type": "core::integer::u256",
9108
+ "kind": "key"
9109
+ }
9110
+ ]
9111
+ },
9112
+ {
9113
+ "type": "event",
9114
+ "name": "openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll",
9115
+ "kind": "struct",
9116
+ "members": [
9117
+ {
9118
+ "name": "owner",
9119
+ "type": "core::starknet::contract_address::ContractAddress",
9120
+ "kind": "key"
9121
+ },
9122
+ {
9123
+ "name": "operator",
9124
+ "type": "core::starknet::contract_address::ContractAddress",
9125
+ "kind": "key"
9126
+ },
9127
+ {
9128
+ "name": "approved",
9129
+ "type": "core::bool",
9130
+ "kind": "data"
9131
+ }
9132
+ ]
9133
+ },
9134
+ {
9135
+ "type": "event",
9136
+ "name": "openzeppelin_token::erc721::erc721::ERC721Component::Event",
9137
+ "kind": "enum",
9138
+ "variants": [
9139
+ {
9140
+ "name": "Transfer",
9141
+ "type": "openzeppelin_token::erc721::erc721::ERC721Component::Transfer",
9142
+ "kind": "nested"
9143
+ },
9144
+ {
9145
+ "name": "Approval",
9146
+ "type": "openzeppelin_token::erc721::erc721::ERC721Component::Approval",
9147
+ "kind": "nested"
9148
+ },
9149
+ {
9150
+ "name": "ApprovalForAll",
9151
+ "type": "openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll",
9152
+ "kind": "nested"
9153
+ }
9154
+ ]
9155
+ },
9156
+ {
9157
+ "type": "event",
9158
+ "name": "openzeppelin_introspection::src5::SRC5Component::Event",
9159
+ "kind": "enum",
9160
+ "variants": []
9161
+ },
9162
+ {
9163
+ "type": "event",
9164
+ "name": "openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferred",
9165
+ "kind": "struct",
9166
+ "members": [
9167
+ {
9168
+ "name": "previous_owner",
9169
+ "type": "core::starknet::contract_address::ContractAddress",
9170
+ "kind": "key"
9171
+ },
9172
+ {
9173
+ "name": "new_owner",
9174
+ "type": "core::starknet::contract_address::ContractAddress",
9175
+ "kind": "key"
9176
+ }
9177
+ ]
9178
+ },
9179
+ {
9180
+ "type": "event",
9181
+ "name": "openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferStarted",
9182
+ "kind": "struct",
9183
+ "members": [
9184
+ {
9185
+ "name": "previous_owner",
9186
+ "type": "core::starknet::contract_address::ContractAddress",
9187
+ "kind": "key"
9188
+ },
9189
+ {
9190
+ "name": "new_owner",
9191
+ "type": "core::starknet::contract_address::ContractAddress",
9192
+ "kind": "key"
9193
+ }
9194
+ ]
9195
+ },
9196
+ {
9197
+ "type": "event",
9198
+ "name": "openzeppelin_access::ownable::ownable::OwnableComponent::Event",
9199
+ "kind": "enum",
9200
+ "variants": [
9201
+ {
9202
+ "name": "OwnershipTransferred",
9203
+ "type": "openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferred",
9204
+ "kind": "nested"
9205
+ },
9206
+ {
9207
+ "name": "OwnershipTransferStarted",
9208
+ "type": "openzeppelin_access::ownable::ownable::OwnableComponent::OwnershipTransferStarted",
9209
+ "kind": "nested"
9210
+ }
9211
+ ]
9212
+ },
9213
+ {
9214
+ "type": "event",
9215
+ "name": "ip_club::IPClubCollection::IPClubCollection::MemberMinted",
9216
+ "kind": "struct",
9217
+ "members": [
9218
+ {
9219
+ "name": "token_id",
9220
+ "type": "core::integer::u256",
9221
+ "kind": "key"
9222
+ },
9223
+ {
9224
+ "name": "to",
9225
+ "type": "core::starknet::contract_address::ContractAddress",
9226
+ "kind": "key"
9227
+ },
9228
+ {
9229
+ "name": "payer",
9230
+ "type": "core::starknet::contract_address::ContractAddress",
9231
+ "kind": "data"
9232
+ }
9233
+ ]
9234
+ },
9235
+ {
9236
+ "type": "event",
9237
+ "name": "ip_club::IPClubCollection::IPClubCollection::OpenStatusChanged",
9238
+ "kind": "struct",
9239
+ "members": [
9240
+ {
9241
+ "name": "open",
9242
+ "type": "core::bool",
9243
+ "kind": "data"
9244
+ }
9245
+ ]
9246
+ },
9247
+ {
9248
+ "type": "event",
9249
+ "name": "ip_club::IPClubCollection::IPClubCollection::Event",
9250
+ "kind": "enum",
9251
+ "variants": [
9252
+ {
9253
+ "name": "ERC721Event",
9254
+ "type": "openzeppelin_token::erc721::erc721::ERC721Component::Event",
9255
+ "kind": "flat"
9256
+ },
9257
+ {
9258
+ "name": "SRC5Event",
9259
+ "type": "openzeppelin_introspection::src5::SRC5Component::Event",
9260
+ "kind": "flat"
9261
+ },
9262
+ {
9263
+ "name": "OwnableEvent",
9264
+ "type": "openzeppelin_access::ownable::ownable::OwnableComponent::Event",
9265
+ "kind": "flat"
9266
+ },
9267
+ {
9268
+ "name": "MemberMinted",
9269
+ "type": "ip_club::IPClubCollection::IPClubCollection::MemberMinted",
9270
+ "kind": "nested"
9271
+ },
9272
+ {
9273
+ "name": "OpenStatusChanged",
9274
+ "type": "ip_club::IPClubCollection::IPClubCollection::OpenStatusChanged",
9275
+ "kind": "nested"
9276
+ }
9277
+ ]
9278
+ }
9279
+ ];
9280
+
9281
+ // src/starknet/abis/ipSponsorship.ts
9282
+ var IPSponsorshipABI = [
9283
+ {
9284
+ "type": "impl",
9285
+ "name": "IPSponsorshipImpl",
9286
+ "interface_name": "ip_sponsorship::interface::IIPSponsorship"
9287
+ },
9288
+ {
9289
+ "type": "struct",
9290
+ "name": "core::integer::u256",
9291
+ "members": [
9292
+ {
9293
+ "name": "low",
9294
+ "type": "core::integer::u128"
9295
+ },
9296
+ {
9297
+ "name": "high",
9298
+ "type": "core::integer::u128"
9299
+ }
9300
+ ]
9301
+ },
9302
+ {
9303
+ "type": "struct",
9304
+ "name": "core::byte_array::ByteArray",
9305
+ "members": [
9306
+ {
9307
+ "name": "data",
9308
+ "type": "core::array::Array::<core::bytes_31::bytes31>"
9309
+ },
9310
+ {
9311
+ "name": "pending_word",
9312
+ "type": "core::felt252"
9313
+ },
9314
+ {
9315
+ "name": "pending_word_len",
9316
+ "type": "core::internal::bounded_int::BoundedInt::<0, 30>"
9317
+ }
9318
+ ]
9319
+ },
9320
+ {
9321
+ "type": "enum",
9322
+ "name": "core::bool",
9323
+ "variants": [
9324
+ {
9325
+ "name": "False",
9326
+ "type": "()"
9327
+ },
9328
+ {
9329
+ "name": "True",
9330
+ "type": "()"
9331
+ }
9332
+ ]
9333
+ },
9334
+ {
9335
+ "type": "enum",
9336
+ "name": "core::option::Option::<core::starknet::contract_address::ContractAddress>",
9337
+ "variants": [
9338
+ {
9339
+ "name": "Some",
9340
+ "type": "core::starknet::contract_address::ContractAddress"
9341
+ },
9342
+ {
9343
+ "name": "None",
9344
+ "type": "()"
9345
+ }
9346
+ ]
9347
+ },
9348
+ {
9349
+ "type": "struct",
9350
+ "name": "ip_sponsorship::types::SponsorshipOffer",
9351
+ "members": [
9352
+ {
9353
+ "name": "author",
9354
+ "type": "core::starknet::contract_address::ContractAddress"
9355
+ },
9356
+ {
9357
+ "name": "nft_contract",
9358
+ "type": "core::starknet::contract_address::ContractAddress"
9359
+ },
9360
+ {
9361
+ "name": "token_id",
9362
+ "type": "core::integer::u256"
9363
+ },
9364
+ {
9365
+ "name": "min_amount",
9366
+ "type": "core::integer::u256"
9367
+ },
9368
+ {
9369
+ "name": "duration",
9370
+ "type": "core::integer::u64"
9371
+ },
9372
+ {
9373
+ "name": "payment_token",
9374
+ "type": "core::starknet::contract_address::ContractAddress"
9375
+ },
9376
+ {
9377
+ "name": "license_terms_uri",
9378
+ "type": "core::byte_array::ByteArray"
9379
+ },
9380
+ {
9381
+ "name": "transferable",
9382
+ "type": "core::bool"
9383
+ },
9384
+ {
9385
+ "name": "specific_sponsor",
9386
+ "type": "core::option::Option::<core::starknet::contract_address::ContractAddress>"
9387
+ },
9388
+ {
9389
+ "name": "open",
9390
+ "type": "core::bool"
9391
+ }
9392
+ ]
9393
+ },
9394
+ {
9395
+ "type": "struct",
9396
+ "name": "ip_sponsorship::types::License",
9397
+ "members": [
9398
+ {
9399
+ "name": "author",
9400
+ "type": "core::starknet::contract_address::ContractAddress"
9401
+ },
9402
+ {
9403
+ "name": "sponsor",
9404
+ "type": "core::starknet::contract_address::ContractAddress"
9405
+ },
9406
+ {
9407
+ "name": "nft_contract",
9408
+ "type": "core::starknet::contract_address::ContractAddress"
9409
+ },
9410
+ {
9411
+ "name": "token_id",
9412
+ "type": "core::integer::u256"
9413
+ },
9414
+ {
9415
+ "name": "amount_paid",
9416
+ "type": "core::integer::u256"
9417
+ },
9418
+ {
9419
+ "name": "expires_at",
9420
+ "type": "core::integer::u64"
9421
+ },
9422
+ {
9423
+ "name": "transferable",
9424
+ "type": "core::bool"
9425
+ },
9426
+ {
9427
+ "name": "license_terms_uri",
9428
+ "type": "core::byte_array::ByteArray"
9429
+ }
9430
+ ]
9431
+ },
9432
+ {
9433
+ "type": "interface",
9434
+ "name": "ip_sponsorship::interface::IIPSponsorship",
9435
+ "items": [
9436
+ {
9437
+ "type": "function",
9438
+ "name": "create_offer",
9439
+ "inputs": [
9440
+ {
9441
+ "name": "nft_contract",
9442
+ "type": "core::starknet::contract_address::ContractAddress"
9443
+ },
9444
+ {
9445
+ "name": "token_id",
9446
+ "type": "core::integer::u256"
9447
+ },
9448
+ {
9449
+ "name": "min_amount",
9450
+ "type": "core::integer::u256"
9451
+ },
9452
+ {
9453
+ "name": "duration",
9454
+ "type": "core::integer::u64"
9455
+ },
9456
+ {
9457
+ "name": "payment_token",
9458
+ "type": "core::starknet::contract_address::ContractAddress"
9459
+ },
9460
+ {
9461
+ "name": "license_terms_uri",
9462
+ "type": "core::byte_array::ByteArray"
9463
+ },
9464
+ {
9465
+ "name": "transferable",
9466
+ "type": "core::bool"
9467
+ },
9468
+ {
9469
+ "name": "specific_sponsor",
9470
+ "type": "core::option::Option::<core::starknet::contract_address::ContractAddress>"
9471
+ }
9472
+ ],
9473
+ "outputs": [
9474
+ {
9475
+ "type": "core::integer::u256"
9476
+ }
9477
+ ],
9478
+ "state_mutability": "external"
9479
+ },
9480
+ {
9481
+ "type": "function",
9482
+ "name": "set_offer_open",
9483
+ "inputs": [
9484
+ {
9485
+ "name": "offer_id",
9486
+ "type": "core::integer::u256"
9487
+ },
9488
+ {
9489
+ "name": "open",
9490
+ "type": "core::bool"
9491
+ }
9492
+ ],
9493
+ "outputs": [],
9494
+ "state_mutability": "external"
9495
+ },
9496
+ {
9497
+ "type": "function",
9498
+ "name": "place_bid",
9499
+ "inputs": [
9500
+ {
9501
+ "name": "offer_id",
9502
+ "type": "core::integer::u256"
9503
+ },
9504
+ {
9505
+ "name": "amount",
9506
+ "type": "core::integer::u256"
9507
+ }
9508
+ ],
9509
+ "outputs": [],
9510
+ "state_mutability": "external"
9511
+ },
9512
+ {
9513
+ "type": "function",
9514
+ "name": "retract_bid",
9515
+ "inputs": [
9516
+ {
9517
+ "name": "offer_id",
9518
+ "type": "core::integer::u256"
9519
+ }
9520
+ ],
9521
+ "outputs": [],
9522
+ "state_mutability": "external"
9523
+ },
9524
+ {
9525
+ "type": "function",
9526
+ "name": "accept_bid",
9527
+ "inputs": [
9528
+ {
9529
+ "name": "offer_id",
9530
+ "type": "core::integer::u256"
9531
+ },
9532
+ {
9533
+ "name": "sponsor",
9534
+ "type": "core::starknet::contract_address::ContractAddress"
9535
+ }
9536
+ ],
9537
+ "outputs": [
9538
+ {
9539
+ "type": "core::integer::u256"
9540
+ }
9541
+ ],
9542
+ "state_mutability": "external"
9543
+ },
9544
+ {
9545
+ "type": "function",
9546
+ "name": "transfer_license",
9547
+ "inputs": [
9548
+ {
9549
+ "name": "license_id",
9550
+ "type": "core::integer::u256"
9551
+ },
9552
+ {
9553
+ "name": "to",
9554
+ "type": "core::starknet::contract_address::ContractAddress"
9555
+ }
9556
+ ],
9557
+ "outputs": [],
9558
+ "state_mutability": "external"
9559
+ },
9560
+ {
9561
+ "type": "function",
9562
+ "name": "get_offer",
9563
+ "inputs": [
9564
+ {
9565
+ "name": "offer_id",
9566
+ "type": "core::integer::u256"
9567
+ }
9568
+ ],
9569
+ "outputs": [
9570
+ {
9571
+ "type": "ip_sponsorship::types::SponsorshipOffer"
9572
+ }
9573
+ ],
9574
+ "state_mutability": "view"
9575
+ },
9576
+ {
9577
+ "type": "function",
9578
+ "name": "get_bid",
9579
+ "inputs": [
9580
+ {
9581
+ "name": "offer_id",
9582
+ "type": "core::integer::u256"
9583
+ },
9584
+ {
9585
+ "name": "sponsor",
9586
+ "type": "core::starknet::contract_address::ContractAddress"
9587
+ }
9588
+ ],
9589
+ "outputs": [
9590
+ {
9591
+ "type": "core::integer::u256"
9592
+ }
9593
+ ],
9594
+ "state_mutability": "view"
9595
+ },
9596
+ {
9597
+ "type": "function",
9598
+ "name": "get_license",
9599
+ "inputs": [
9600
+ {
9601
+ "name": "license_id",
9602
+ "type": "core::integer::u256"
9603
+ }
9604
+ ],
9605
+ "outputs": [
9606
+ {
9607
+ "type": "ip_sponsorship::types::License"
9608
+ }
9609
+ ],
9610
+ "state_mutability": "view"
9611
+ },
9612
+ {
9613
+ "type": "function",
9614
+ "name": "is_license_valid",
9615
+ "inputs": [
9616
+ {
9617
+ "name": "license_id",
9618
+ "type": "core::integer::u256"
9619
+ }
9620
+ ],
9621
+ "outputs": [
9622
+ {
9623
+ "type": "core::bool"
9624
+ }
9625
+ ],
9626
+ "state_mutability": "view"
9627
+ },
9628
+ {
9629
+ "type": "function",
9630
+ "name": "get_last_offer_id",
9631
+ "inputs": [],
9632
+ "outputs": [
9633
+ {
9634
+ "type": "core::integer::u256"
9635
+ }
9636
+ ],
9637
+ "state_mutability": "view"
9638
+ },
9639
+ {
9640
+ "type": "function",
9641
+ "name": "get_last_license_id",
9642
+ "inputs": [],
9643
+ "outputs": [
9644
+ {
9645
+ "type": "core::integer::u256"
9646
+ }
9647
+ ],
9648
+ "state_mutability": "view"
9649
+ }
9650
+ ]
9651
+ },
9652
+ {
9653
+ "type": "impl",
9654
+ "name": "SRC5Impl",
9655
+ "interface_name": "openzeppelin_introspection::interface::ISRC5"
9656
+ },
9657
+ {
9658
+ "type": "interface",
9659
+ "name": "openzeppelin_introspection::interface::ISRC5",
9660
+ "items": [
9661
+ {
9662
+ "type": "function",
9663
+ "name": "supports_interface",
9664
+ "inputs": [
9665
+ {
9666
+ "name": "interface_id",
9667
+ "type": "core::felt252"
9668
+ }
9669
+ ],
9670
+ "outputs": [
9671
+ {
9672
+ "type": "core::bool"
9673
+ }
9674
+ ],
9675
+ "state_mutability": "view"
9676
+ }
9677
+ ]
9678
+ },
9679
+ {
9680
+ "type": "constructor",
9681
+ "name": "constructor",
9682
+ "inputs": []
9683
+ },
9684
+ {
9685
+ "type": "event",
9686
+ "name": "openzeppelin_introspection::src5::SRC5Component::Event",
9687
+ "kind": "enum",
9688
+ "variants": []
9689
+ },
9690
+ {
9691
+ "type": "event",
9692
+ "name": "ip_sponsorship::IPSponsorship::IPSponsorship::OfferCreated",
9693
+ "kind": "struct",
9694
+ "members": [
9695
+ {
9696
+ "name": "offer_id",
9697
+ "type": "core::integer::u256",
9698
+ "kind": "key"
9699
+ },
9700
+ {
9701
+ "name": "author",
9702
+ "type": "core::starknet::contract_address::ContractAddress",
9703
+ "kind": "key"
9704
+ },
9705
+ {
9706
+ "name": "nft_contract",
9707
+ "type": "core::starknet::contract_address::ContractAddress",
9708
+ "kind": "key"
9709
+ },
9710
+ {
9711
+ "name": "token_id",
9712
+ "type": "core::integer::u256",
9713
+ "kind": "data"
9714
+ },
9715
+ {
9716
+ "name": "min_amount",
9717
+ "type": "core::integer::u256",
9718
+ "kind": "data"
9719
+ },
9720
+ {
9721
+ "name": "duration",
9722
+ "type": "core::integer::u64",
9723
+ "kind": "data"
9724
+ },
9725
+ {
9726
+ "name": "payment_token",
9727
+ "type": "core::starknet::contract_address::ContractAddress",
9728
+ "kind": "data"
8305
9729
  },
8306
9730
  {
8307
9731
  "name": "license_terms_uri",
8308
- "type": "core::byte_array::ByteArray"
9732
+ "type": "core::byte_array::ByteArray",
9733
+ "kind": "data"
9734
+ },
9735
+ {
9736
+ "name": "transferable",
9737
+ "type": "core::bool",
9738
+ "kind": "data"
9739
+ },
9740
+ {
9741
+ "name": "specific_sponsor",
9742
+ "type": "core::option::Option::<core::starknet::contract_address::ContractAddress>",
9743
+ "kind": "data"
9744
+ },
9745
+ {
9746
+ "name": "created_at",
9747
+ "type": "core::integer::u64",
9748
+ "kind": "data"
9749
+ }
9750
+ ]
9751
+ },
9752
+ {
9753
+ "type": "event",
9754
+ "name": "ip_sponsorship::IPSponsorship::IPSponsorship::OfferStatusUpdated",
9755
+ "kind": "struct",
9756
+ "members": [
9757
+ {
9758
+ "name": "offer_id",
9759
+ "type": "core::integer::u256",
9760
+ "kind": "key"
9761
+ },
9762
+ {
9763
+ "name": "open",
9764
+ "type": "core::bool",
9765
+ "kind": "data"
9766
+ },
9767
+ {
9768
+ "name": "updated_at",
9769
+ "type": "core::integer::u64",
9770
+ "kind": "data"
9771
+ }
9772
+ ]
9773
+ },
9774
+ {
9775
+ "type": "event",
9776
+ "name": "ip_sponsorship::IPSponsorship::IPSponsorship::BidPlaced",
9777
+ "kind": "struct",
9778
+ "members": [
9779
+ {
9780
+ "name": "offer_id",
9781
+ "type": "core::integer::u256",
9782
+ "kind": "key"
9783
+ },
9784
+ {
9785
+ "name": "sponsor",
9786
+ "type": "core::starknet::contract_address::ContractAddress",
9787
+ "kind": "key"
9788
+ },
9789
+ {
9790
+ "name": "amount",
9791
+ "type": "core::integer::u256",
9792
+ "kind": "data"
9793
+ },
9794
+ {
9795
+ "name": "bid_at",
9796
+ "type": "core::integer::u64",
9797
+ "kind": "data"
9798
+ }
9799
+ ]
9800
+ },
9801
+ {
9802
+ "type": "event",
9803
+ "name": "ip_sponsorship::IPSponsorship::IPSponsorship::BidRetracted",
9804
+ "kind": "struct",
9805
+ "members": [
9806
+ {
9807
+ "name": "offer_id",
9808
+ "type": "core::integer::u256",
9809
+ "kind": "key"
9810
+ },
9811
+ {
9812
+ "name": "sponsor",
9813
+ "type": "core::starknet::contract_address::ContractAddress",
9814
+ "kind": "key"
9815
+ },
9816
+ {
9817
+ "name": "retracted_at",
9818
+ "type": "core::integer::u64",
9819
+ "kind": "data"
9820
+ }
9821
+ ]
9822
+ },
9823
+ {
9824
+ "type": "event",
9825
+ "name": "ip_sponsorship::IPSponsorship::IPSponsorship::SponsorshipAccepted",
9826
+ "kind": "struct",
9827
+ "members": [
9828
+ {
9829
+ "name": "offer_id",
9830
+ "type": "core::integer::u256",
9831
+ "kind": "key"
9832
+ },
9833
+ {
9834
+ "name": "license_id",
9835
+ "type": "core::integer::u256",
9836
+ "kind": "key"
9837
+ },
9838
+ {
9839
+ "name": "sponsor",
9840
+ "type": "core::starknet::contract_address::ContractAddress",
9841
+ "kind": "key"
9842
+ },
9843
+ {
9844
+ "name": "author",
9845
+ "type": "core::starknet::contract_address::ContractAddress",
9846
+ "kind": "data"
9847
+ },
9848
+ {
9849
+ "name": "amount",
9850
+ "type": "core::integer::u256",
9851
+ "kind": "data"
9852
+ },
9853
+ {
9854
+ "name": "expires_at",
9855
+ "type": "core::integer::u64",
9856
+ "kind": "data"
9857
+ }
9858
+ ]
9859
+ },
9860
+ {
9861
+ "type": "event",
9862
+ "name": "ip_sponsorship::IPSponsorship::IPSponsorship::LicenseTransferred",
9863
+ "kind": "struct",
9864
+ "members": [
9865
+ {
9866
+ "name": "license_id",
9867
+ "type": "core::integer::u256",
9868
+ "kind": "key"
9869
+ },
9870
+ {
9871
+ "name": "from",
9872
+ "type": "core::starknet::contract_address::ContractAddress",
9873
+ "kind": "key"
9874
+ },
9875
+ {
9876
+ "name": "to",
9877
+ "type": "core::starknet::contract_address::ContractAddress",
9878
+ "kind": "key"
9879
+ },
9880
+ {
9881
+ "name": "transferred_at",
9882
+ "type": "core::integer::u64",
9883
+ "kind": "data"
9884
+ }
9885
+ ]
9886
+ },
9887
+ {
9888
+ "type": "event",
9889
+ "name": "ip_sponsorship::IPSponsorship::IPSponsorship::Event",
9890
+ "kind": "enum",
9891
+ "variants": [
9892
+ {
9893
+ "name": "SRC5Event",
9894
+ "type": "openzeppelin_introspection::src5::SRC5Component::Event",
9895
+ "kind": "flat"
9896
+ },
9897
+ {
9898
+ "name": "OfferCreated",
9899
+ "type": "ip_sponsorship::IPSponsorship::IPSponsorship::OfferCreated",
9900
+ "kind": "nested"
9901
+ },
9902
+ {
9903
+ "name": "OfferStatusUpdated",
9904
+ "type": "ip_sponsorship::IPSponsorship::IPSponsorship::OfferStatusUpdated",
9905
+ "kind": "nested"
9906
+ },
9907
+ {
9908
+ "name": "BidPlaced",
9909
+ "type": "ip_sponsorship::IPSponsorship::IPSponsorship::BidPlaced",
9910
+ "kind": "nested"
9911
+ },
9912
+ {
9913
+ "name": "BidRetracted",
9914
+ "type": "ip_sponsorship::IPSponsorship::IPSponsorship::BidRetracted",
9915
+ "kind": "nested"
9916
+ },
9917
+ {
9918
+ "name": "SponsorshipAccepted",
9919
+ "type": "ip_sponsorship::IPSponsorship::IPSponsorship::SponsorshipAccepted",
9920
+ "kind": "nested"
9921
+ },
9922
+ {
9923
+ "name": "LicenseTransferred",
9924
+ "type": "ip_sponsorship::IPSponsorship::IPSponsorship::LicenseTransferred",
9925
+ "kind": "nested"
9926
+ }
9927
+ ]
9928
+ }
9929
+ ];
9930
+
9931
+ // src/starknet/abis/ipSponsorshipLicense.ts
9932
+ var IPSponsorshipLicenseABI = [
9933
+ {
9934
+ "type": "impl",
9935
+ "name": "ERC721MetadataImpl",
9936
+ "interface_name": "openzeppelin_token::erc721::interface::IERC721Metadata"
9937
+ },
9938
+ {
9939
+ "type": "struct",
9940
+ "name": "core::byte_array::ByteArray",
9941
+ "members": [
9942
+ {
9943
+ "name": "data",
9944
+ "type": "core::array::Array::<core::bytes_31::bytes31>"
9945
+ },
9946
+ {
9947
+ "name": "pending_word",
9948
+ "type": "core::felt252"
9949
+ },
9950
+ {
9951
+ "name": "pending_word_len",
9952
+ "type": "core::internal::bounded_int::BoundedInt::<0, 30>"
9953
+ }
9954
+ ]
9955
+ },
9956
+ {
9957
+ "type": "struct",
9958
+ "name": "core::integer::u256",
9959
+ "members": [
9960
+ {
9961
+ "name": "low",
9962
+ "type": "core::integer::u128"
9963
+ },
9964
+ {
9965
+ "name": "high",
9966
+ "type": "core::integer::u128"
9967
+ }
9968
+ ]
9969
+ },
9970
+ {
9971
+ "type": "interface",
9972
+ "name": "openzeppelin_token::erc721::interface::IERC721Metadata",
9973
+ "items": [
9974
+ {
9975
+ "type": "function",
9976
+ "name": "name",
9977
+ "inputs": [],
9978
+ "outputs": [
9979
+ {
9980
+ "type": "core::byte_array::ByteArray"
9981
+ }
9982
+ ],
9983
+ "state_mutability": "view"
9984
+ },
9985
+ {
9986
+ "type": "function",
9987
+ "name": "symbol",
9988
+ "inputs": [],
9989
+ "outputs": [
9990
+ {
9991
+ "type": "core::byte_array::ByteArray"
9992
+ }
9993
+ ],
9994
+ "state_mutability": "view"
9995
+ },
9996
+ {
9997
+ "type": "function",
9998
+ "name": "token_uri",
9999
+ "inputs": [
10000
+ {
10001
+ "name": "token_id",
10002
+ "type": "core::integer::u256"
10003
+ }
10004
+ ],
10005
+ "outputs": [
10006
+ {
10007
+ "type": "core::byte_array::ByteArray"
10008
+ }
10009
+ ],
10010
+ "state_mutability": "view"
10011
+ }
10012
+ ]
10013
+ },
10014
+ {
10015
+ "type": "impl",
10016
+ "name": "ERC721MetadataCamelOnlyImpl",
10017
+ "interface_name": "openzeppelin_token::erc721::interface::IERC721MetadataCamelOnly"
10018
+ },
10019
+ {
10020
+ "type": "interface",
10021
+ "name": "openzeppelin_token::erc721::interface::IERC721MetadataCamelOnly",
10022
+ "items": [
10023
+ {
10024
+ "type": "function",
10025
+ "name": "tokenURI",
10026
+ "inputs": [
10027
+ {
10028
+ "name": "tokenId",
10029
+ "type": "core::integer::u256"
10030
+ }
10031
+ ],
10032
+ "outputs": [
10033
+ {
10034
+ "type": "core::byte_array::ByteArray"
10035
+ }
10036
+ ],
10037
+ "state_mutability": "view"
10038
+ }
10039
+ ]
10040
+ },
10041
+ {
10042
+ "type": "impl",
10043
+ "name": "IPSponsorshipLicenseImpl",
10044
+ "interface_name": "ip_sponsorship::interface::IIPSponsorshipLicense"
10045
+ },
10046
+ {
10047
+ "type": "enum",
10048
+ "name": "core::bool",
10049
+ "variants": [
10050
+ {
10051
+ "name": "False",
10052
+ "type": "()"
10053
+ },
10054
+ {
10055
+ "name": "True",
10056
+ "type": "()"
10057
+ }
10058
+ ]
10059
+ },
10060
+ {
10061
+ "type": "struct",
10062
+ "name": "ip_sponsorship::types::LicenseData",
10063
+ "members": [
10064
+ {
10065
+ "name": "author",
10066
+ "type": "core::starknet::contract_address::ContractAddress"
10067
+ },
10068
+ {
10069
+ "name": "asset_contract",
10070
+ "type": "core::starknet::contract_address::ContractAddress"
10071
+ },
10072
+ {
10073
+ "name": "asset_token_id",
10074
+ "type": "core::integer::u256"
10075
+ },
10076
+ {
10077
+ "name": "expires_at",
10078
+ "type": "core::integer::u64"
8309
10079
  },
8310
10080
  {
8311
10081
  "name": "transferable",
8312
10082
  "type": "core::bool"
8313
10083
  },
8314
10084
  {
8315
- "name": "specific_sponsor",
8316
- "type": "core::option::Option::<core::starknet::contract_address::ContractAddress>"
10085
+ "name": "royalty_bps",
10086
+ "type": "core::integer::u256"
8317
10087
  },
8318
10088
  {
8319
- "name": "open",
8320
- "type": "core::bool"
10089
+ "name": "license_terms_uri",
10090
+ "type": "core::byte_array::ByteArray"
10091
+ }
10092
+ ]
10093
+ },
10094
+ {
10095
+ "type": "interface",
10096
+ "name": "ip_sponsorship::interface::IIPSponsorshipLicense",
10097
+ "items": [
10098
+ {
10099
+ "type": "function",
10100
+ "name": "set_minter",
10101
+ "inputs": [
10102
+ {
10103
+ "name": "minter",
10104
+ "type": "core::starknet::contract_address::ContractAddress"
10105
+ }
10106
+ ],
10107
+ "outputs": [],
10108
+ "state_mutability": "external"
10109
+ },
10110
+ {
10111
+ "type": "function",
10112
+ "name": "get_minter",
10113
+ "inputs": [],
10114
+ "outputs": [
10115
+ {
10116
+ "type": "core::starknet::contract_address::ContractAddress"
10117
+ }
10118
+ ],
10119
+ "state_mutability": "view"
10120
+ },
10121
+ {
10122
+ "type": "function",
10123
+ "name": "mint",
10124
+ "inputs": [
10125
+ {
10126
+ "name": "recipient",
10127
+ "type": "core::starknet::contract_address::ContractAddress"
10128
+ },
10129
+ {
10130
+ "name": "data",
10131
+ "type": "ip_sponsorship::types::LicenseData"
10132
+ }
10133
+ ],
10134
+ "outputs": [
10135
+ {
10136
+ "type": "core::integer::u256"
10137
+ }
10138
+ ],
10139
+ "state_mutability": "external"
10140
+ },
10141
+ {
10142
+ "type": "function",
10143
+ "name": "get_license_data",
10144
+ "inputs": [
10145
+ {
10146
+ "name": "token_id",
10147
+ "type": "core::integer::u256"
10148
+ }
10149
+ ],
10150
+ "outputs": [
10151
+ {
10152
+ "type": "ip_sponsorship::types::LicenseData"
10153
+ }
10154
+ ],
10155
+ "state_mutability": "view"
10156
+ },
10157
+ {
10158
+ "type": "function",
10159
+ "name": "is_license_valid",
10160
+ "inputs": [
10161
+ {
10162
+ "name": "token_id",
10163
+ "type": "core::integer::u256"
10164
+ }
10165
+ ],
10166
+ "outputs": [
10167
+ {
10168
+ "type": "core::bool"
10169
+ }
10170
+ ],
10171
+ "state_mutability": "view"
10172
+ },
10173
+ {
10174
+ "type": "function",
10175
+ "name": "last_license_id",
10176
+ "inputs": [],
10177
+ "outputs": [
10178
+ {
10179
+ "type": "core::integer::u256"
10180
+ }
10181
+ ],
10182
+ "state_mutability": "view"
10183
+ },
10184
+ {
10185
+ "type": "function",
10186
+ "name": "royalty_info",
10187
+ "inputs": [
10188
+ {
10189
+ "name": "token_id",
10190
+ "type": "core::integer::u256"
10191
+ },
10192
+ {
10193
+ "name": "sale_price",
10194
+ "type": "core::integer::u256"
10195
+ }
10196
+ ],
10197
+ "outputs": [
10198
+ {
10199
+ "type": "(core::starknet::contract_address::ContractAddress, core::integer::u256)"
10200
+ }
10201
+ ],
10202
+ "state_mutability": "view"
10203
+ },
10204
+ {
10205
+ "type": "function",
10206
+ "name": "royaltyInfo",
10207
+ "inputs": [
10208
+ {
10209
+ "name": "token_id",
10210
+ "type": "core::integer::u256"
10211
+ },
10212
+ {
10213
+ "name": "sale_price",
10214
+ "type": "core::integer::u256"
10215
+ }
10216
+ ],
10217
+ "outputs": [
10218
+ {
10219
+ "type": "(core::starknet::contract_address::ContractAddress, core::integer::u256)"
10220
+ }
10221
+ ],
10222
+ "state_mutability": "view"
10223
+ },
10224
+ {
10225
+ "type": "function",
10226
+ "name": "version",
10227
+ "inputs": [],
10228
+ "outputs": [
10229
+ {
10230
+ "type": "core::byte_array::ByteArray"
10231
+ }
10232
+ ],
10233
+ "state_mutability": "view"
8321
10234
  }
8322
10235
  ]
8323
10236
  },
10237
+ {
10238
+ "type": "impl",
10239
+ "name": "ERC721Impl",
10240
+ "interface_name": "openzeppelin_token::erc721::interface::IERC721"
10241
+ },
8324
10242
  {
8325
10243
  "type": "struct",
8326
- "name": "ip_sponsorship::types::License",
10244
+ "name": "core::array::Span::<core::felt252>",
8327
10245
  "members": [
8328
10246
  {
8329
- "name": "author",
8330
- "type": "core::starknet::contract_address::ContractAddress"
8331
- },
8332
- {
8333
- "name": "sponsor",
8334
- "type": "core::starknet::contract_address::ContractAddress"
8335
- },
8336
- {
8337
- "name": "nft_contract",
8338
- "type": "core::starknet::contract_address::ContractAddress"
8339
- },
8340
- {
8341
- "name": "token_id",
8342
- "type": "core::integer::u256"
8343
- },
8344
- {
8345
- "name": "amount_paid",
8346
- "type": "core::integer::u256"
8347
- },
8348
- {
8349
- "name": "expires_at",
8350
- "type": "core::integer::u64"
8351
- },
8352
- {
8353
- "name": "transferable",
8354
- "type": "core::bool"
8355
- },
8356
- {
8357
- "name": "license_terms_uri",
8358
- "type": "core::byte_array::ByteArray"
10247
+ "name": "snapshot",
10248
+ "type": "@core::array::Array::<core::felt252>"
8359
10249
  }
8360
10250
  ]
8361
10251
  },
8362
10252
  {
8363
10253
  "type": "interface",
8364
- "name": "ip_sponsorship::interface::IIPSponsorship",
10254
+ "name": "openzeppelin_token::erc721::interface::IERC721",
8365
10255
  "items": [
8366
10256
  {
8367
10257
  "type": "function",
8368
- "name": "create_offer",
10258
+ "name": "balance_of",
8369
10259
  "inputs": [
8370
10260
  {
8371
- "name": "nft_contract",
10261
+ "name": "account",
8372
10262
  "type": "core::starknet::contract_address::ContractAddress"
8373
- },
10263
+ }
10264
+ ],
10265
+ "outputs": [
8374
10266
  {
8375
- "name": "token_id",
8376
10267
  "type": "core::integer::u256"
8377
- },
10268
+ }
10269
+ ],
10270
+ "state_mutability": "view"
10271
+ },
10272
+ {
10273
+ "type": "function",
10274
+ "name": "owner_of",
10275
+ "inputs": [
8378
10276
  {
8379
- "name": "min_amount",
10277
+ "name": "token_id",
8380
10278
  "type": "core::integer::u256"
8381
- },
10279
+ }
10280
+ ],
10281
+ "outputs": [
8382
10282
  {
8383
- "name": "duration",
8384
- "type": "core::integer::u64"
8385
- },
10283
+ "type": "core::starknet::contract_address::ContractAddress"
10284
+ }
10285
+ ],
10286
+ "state_mutability": "view"
10287
+ },
10288
+ {
10289
+ "type": "function",
10290
+ "name": "safe_transfer_from",
10291
+ "inputs": [
8386
10292
  {
8387
- "name": "payment_token",
10293
+ "name": "from",
8388
10294
  "type": "core::starknet::contract_address::ContractAddress"
8389
10295
  },
8390
10296
  {
8391
- "name": "license_terms_uri",
8392
- "type": "core::byte_array::ByteArray"
10297
+ "name": "to",
10298
+ "type": "core::starknet::contract_address::ContractAddress"
8393
10299
  },
8394
10300
  {
8395
- "name": "transferable",
8396
- "type": "core::bool"
10301
+ "name": "token_id",
10302
+ "type": "core::integer::u256"
8397
10303
  },
8398
10304
  {
8399
- "name": "specific_sponsor",
8400
- "type": "core::option::Option::<core::starknet::contract_address::ContractAddress>"
8401
- }
8402
- ],
8403
- "outputs": [
8404
- {
8405
- "type": "core::integer::u256"
10305
+ "name": "data",
10306
+ "type": "core::array::Span::<core::felt252>"
8406
10307
  }
8407
10308
  ],
10309
+ "outputs": [],
8408
10310
  "state_mutability": "external"
8409
10311
  },
8410
10312
  {
8411
10313
  "type": "function",
8412
- "name": "set_offer_open",
10314
+ "name": "transfer_from",
8413
10315
  "inputs": [
8414
10316
  {
8415
- "name": "offer_id",
8416
- "type": "core::integer::u256"
10317
+ "name": "from",
10318
+ "type": "core::starknet::contract_address::ContractAddress"
8417
10319
  },
8418
10320
  {
8419
- "name": "open",
8420
- "type": "core::bool"
10321
+ "name": "to",
10322
+ "type": "core::starknet::contract_address::ContractAddress"
10323
+ },
10324
+ {
10325
+ "name": "token_id",
10326
+ "type": "core::integer::u256"
8421
10327
  }
8422
10328
  ],
8423
10329
  "outputs": [],
@@ -8425,14 +10331,14 @@ var IPSponsorshipABI = [
8425
10331
  },
8426
10332
  {
8427
10333
  "type": "function",
8428
- "name": "place_bid",
10334
+ "name": "approve",
8429
10335
  "inputs": [
8430
10336
  {
8431
- "name": "offer_id",
8432
- "type": "core::integer::u256"
10337
+ "name": "to",
10338
+ "type": "core::starknet::contract_address::ContractAddress"
8433
10339
  },
8434
10340
  {
8435
- "name": "amount",
10341
+ "name": "token_id",
8436
10342
  "type": "core::integer::u256"
8437
10343
  }
8438
10344
  ],
@@ -8441,11 +10347,15 @@ var IPSponsorshipABI = [
8441
10347
  },
8442
10348
  {
8443
10349
  "type": "function",
8444
- "name": "retract_bid",
10350
+ "name": "set_approval_for_all",
8445
10351
  "inputs": [
8446
10352
  {
8447
- "name": "offer_id",
8448
- "type": "core::integer::u256"
10353
+ "name": "operator",
10354
+ "type": "core::starknet::contract_address::ContractAddress"
10355
+ },
10356
+ {
10357
+ "name": "approved",
10358
+ "type": "core::bool"
8449
10359
  }
8450
10360
  ],
8451
10361
  "outputs": [],
@@ -8453,126 +10363,175 @@ var IPSponsorshipABI = [
8453
10363
  },
8454
10364
  {
8455
10365
  "type": "function",
8456
- "name": "accept_bid",
10366
+ "name": "get_approved",
8457
10367
  "inputs": [
8458
10368
  {
8459
- "name": "offer_id",
10369
+ "name": "token_id",
8460
10370
  "type": "core::integer::u256"
8461
- },
8462
- {
8463
- "name": "sponsor",
8464
- "type": "core::starknet::contract_address::ContractAddress"
8465
10371
  }
8466
10372
  ],
8467
10373
  "outputs": [
8468
10374
  {
8469
- "type": "core::integer::u256"
10375
+ "type": "core::starknet::contract_address::ContractAddress"
8470
10376
  }
8471
10377
  ],
8472
- "state_mutability": "external"
10378
+ "state_mutability": "view"
8473
10379
  },
8474
10380
  {
8475
10381
  "type": "function",
8476
- "name": "transfer_license",
10382
+ "name": "is_approved_for_all",
8477
10383
  "inputs": [
8478
10384
  {
8479
- "name": "license_id",
8480
- "type": "core::integer::u256"
10385
+ "name": "owner",
10386
+ "type": "core::starknet::contract_address::ContractAddress"
8481
10387
  },
8482
10388
  {
8483
- "name": "to",
10389
+ "name": "operator",
8484
10390
  "type": "core::starknet::contract_address::ContractAddress"
8485
10391
  }
8486
10392
  ],
8487
- "outputs": [],
8488
- "state_mutability": "external"
8489
- },
10393
+ "outputs": [
10394
+ {
10395
+ "type": "core::bool"
10396
+ }
10397
+ ],
10398
+ "state_mutability": "view"
10399
+ }
10400
+ ]
10401
+ },
10402
+ {
10403
+ "type": "impl",
10404
+ "name": "ERC721CamelOnly",
10405
+ "interface_name": "openzeppelin_token::erc721::interface::IERC721CamelOnly"
10406
+ },
10407
+ {
10408
+ "type": "interface",
10409
+ "name": "openzeppelin_token::erc721::interface::IERC721CamelOnly",
10410
+ "items": [
8490
10411
  {
8491
10412
  "type": "function",
8492
- "name": "get_offer",
10413
+ "name": "balanceOf",
8493
10414
  "inputs": [
8494
10415
  {
8495
- "name": "offer_id",
8496
- "type": "core::integer::u256"
10416
+ "name": "account",
10417
+ "type": "core::starknet::contract_address::ContractAddress"
8497
10418
  }
8498
10419
  ],
8499
10420
  "outputs": [
8500
10421
  {
8501
- "type": "ip_sponsorship::types::SponsorshipOffer"
10422
+ "type": "core::integer::u256"
8502
10423
  }
8503
10424
  ],
8504
10425
  "state_mutability": "view"
8505
10426
  },
8506
10427
  {
8507
10428
  "type": "function",
8508
- "name": "get_bid",
10429
+ "name": "ownerOf",
8509
10430
  "inputs": [
8510
10431
  {
8511
- "name": "offer_id",
10432
+ "name": "tokenId",
8512
10433
  "type": "core::integer::u256"
8513
- },
8514
- {
8515
- "name": "sponsor",
8516
- "type": "core::starknet::contract_address::ContractAddress"
8517
10434
  }
8518
10435
  ],
8519
10436
  "outputs": [
8520
10437
  {
8521
- "type": "core::integer::u256"
10438
+ "type": "core::starknet::contract_address::ContractAddress"
8522
10439
  }
8523
10440
  ],
8524
10441
  "state_mutability": "view"
8525
10442
  },
8526
10443
  {
8527
10444
  "type": "function",
8528
- "name": "get_license",
10445
+ "name": "safeTransferFrom",
8529
10446
  "inputs": [
8530
10447
  {
8531
- "name": "license_id",
10448
+ "name": "from",
10449
+ "type": "core::starknet::contract_address::ContractAddress"
10450
+ },
10451
+ {
10452
+ "name": "to",
10453
+ "type": "core::starknet::contract_address::ContractAddress"
10454
+ },
10455
+ {
10456
+ "name": "tokenId",
8532
10457
  "type": "core::integer::u256"
8533
- }
8534
- ],
8535
- "outputs": [
10458
+ },
8536
10459
  {
8537
- "type": "ip_sponsorship::types::License"
10460
+ "name": "data",
10461
+ "type": "core::array::Span::<core::felt252>"
8538
10462
  }
8539
10463
  ],
8540
- "state_mutability": "view"
10464
+ "outputs": [],
10465
+ "state_mutability": "external"
8541
10466
  },
8542
10467
  {
8543
10468
  "type": "function",
8544
- "name": "is_license_valid",
10469
+ "name": "transferFrom",
8545
10470
  "inputs": [
8546
10471
  {
8547
- "name": "license_id",
10472
+ "name": "from",
10473
+ "type": "core::starknet::contract_address::ContractAddress"
10474
+ },
10475
+ {
10476
+ "name": "to",
10477
+ "type": "core::starknet::contract_address::ContractAddress"
10478
+ },
10479
+ {
10480
+ "name": "tokenId",
8548
10481
  "type": "core::integer::u256"
8549
10482
  }
8550
10483
  ],
8551
- "outputs": [
10484
+ "outputs": [],
10485
+ "state_mutability": "external"
10486
+ },
10487
+ {
10488
+ "type": "function",
10489
+ "name": "setApprovalForAll",
10490
+ "inputs": [
10491
+ {
10492
+ "name": "operator",
10493
+ "type": "core::starknet::contract_address::ContractAddress"
10494
+ },
8552
10495
  {
10496
+ "name": "approved",
8553
10497
  "type": "core::bool"
8554
10498
  }
8555
10499
  ],
8556
- "state_mutability": "view"
10500
+ "outputs": [],
10501
+ "state_mutability": "external"
8557
10502
  },
8558
10503
  {
8559
10504
  "type": "function",
8560
- "name": "get_last_offer_id",
8561
- "inputs": [],
8562
- "outputs": [
10505
+ "name": "getApproved",
10506
+ "inputs": [
8563
10507
  {
10508
+ "name": "tokenId",
8564
10509
  "type": "core::integer::u256"
8565
10510
  }
8566
10511
  ],
10512
+ "outputs": [
10513
+ {
10514
+ "type": "core::starknet::contract_address::ContractAddress"
10515
+ }
10516
+ ],
8567
10517
  "state_mutability": "view"
8568
10518
  },
8569
10519
  {
8570
10520
  "type": "function",
8571
- "name": "get_last_license_id",
8572
- "inputs": [],
10521
+ "name": "isApprovedForAll",
10522
+ "inputs": [
10523
+ {
10524
+ "name": "owner",
10525
+ "type": "core::starknet::contract_address::ContractAddress"
10526
+ },
10527
+ {
10528
+ "name": "operator",
10529
+ "type": "core::starknet::contract_address::ContractAddress"
10530
+ }
10531
+ ],
8573
10532
  "outputs": [
8574
10533
  {
8575
- "type": "core::integer::u256"
10534
+ "type": "core::bool"
8576
10535
  }
8577
10536
  ],
8578
10537
  "state_mutability": "view"
@@ -8609,174 +10568,138 @@ var IPSponsorshipABI = [
8609
10568
  {
8610
10569
  "type": "constructor",
8611
10570
  "name": "constructor",
8612
- "inputs": []
8613
- },
8614
- {
8615
- "type": "event",
8616
- "name": "openzeppelin_introspection::src5::SRC5Component::Event",
8617
- "kind": "enum",
8618
- "variants": []
10571
+ "inputs": [
10572
+ {
10573
+ "name": "name",
10574
+ "type": "core::byte_array::ByteArray"
10575
+ },
10576
+ {
10577
+ "name": "symbol",
10578
+ "type": "core::byte_array::ByteArray"
10579
+ }
10580
+ ]
8619
10581
  },
8620
10582
  {
8621
10583
  "type": "event",
8622
- "name": "ip_sponsorship::IPSponsorship::IPSponsorship::OfferCreated",
10584
+ "name": "openzeppelin_token::erc721::erc721::ERC721Component::Transfer",
8623
10585
  "kind": "struct",
8624
10586
  "members": [
8625
10587
  {
8626
- "name": "offer_id",
8627
- "type": "core::integer::u256",
8628
- "kind": "key"
8629
- },
8630
- {
8631
- "name": "author",
10588
+ "name": "from",
8632
10589
  "type": "core::starknet::contract_address::ContractAddress",
8633
10590
  "kind": "key"
8634
10591
  },
8635
10592
  {
8636
- "name": "nft_contract",
10593
+ "name": "to",
8637
10594
  "type": "core::starknet::contract_address::ContractAddress",
8638
10595
  "kind": "key"
8639
10596
  },
8640
10597
  {
8641
10598
  "name": "token_id",
8642
10599
  "type": "core::integer::u256",
8643
- "kind": "data"
8644
- },
8645
- {
8646
- "name": "min_amount",
8647
- "type": "core::integer::u256",
8648
- "kind": "data"
8649
- },
8650
- {
8651
- "name": "duration",
8652
- "type": "core::integer::u64",
8653
- "kind": "data"
8654
- },
8655
- {
8656
- "name": "payment_token",
8657
- "type": "core::starknet::contract_address::ContractAddress",
8658
- "kind": "data"
8659
- },
8660
- {
8661
- "name": "license_terms_uri",
8662
- "type": "core::byte_array::ByteArray",
8663
- "kind": "data"
8664
- },
8665
- {
8666
- "name": "transferable",
8667
- "type": "core::bool",
8668
- "kind": "data"
8669
- },
8670
- {
8671
- "name": "specific_sponsor",
8672
- "type": "core::option::Option::<core::starknet::contract_address::ContractAddress>",
8673
- "kind": "data"
8674
- },
8675
- {
8676
- "name": "created_at",
8677
- "type": "core::integer::u64",
8678
- "kind": "data"
10600
+ "kind": "key"
8679
10601
  }
8680
10602
  ]
8681
10603
  },
8682
10604
  {
8683
10605
  "type": "event",
8684
- "name": "ip_sponsorship::IPSponsorship::IPSponsorship::OfferStatusUpdated",
10606
+ "name": "openzeppelin_token::erc721::erc721::ERC721Component::Approval",
8685
10607
  "kind": "struct",
8686
10608
  "members": [
8687
10609
  {
8688
- "name": "offer_id",
8689
- "type": "core::integer::u256",
10610
+ "name": "owner",
10611
+ "type": "core::starknet::contract_address::ContractAddress",
8690
10612
  "kind": "key"
8691
10613
  },
8692
10614
  {
8693
- "name": "open",
8694
- "type": "core::bool",
8695
- "kind": "data"
10615
+ "name": "approved",
10616
+ "type": "core::starknet::contract_address::ContractAddress",
10617
+ "kind": "key"
8696
10618
  },
8697
10619
  {
8698
- "name": "updated_at",
8699
- "type": "core::integer::u64",
8700
- "kind": "data"
10620
+ "name": "token_id",
10621
+ "type": "core::integer::u256",
10622
+ "kind": "key"
8701
10623
  }
8702
10624
  ]
8703
10625
  },
8704
10626
  {
8705
10627
  "type": "event",
8706
- "name": "ip_sponsorship::IPSponsorship::IPSponsorship::BidPlaced",
10628
+ "name": "openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll",
8707
10629
  "kind": "struct",
8708
10630
  "members": [
8709
10631
  {
8710
- "name": "offer_id",
8711
- "type": "core::integer::u256",
10632
+ "name": "owner",
10633
+ "type": "core::starknet::contract_address::ContractAddress",
8712
10634
  "kind": "key"
8713
10635
  },
8714
10636
  {
8715
- "name": "sponsor",
10637
+ "name": "operator",
8716
10638
  "type": "core::starknet::contract_address::ContractAddress",
8717
10639
  "kind": "key"
8718
10640
  },
8719
10641
  {
8720
- "name": "amount",
8721
- "type": "core::integer::u256",
8722
- "kind": "data"
8723
- },
8724
- {
8725
- "name": "bid_at",
8726
- "type": "core::integer::u64",
10642
+ "name": "approved",
10643
+ "type": "core::bool",
8727
10644
  "kind": "data"
8728
10645
  }
8729
10646
  ]
8730
10647
  },
8731
10648
  {
8732
10649
  "type": "event",
8733
- "name": "ip_sponsorship::IPSponsorship::IPSponsorship::BidRetracted",
8734
- "kind": "struct",
8735
- "members": [
10650
+ "name": "openzeppelin_token::erc721::erc721::ERC721Component::Event",
10651
+ "kind": "enum",
10652
+ "variants": [
8736
10653
  {
8737
- "name": "offer_id",
8738
- "type": "core::integer::u256",
8739
- "kind": "key"
10654
+ "name": "Transfer",
10655
+ "type": "openzeppelin_token::erc721::erc721::ERC721Component::Transfer",
10656
+ "kind": "nested"
8740
10657
  },
8741
10658
  {
8742
- "name": "sponsor",
8743
- "type": "core::starknet::contract_address::ContractAddress",
8744
- "kind": "key"
10659
+ "name": "Approval",
10660
+ "type": "openzeppelin_token::erc721::erc721::ERC721Component::Approval",
10661
+ "kind": "nested"
8745
10662
  },
8746
10663
  {
8747
- "name": "retracted_at",
8748
- "type": "core::integer::u64",
8749
- "kind": "data"
10664
+ "name": "ApprovalForAll",
10665
+ "type": "openzeppelin_token::erc721::erc721::ERC721Component::ApprovalForAll",
10666
+ "kind": "nested"
8750
10667
  }
8751
10668
  ]
8752
10669
  },
8753
10670
  {
8754
10671
  "type": "event",
8755
- "name": "ip_sponsorship::IPSponsorship::IPSponsorship::SponsorshipAccepted",
10672
+ "name": "openzeppelin_introspection::src5::SRC5Component::Event",
10673
+ "kind": "enum",
10674
+ "variants": []
10675
+ },
10676
+ {
10677
+ "type": "event",
10678
+ "name": "ip_sponsorship::IPSponsorshipLicense::IPSponsorshipLicense::LicenseMinted",
8756
10679
  "kind": "struct",
8757
10680
  "members": [
8758
10681
  {
8759
- "name": "offer_id",
10682
+ "name": "token_id",
8760
10683
  "type": "core::integer::u256",
8761
10684
  "kind": "key"
8762
10685
  },
8763
10686
  {
8764
- "name": "license_id",
8765
- "type": "core::integer::u256",
10687
+ "name": "recipient",
10688
+ "type": "core::starknet::contract_address::ContractAddress",
8766
10689
  "kind": "key"
8767
10690
  },
8768
10691
  {
8769
- "name": "sponsor",
10692
+ "name": "author",
8770
10693
  "type": "core::starknet::contract_address::ContractAddress",
8771
10694
  "kind": "key"
8772
10695
  },
8773
10696
  {
8774
- "name": "author",
10697
+ "name": "asset_contract",
8775
10698
  "type": "core::starknet::contract_address::ContractAddress",
8776
10699
  "kind": "data"
8777
10700
  },
8778
10701
  {
8779
- "name": "amount",
10702
+ "name": "asset_token_id",
8780
10703
  "type": "core::integer::u256",
8781
10704
  "kind": "data"
8782
10705
  },
@@ -8784,31 +10707,24 @@ var IPSponsorshipABI = [
8784
10707
  "name": "expires_at",
8785
10708
  "type": "core::integer::u64",
8786
10709
  "kind": "data"
8787
- }
8788
- ]
8789
- },
8790
- {
8791
- "type": "event",
8792
- "name": "ip_sponsorship::IPSponsorship::IPSponsorship::LicenseTransferred",
8793
- "kind": "struct",
8794
- "members": [
10710
+ },
8795
10711
  {
8796
- "name": "license_id",
8797
- "type": "core::integer::u256",
8798
- "kind": "key"
10712
+ "name": "transferable",
10713
+ "type": "core::bool",
10714
+ "kind": "data"
8799
10715
  },
8800
10716
  {
8801
- "name": "from",
8802
- "type": "core::starknet::contract_address::ContractAddress",
8803
- "kind": "key"
10717
+ "name": "royalty_bps",
10718
+ "type": "core::integer::u256",
10719
+ "kind": "data"
8804
10720
  },
8805
10721
  {
8806
- "name": "to",
8807
- "type": "core::starknet::contract_address::ContractAddress",
8808
- "kind": "key"
10722
+ "name": "license_terms_uri",
10723
+ "type": "core::byte_array::ByteArray",
10724
+ "kind": "data"
8809
10725
  },
8810
10726
  {
8811
- "name": "transferred_at",
10727
+ "name": "minted_at",
8812
10728
  "type": "core::integer::u64",
8813
10729
  "kind": "data"
8814
10730
  }
@@ -8816,42 +10732,22 @@ var IPSponsorshipABI = [
8816
10732
  },
8817
10733
  {
8818
10734
  "type": "event",
8819
- "name": "ip_sponsorship::IPSponsorship::IPSponsorship::Event",
10735
+ "name": "ip_sponsorship::IPSponsorshipLicense::IPSponsorshipLicense::Event",
8820
10736
  "kind": "enum",
8821
10737
  "variants": [
8822
10738
  {
8823
- "name": "SRC5Event",
8824
- "type": "openzeppelin_introspection::src5::SRC5Component::Event",
10739
+ "name": "ERC721Event",
10740
+ "type": "openzeppelin_token::erc721::erc721::ERC721Component::Event",
8825
10741
  "kind": "flat"
8826
10742
  },
8827
10743
  {
8828
- "name": "OfferCreated",
8829
- "type": "ip_sponsorship::IPSponsorship::IPSponsorship::OfferCreated",
8830
- "kind": "nested"
8831
- },
8832
- {
8833
- "name": "OfferStatusUpdated",
8834
- "type": "ip_sponsorship::IPSponsorship::IPSponsorship::OfferStatusUpdated",
8835
- "kind": "nested"
8836
- },
8837
- {
8838
- "name": "BidPlaced",
8839
- "type": "ip_sponsorship::IPSponsorship::IPSponsorship::BidPlaced",
8840
- "kind": "nested"
8841
- },
8842
- {
8843
- "name": "BidRetracted",
8844
- "type": "ip_sponsorship::IPSponsorship::IPSponsorship::BidRetracted",
8845
- "kind": "nested"
8846
- },
8847
- {
8848
- "name": "SponsorshipAccepted",
8849
- "type": "ip_sponsorship::IPSponsorship::IPSponsorship::SponsorshipAccepted",
8850
- "kind": "nested"
10744
+ "name": "SRC5Event",
10745
+ "type": "openzeppelin_introspection::src5::SRC5Component::Event",
10746
+ "kind": "flat"
8851
10747
  },
8852
10748
  {
8853
- "name": "LicenseTransferred",
8854
- "type": "ip_sponsorship::IPSponsorship::IPSponsorship::LicenseTransferred",
10749
+ "name": "LicenseMinted",
10750
+ "type": "ip_sponsorship::IPSponsorshipLicense::IPSponsorshipLicense::LicenseMinted",
8855
10751
  "kind": "nested"
8856
10752
  }
8857
10753
  ]
@@ -9739,115 +11635,27 @@ function toSignatureArray(sig) {
9739
11635
  return [s.r.toString(), s.s.toString()];
9740
11636
  }
9741
11637
  function getChainId(config) {
9742
- if (config.chain !== "STARKNET") {
9743
- throw new Error(`SNIP-12 signing is Starknet-only; got chain "${config.chain}"`);
9744
- }
9745
- return constants.StarknetChainId.SN_MAIN;
9746
- }
9747
- function resolveToken(currency) {
9748
- const token = SUPPORTED_TOKENS.find(
9749
- (t) => t.symbol === currency.toUpperCase() || t.address.toLowerCase() === currency.toLowerCase()
9750
- );
9751
- if (!token) throw new MedialaneError(`Unsupported currency: ${currency}`, "INVALID_PARAMS");
9752
- return token;
9753
- }
9754
- var _providerCache = /* @__PURE__ */ new WeakMap();
9755
- function getProvider(config) {
9756
- let p = _providerCache.get(config);
9757
- if (!p) {
9758
- const urls = Array.from(/* @__PURE__ */ new Set([config.rpcUrl, ...PUBLIC_RPC_FALLBACKS]));
9759
- p = new RpcProvider({ nodeUrl: urls[0], baseFetch: createFailoverFetch(urls) });
9760
- _providerCache.set(config, p);
9761
- }
9762
- return p;
9763
- }
9764
-
9765
- // src/starknet/marketplace/build.ts
9766
- function contractFor(cfg) {
9767
- return new Contract(IPMarketplaceABI, cfg.marketplaceContract, getProvider(cfg));
9768
- }
9769
- function buildListingOrder(i, cfg) {
9770
- const orderParams = {
9771
- offerer: i.offerer,
9772
- marketplace: cfg.marketplaceContract,
9773
- offer: { item_type: "ERC721", token: i.nftContract, identifier_or_criteria: i.tokenId, amount: "1" },
9774
- consideration: {
9775
- item_type: "ERC20",
9776
- token: i.paymentTokenAddress,
9777
- identifier_or_criteria: "0",
9778
- amount: i.priceWei,
9779
- recipient: i.offerer
9780
- },
9781
- royalty_max_bps: i.royaltyMaxBps,
9782
- start_time: String(i.startTime),
9783
- end_time: String(i.endTime),
9784
- salt: i.salt,
9785
- counter: i.counter
9786
- };
9787
- const typedData = stringifyBigInts(buildOrderTypedData(orderParams, getChainId(cfg)));
9788
- return { orderParams, typedData };
9789
- }
9790
- function buildOfferOrder(i, cfg) {
9791
- const orderParams = {
9792
- offerer: i.offerer,
9793
- marketplace: cfg.marketplaceContract,
9794
- offer: { item_type: "ERC20", token: i.paymentTokenAddress, identifier_or_criteria: "0", amount: i.priceWei },
9795
- consideration: {
9796
- item_type: "ERC721",
9797
- token: i.nftContract,
9798
- identifier_or_criteria: i.tokenId,
9799
- amount: "1",
9800
- recipient: i.offerer
9801
- },
9802
- royalty_max_bps: i.royaltyMaxBps,
9803
- start_time: String(i.startTime),
9804
- end_time: String(i.endTime),
9805
- salt: i.salt,
9806
- counter: i.counter
9807
- };
9808
- const typedData = stringifyBigInts(buildOrderTypedData(orderParams, getChainId(cfg)));
9809
- return { orderParams, typedData };
9810
- }
9811
- function registerPayload(orderParams, signature) {
9812
- return stringifyBigInts({
9813
- parameters: {
9814
- ...orderParams,
9815
- offer: { ...orderParams.offer, item_type: shortString.encodeShortString(orderParams.offer.item_type) },
9816
- consideration: {
9817
- ...orderParams.consideration,
9818
- item_type: shortString.encodeShortString(orderParams.consideration.item_type)
9819
- }
9820
- },
9821
- signature
9822
- });
9823
- }
9824
- function buildRegisterCalls(a, cfg) {
9825
- const registerCall = contractFor(cfg).populate("register_order", [registerPayload(a.orderParams, a.signature)]);
9826
- return a.approvalNeeded ? [a.approve, registerCall] : [registerCall];
11638
+ if (config.chain !== "STARKNET") {
11639
+ throw new Error(`SNIP-12 signing is Starknet-only; got chain "${config.chain}"`);
11640
+ }
11641
+ return constants.StarknetChainId.SN_MAIN;
9827
11642
  }
9828
- function buildFulfillCalls(a, cfg) {
9829
- const u = cairo.uint256(a.totalPrice);
9830
- const approve = {
9831
- contractAddress: a.paymentToken,
9832
- entrypoint: "approve",
9833
- calldata: [cfg.marketplaceContract, u.low.toString(), u.high.toString()]
9834
- };
9835
- const fulfill = contractFor(cfg).populate("fulfill_order", [a.orderHash]);
9836
- const fee = buildFeeCall(
9837
- { surface: "marketplace", token: a.paymentToken, grossAmount: BigInt(a.totalPrice) },
9838
- cfg.feeConfig
11643
+ function resolveToken(currency) {
11644
+ const token = SUPPORTED_TOKENS.find(
11645
+ (t) => t.symbol === currency.toUpperCase() || t.address.toLowerCase() === currency.toLowerCase()
9839
11646
  );
9840
- return fee ? [approve, fulfill, fee] : [approve, fulfill];
9841
- }
9842
- function buildCancelCalls(a, cfg) {
9843
- const cancelRequest = stringifyBigInts({
9844
- cancelation: { order_hash: a.orderHash, offerer: a.offerer },
9845
- signature: a.signature
9846
- });
9847
- return [contractFor(cfg).populate("cancel_order", [cancelRequest])];
11647
+ if (!token) throw new MedialaneError(`Unsupported currency: ${currency}`, "INVALID_PARAMS");
11648
+ return token;
9848
11649
  }
9849
- function buildCancelTypedData(orderHash, offerer, cfg) {
9850
- return stringifyBigInts(buildCancellationTypedData({ order_hash: orderHash, offerer }, getChainId(cfg)));
11650
+ var _providerCache = /* @__PURE__ */ new WeakMap();
11651
+ function getProvider(config) {
11652
+ let p = _providerCache.get(config);
11653
+ if (!p) {
11654
+ const urls = Array.from(/* @__PURE__ */ new Set([config.rpcUrl, ...PUBLIC_RPC_FALLBACKS]));
11655
+ p = new RpcProvider({ nodeUrl: urls[0], baseFetch: createFailoverFetch(urls) });
11656
+ _providerCache.set(config, p);
11657
+ }
11658
+ return p;
9851
11659
  }
9852
11660
 
9853
11661
  // src/starknet/marketplace/orders.ts
@@ -9874,22 +11682,46 @@ async function createListing(account, params, config) {
9874
11682
  const endTime = now + durationSeconds;
9875
11683
  const counter = (await contract.get_counter(account.address)).toString();
9876
11684
  const royaltyMaxBps = await resolveRoyaltyMaxBps(provider, nftContract, tokenId, params.royaltyMaxBps);
9877
- const { orderParams, typedData } = buildListingOrder(
9878
- {
9879
- offerer: account.address,
9880
- nftContract,
9881
- tokenId,
9882
- priceWei,
9883
- paymentTokenAddress: token.address,
9884
- royaltyMaxBps,
9885
- startTime,
9886
- endTime,
9887
- salt: generateSalt(),
9888
- counter
11685
+ const orderParams = {
11686
+ offerer: account.address,
11687
+ marketplace: config.marketplaceContract,
11688
+ offer: {
11689
+ item_type: "ERC721",
11690
+ token: nftContract,
11691
+ identifier_or_criteria: tokenId,
11692
+ amount: "1"
9889
11693
  },
9890
- config
9891
- );
9892
- const signatureArray = toSignatureArray(await account.signMessage(typedData));
11694
+ consideration: {
11695
+ item_type: "ERC20",
11696
+ token: token.address,
11697
+ identifier_or_criteria: "0",
11698
+ amount: priceWei,
11699
+ recipient: account.address
11700
+ },
11701
+ royalty_max_bps: royaltyMaxBps,
11702
+ start_time: startTime.toString(),
11703
+ end_time: endTime.toString(),
11704
+ salt: generateSalt(),
11705
+ counter
11706
+ };
11707
+ const chainId = getChainId(config);
11708
+ const typedData = stringifyBigInts(buildOrderTypedData(orderParams, chainId));
11709
+ const signature = await account.signMessage(typedData);
11710
+ const signatureArray = toSignatureArray(signature);
11711
+ const registerPayload = stringifyBigInts({
11712
+ parameters: {
11713
+ ...orderParams,
11714
+ offer: {
11715
+ ...orderParams.offer,
11716
+ item_type: shortString.encodeShortString(orderParams.offer.item_type)
11717
+ },
11718
+ consideration: {
11719
+ ...orderParams.consideration,
11720
+ item_type: shortString.encodeShortString(orderParams.consideration.item_type)
11721
+ }
11722
+ },
11723
+ signature: signatureArray
11724
+ });
9893
11725
  const tokenIdUint256 = cairo.uint256(tokenId);
9894
11726
  let isAlreadyApproved = false;
9895
11727
  try {
@@ -9901,19 +11733,19 @@ async function createListing(account, params, config) {
9901
11733
  isAlreadyApproved = BigInt(result[0]).toString() === BigInt(config.marketplaceContract).toString();
9902
11734
  } catch {
9903
11735
  }
9904
- const approve = {
9905
- contractAddress: nftContract,
9906
- entrypoint: "approve",
9907
- calldata: [
9908
- config.marketplaceContract,
9909
- tokenIdUint256.low.toString(),
9910
- tokenIdUint256.high.toString()
9911
- ]
9912
- };
9913
- const calls = buildRegisterCalls(
9914
- { orderParams, signature: signatureArray, approvalNeeded: !isAlreadyApproved, approve },
9915
- config
9916
- );
11736
+ const registerCall = contract.populate("register_order", [registerPayload]);
11737
+ const calls = isAlreadyApproved ? [registerCall] : [
11738
+ {
11739
+ contractAddress: nftContract,
11740
+ entrypoint: "approve",
11741
+ calldata: [
11742
+ config.marketplaceContract,
11743
+ tokenIdUint256.low.toString(),
11744
+ tokenIdUint256.high.toString()
11745
+ ]
11746
+ },
11747
+ registerCall
11748
+ ];
9917
11749
  try {
9918
11750
  const tx = await account.execute(calls);
9919
11751
  await provider.waitForTransaction(tx.transaction_hash);
@@ -9932,22 +11764,46 @@ async function makeOffer(account, params, config) {
9932
11764
  const endTime = now + durationSeconds;
9933
11765
  const counter = (await contract.get_counter(account.address)).toString();
9934
11766
  const royaltyMaxBps = await resolveRoyaltyMaxBps(provider, nftContract, tokenId, params.royaltyMaxBps);
9935
- const { orderParams, typedData } = buildOfferOrder(
9936
- {
9937
- offerer: account.address,
9938
- nftContract,
9939
- tokenId,
9940
- priceWei,
9941
- paymentTokenAddress: token.address,
9942
- royaltyMaxBps,
9943
- startTime,
9944
- endTime,
9945
- salt: generateSalt(),
9946
- counter
11767
+ const orderParams = {
11768
+ offerer: account.address,
11769
+ marketplace: config.marketplaceContract,
11770
+ offer: {
11771
+ item_type: "ERC20",
11772
+ token: token.address,
11773
+ identifier_or_criteria: "0",
11774
+ amount: priceWei
9947
11775
  },
9948
- config
9949
- );
9950
- const signatureArray = toSignatureArray(await account.signMessage(typedData));
11776
+ consideration: {
11777
+ item_type: "ERC721",
11778
+ token: nftContract,
11779
+ identifier_or_criteria: tokenId,
11780
+ amount: "1",
11781
+ recipient: account.address
11782
+ },
11783
+ royalty_max_bps: royaltyMaxBps,
11784
+ start_time: startTime.toString(),
11785
+ end_time: endTime.toString(),
11786
+ salt: generateSalt(),
11787
+ counter
11788
+ };
11789
+ const chainId = getChainId(config);
11790
+ const typedData = stringifyBigInts(buildOrderTypedData(orderParams, chainId));
11791
+ const signature = await account.signMessage(typedData);
11792
+ const signatureArray = toSignatureArray(signature);
11793
+ const registerPayload = stringifyBigInts({
11794
+ parameters: {
11795
+ ...orderParams,
11796
+ offer: {
11797
+ ...orderParams.offer,
11798
+ item_type: shortString.encodeShortString(orderParams.offer.item_type)
11799
+ },
11800
+ consideration: {
11801
+ ...orderParams.consideration,
11802
+ item_type: shortString.encodeShortString(orderParams.consideration.item_type)
11803
+ }
11804
+ },
11805
+ signature: signatureArray
11806
+ });
9951
11807
  const amountUint256 = cairo.uint256(priceWei);
9952
11808
  const approveCall = {
9953
11809
  contractAddress: token.address,
@@ -9958,12 +11814,9 @@ async function makeOffer(account, params, config) {
9958
11814
  amountUint256.high.toString()
9959
11815
  ]
9960
11816
  };
9961
- const calls = buildRegisterCalls(
9962
- { orderParams, signature: signatureArray, approvalNeeded: true, approve: approveCall },
9963
- config
9964
- );
11817
+ const registerCall = contract.populate("register_order", [registerPayload]);
9965
11818
  try {
9966
- const tx = await account.execute(calls);
11819
+ const tx = await account.execute([approveCall, registerCall]);
9967
11820
  await provider.waitForTransaction(tx.transaction_hash);
9968
11821
  return { txHash: tx.transaction_hash };
9969
11822
  } catch (err) {
@@ -9972,8 +11825,23 @@ async function makeOffer(account, params, config) {
9972
11825
  }
9973
11826
  async function fulfillOrder(account, params, config) {
9974
11827
  const { orderHash, paymentToken, totalPrice } = params;
9975
- const { provider } = makeContract(config);
9976
- const calls = buildFulfillCalls({ orderHash, paymentToken, totalPrice }, config);
11828
+ const { contract, provider } = makeContract(config);
11829
+ const totalPriceU256 = cairo.uint256(totalPrice);
11830
+ const approveCall = {
11831
+ contractAddress: paymentToken,
11832
+ entrypoint: "approve",
11833
+ calldata: [
11834
+ config.marketplaceContract,
11835
+ totalPriceU256.low.toString(),
11836
+ totalPriceU256.high.toString()
11837
+ ]
11838
+ };
11839
+ const fulfillCall = contract.populate("fulfill_order", [orderHash]);
11840
+ const feeCall = buildFeeCall(
11841
+ { surface: "marketplace", token: paymentToken, grossAmount: BigInt(totalPrice) },
11842
+ config.feeConfig
11843
+ );
11844
+ const calls = feeCall ? [approveCall, fulfillCall, feeCall] : [approveCall, fulfillCall];
9977
11845
  try {
9978
11846
  const tx = await account.execute(calls);
9979
11847
  await provider.waitForTransaction(tx.transaction_hash);
@@ -9984,12 +11852,24 @@ async function fulfillOrder(account, params, config) {
9984
11852
  }
9985
11853
  async function cancelOrder(account, params, config) {
9986
11854
  const { orderHash } = params;
9987
- const { provider } = makeContract(config);
9988
- const typedData = buildCancelTypedData(orderHash, account.address, config);
9989
- const signatureArray = toSignatureArray(await account.signMessage(typedData));
9990
- const calls = buildCancelCalls({ orderHash, offerer: account.address, signature: signatureArray }, config);
11855
+ const { contract, provider } = makeContract(config);
11856
+ const chainId = getChainId(config);
11857
+ const cancelParams = {
11858
+ order_hash: orderHash,
11859
+ offerer: account.address
11860
+ };
11861
+ const typedData = stringifyBigInts(
11862
+ buildCancellationTypedData(cancelParams, chainId)
11863
+ );
11864
+ const signature = await account.signMessage(typedData);
11865
+ const signatureArray = toSignatureArray(signature);
11866
+ const cancelRequest = stringifyBigInts({
11867
+ cancelation: cancelParams,
11868
+ signature: signatureArray
11869
+ });
11870
+ const call = contract.populate("cancel_order", [cancelRequest]);
9991
11871
  try {
9992
- const tx = await account.execute(calls);
11872
+ const tx = await account.execute(call);
9993
11873
  await provider.waitForTransaction(tx.transaction_hash);
9994
11874
  return { txHash: tx.transaction_hash };
9995
11875
  } catch (err) {
@@ -10136,100 +12016,6 @@ var MarketplaceModule = class {
10136
12016
  return buildCancellationTypedData(params, chainId);
10137
12017
  }
10138
12018
  };
10139
- function contractFor2(cfg) {
10140
- return new Contract(Medialane1155ABI, cfg.marketplace1155Contract, getProvider(cfg));
10141
- }
10142
- function buildListing1155Order(i, cfg) {
10143
- const orderParams = {
10144
- offerer: i.offerer,
10145
- marketplace: cfg.marketplace1155Contract,
10146
- offer: { item_type: "ERC1155", token: i.nftContract, identifier_or_criteria: i.tokenId, amount: i.quantity },
10147
- consideration: {
10148
- item_type: "ERC20",
10149
- token: i.paymentTokenAddress,
10150
- identifier_or_criteria: "0",
10151
- amount: i.priceWeiPerUnit,
10152
- recipient: i.offerer
10153
- },
10154
- royalty_max_bps: i.royaltyMaxBps,
10155
- start_time: String(i.startTime),
10156
- end_time: String(i.endTime),
10157
- salt: i.salt,
10158
- counter: i.counter
10159
- };
10160
- const typedData = stringifyBigInts(
10161
- build1155OrderTypedData(orderParams, getChainId(cfg))
10162
- );
10163
- return { orderParams, typedData };
10164
- }
10165
- function buildOffer1155Order(i, cfg) {
10166
- const orderParams = {
10167
- offerer: i.offerer,
10168
- marketplace: cfg.marketplace1155Contract,
10169
- offer: { item_type: "ERC20", token: i.paymentTokenAddress, identifier_or_criteria: "0", amount: i.priceWeiPerUnit },
10170
- consideration: {
10171
- item_type: "ERC1155",
10172
- token: i.nftContract,
10173
- identifier_or_criteria: i.tokenId,
10174
- amount: i.quantity,
10175
- recipient: i.offerer
10176
- },
10177
- royalty_max_bps: i.royaltyMaxBps,
10178
- start_time: String(i.startTime),
10179
- end_time: String(i.endTime),
10180
- salt: i.salt,
10181
- counter: i.counter
10182
- };
10183
- const typedData = stringifyBigInts(
10184
- build1155OrderTypedData(orderParams, getChainId(cfg))
10185
- );
10186
- return { orderParams, typedData };
10187
- }
10188
- function registerPayload2(orderParams, signature) {
10189
- return stringifyBigInts({
10190
- parameters: {
10191
- ...orderParams,
10192
- offer: { ...orderParams.offer, item_type: shortString.encodeShortString(orderParams.offer.item_type) },
10193
- consideration: {
10194
- ...orderParams.consideration,
10195
- item_type: shortString.encodeShortString(orderParams.consideration.item_type)
10196
- }
10197
- },
10198
- signature
10199
- });
10200
- }
10201
- function buildRegister1155Calls(a, cfg) {
10202
- const registerCall = contractFor2(cfg).populate("register_order", [registerPayload2(a.orderParams, a.signature)]);
10203
- return a.approvalNeeded ? [a.approve, registerCall] : [registerCall];
10204
- }
10205
- function buildFulfill1155Calls(a, cfg) {
10206
- const u = cairo.uint256(a.totalPrice);
10207
- const approve = {
10208
- contractAddress: a.paymentToken,
10209
- entrypoint: "approve",
10210
- calldata: [cfg.marketplace1155Contract, u.low.toString(), u.high.toString()]
10211
- };
10212
- const fulfill = contractFor2(cfg).populate("fulfill_order", [a.orderHash, a.quantity]);
10213
- const fee = buildFeeCall(
10214
- { surface: "marketplace", token: a.paymentToken, grossAmount: BigInt(a.totalPrice) },
10215
- cfg.feeConfig
10216
- );
10217
- return fee ? [approve, fulfill, fee] : [approve, fulfill];
10218
- }
10219
- function buildCancel1155Calls(a, cfg) {
10220
- const cancelPayload = stringifyBigInts({
10221
- cancelation: { order_hash: a.orderHash, offerer: a.offerer },
10222
- signature: a.signature
10223
- });
10224
- return [contractFor2(cfg).populate("cancel_order", [cancelPayload])];
10225
- }
10226
- function buildCancel1155TypedData(orderHash, offerer, cfg) {
10227
- return stringifyBigInts(
10228
- build1155CancellationTypedData({ order_hash: orderHash, offerer }, getChainId(cfg))
10229
- );
10230
- }
10231
-
10232
- // src/starknet/marketplace1155/orders.ts
10233
12019
  var _contractCache2 = /* @__PURE__ */ new WeakMap();
10234
12020
  function getContract(config) {
10235
12021
  let c = _contractCache2.get(config);
@@ -10258,27 +12044,53 @@ async function createListing1155(account, params, config) {
10258
12044
  const token = resolveToken(currency);
10259
12045
  const priceWei = parseAmount(pricePerUnit, token.decimals);
10260
12046
  const now = Math.floor(Date.now() / 1e3);
10261
- const startTime = now + START_TIME_BUFFER_SECS;
10262
12047
  const endTime = now + durationSeconds;
12048
+ const chainId = getChainId(config);
10263
12049
  const counter = (await contract.get_counter(account.address)).toString();
10264
12050
  const royaltyMaxBps = await resolveRoyaltyMaxBps(provider, nftContract, tokenId, params.royaltyMaxBps);
10265
- const { orderParams, typedData } = buildListing1155Order(
10266
- {
10267
- offerer: account.address,
10268
- nftContract,
10269
- tokenId,
10270
- quantity: amount,
10271
- priceWeiPerUnit: priceWei,
10272
- paymentTokenAddress: token.address,
10273
- royaltyMaxBps,
10274
- startTime,
10275
- endTime,
10276
- salt: generateSalt(),
10277
- counter
12051
+ const orderParams = {
12052
+ offerer: account.address,
12053
+ marketplace: config.marketplace1155Contract,
12054
+ offer: {
12055
+ item_type: "ERC1155",
12056
+ token: nftContract,
12057
+ identifier_or_criteria: tokenId,
12058
+ amount
12059
+ // ERC-1155 leg amount = unit quantity
12060
+ },
12061
+ consideration: {
12062
+ item_type: "ERC20",
12063
+ token: token.address,
12064
+ identifier_or_criteria: "0",
12065
+ amount: priceWei,
12066
+ // payment leg amount = price PER UNIT
12067
+ recipient: account.address
10278
12068
  },
10279
- config
12069
+ royalty_max_bps: royaltyMaxBps,
12070
+ start_time: (now + START_TIME_BUFFER_SECS).toString(),
12071
+ end_time: endTime.toString(),
12072
+ salt: generateSalt(),
12073
+ counter
12074
+ };
12075
+ const typedData = stringifyBigInts(
12076
+ build1155OrderTypedData(orderParams, chainId)
10280
12077
  );
10281
- const signatureArray = toSignatureArray(await account.signMessage(typedData));
12078
+ const signature = await account.signMessage(typedData);
12079
+ const signatureArray = toSignatureArray(signature);
12080
+ const orderPayload = stringifyBigInts({
12081
+ parameters: {
12082
+ ...orderParams,
12083
+ offer: {
12084
+ ...orderParams.offer,
12085
+ item_type: shortString.encodeShortString(orderParams.offer.item_type)
12086
+ },
12087
+ consideration: {
12088
+ ...orderParams.consideration,
12089
+ item_type: shortString.encodeShortString(orderParams.consideration.item_type)
12090
+ }
12091
+ },
12092
+ signature: signatureArray
12093
+ });
10282
12094
  let isApproved = false;
10283
12095
  try {
10284
12096
  const result = await provider.callContract({
@@ -10289,15 +12101,15 @@ async function createListing1155(account, params, config) {
10289
12101
  isApproved = BigInt(result[0]) === 1n;
10290
12102
  } catch {
10291
12103
  }
10292
- const approve = {
10293
- contractAddress: nftContract,
10294
- entrypoint: "set_approval_for_all",
10295
- calldata: [config.marketplace1155Contract, "1"]
10296
- };
10297
- const calls = buildRegister1155Calls(
10298
- { orderParams, signature: signatureArray, approvalNeeded: !isApproved, approve },
10299
- config
10300
- );
12104
+ const registerCall = contract.populate("register_order", [orderPayload]);
12105
+ const calls = isApproved ? [registerCall] : [
12106
+ {
12107
+ contractAddress: nftContract,
12108
+ entrypoint: "set_approval_for_all",
12109
+ calldata: [config.marketplace1155Contract, "1"]
12110
+ },
12111
+ registerCall
12112
+ ];
10301
12113
  try {
10302
12114
  const tx = await account.execute(calls);
10303
12115
  await provider.waitForTransaction(tx.transaction_hash);
@@ -10308,10 +12120,21 @@ async function createListing1155(account, params, config) {
10308
12120
  }
10309
12121
  async function fulfillOrder1155(account, params, config) {
10310
12122
  const { orderHash, paymentToken, totalPrice, quantity = "1" } = params;
12123
+ const contract = getContract(config);
10311
12124
  const provider = getProvider(config);
10312
- const calls = buildFulfill1155Calls({ orderHash, paymentToken, totalPrice, quantity }, config);
12125
+ const totalPriceU256 = cairo.uint256(totalPrice);
12126
+ const approveCall = {
12127
+ contractAddress: paymentToken,
12128
+ entrypoint: "approve",
12129
+ calldata: [
12130
+ config.marketplace1155Contract,
12131
+ totalPriceU256.low.toString(),
12132
+ totalPriceU256.high.toString()
12133
+ ]
12134
+ };
12135
+ const fulfillCall = contract.populate("fulfill_order", [orderHash, quantity]);
10313
12136
  try {
10314
- const tx = await account.execute(calls);
12137
+ const tx = await account.execute([approveCall, fulfillCall]);
10315
12138
  await provider.waitForTransaction(tx.transaction_hash);
10316
12139
  return { txHash: tx.transaction_hash };
10317
12140
  } catch (err) {
@@ -10320,12 +12143,25 @@ async function fulfillOrder1155(account, params, config) {
10320
12143
  }
10321
12144
  async function cancelOrder1155(account, params, config) {
10322
12145
  const { orderHash } = params;
12146
+ const contract = getContract(config);
10323
12147
  const provider = getProvider(config);
10324
- const typedData = buildCancel1155TypedData(orderHash, account.address, config);
10325
- const signatureArray = toSignatureArray(await account.signMessage(typedData));
10326
- const calls = buildCancel1155Calls({ orderHash, offerer: account.address, signature: signatureArray }, config);
12148
+ const chainId = getChainId(config);
12149
+ const cancelParams = {
12150
+ order_hash: orderHash,
12151
+ offerer: account.address
12152
+ };
12153
+ const typedData = stringifyBigInts(
12154
+ build1155CancellationTypedData(cancelParams, chainId)
12155
+ );
12156
+ const signature = await account.signMessage(typedData);
12157
+ const signatureArray = toSignatureArray(signature);
12158
+ const cancelPayload = stringifyBigInts({
12159
+ cancelation: cancelParams,
12160
+ signature: signatureArray
12161
+ });
12162
+ const cancelCall = contract.populate("cancel_order", [cancelPayload]);
10327
12163
  try {
10328
- const tx = await account.execute(calls);
12164
+ const tx = await account.execute(cancelCall);
10329
12165
  await provider.waitForTransaction(tx.transaction_hash);
10330
12166
  return { txHash: tx.transaction_hash };
10331
12167
  } catch (err) {
@@ -10343,30 +12179,56 @@ async function makeOffer1155(account, params, config) {
10343
12179
  } = params;
10344
12180
  const contract = getContract(config);
10345
12181
  const provider = getProvider(config);
12182
+ const chainId = getChainId(config);
10346
12183
  const token = resolveToken(currency);
10347
12184
  const priceWei = parseAmount(price, token.decimals);
10348
12185
  const now = Math.floor(Date.now() / 1e3);
10349
- const startTime = now + START_TIME_BUFFER_SECS;
10350
12186
  const endTime = now + durationSeconds;
10351
12187
  const counter = (await contract.get_counter(account.address)).toString();
10352
12188
  const royaltyMaxBps = await resolveRoyaltyMaxBps(provider, nftContract, tokenId, params.royaltyMaxBps);
10353
- const { orderParams, typedData } = buildOffer1155Order(
10354
- {
10355
- offerer: account.address,
10356
- nftContract,
10357
- tokenId,
10358
- quantity: amount,
10359
- priceWeiPerUnit: priceWei,
10360
- paymentTokenAddress: token.address,
10361
- royaltyMaxBps,
10362
- startTime,
10363
- endTime,
10364
- salt: generateSalt(),
10365
- counter
12189
+ const orderParams = {
12190
+ offerer: account.address,
12191
+ marketplace: config.marketplace1155Contract,
12192
+ offer: {
12193
+ item_type: "ERC20",
12194
+ token: token.address,
12195
+ identifier_or_criteria: "0",
12196
+ amount: priceWei
12197
+ // price PER UNIT
12198
+ },
12199
+ consideration: {
12200
+ item_type: "ERC1155",
12201
+ token: nftContract,
12202
+ identifier_or_criteria: tokenId,
12203
+ amount,
12204
+ // unit quantity
12205
+ recipient: account.address
10366
12206
  },
10367
- config
12207
+ royalty_max_bps: royaltyMaxBps,
12208
+ start_time: (now + START_TIME_BUFFER_SECS).toString(),
12209
+ end_time: endTime.toString(),
12210
+ salt: generateSalt(),
12211
+ counter
12212
+ };
12213
+ const typedData = stringifyBigInts(
12214
+ build1155OrderTypedData(orderParams, chainId)
10368
12215
  );
10369
- const signatureArray = toSignatureArray(await account.signMessage(typedData));
12216
+ const signature = await account.signMessage(typedData);
12217
+ const signatureArray = toSignatureArray(signature);
12218
+ const registerPayload = stringifyBigInts({
12219
+ parameters: {
12220
+ ...orderParams,
12221
+ offer: {
12222
+ ...orderParams.offer,
12223
+ item_type: shortString.encodeShortString(orderParams.offer.item_type)
12224
+ },
12225
+ consideration: {
12226
+ ...orderParams.consideration,
12227
+ item_type: shortString.encodeShortString(orderParams.consideration.item_type)
12228
+ }
12229
+ },
12230
+ signature: signatureArray
12231
+ });
10370
12232
  const totalWei = BigInt(priceWei) * BigInt(amount);
10371
12233
  const amountU256 = cairo.uint256(totalWei.toString());
10372
12234
  const approveCall = {
@@ -10378,12 +12240,9 @@ async function makeOffer1155(account, params, config) {
10378
12240
  amountU256.high.toString()
10379
12241
  ]
10380
12242
  };
10381
- const calls = buildRegister1155Calls(
10382
- { orderParams, signature: signatureArray, approvalNeeded: true, approve: approveCall },
10383
- config
10384
- );
12243
+ const registerCall = contract.populate("register_order", [registerPayload]);
10385
12244
  try {
10386
- const tx = await account.execute(calls);
12245
+ const tx = await account.execute([approveCall, registerCall]);
10387
12246
  await provider.waitForTransaction(tx.transaction_hash);
10388
12247
  return { txHash: tx.transaction_hash };
10389
12248
  } catch (err) {
@@ -10978,16 +12837,72 @@ var TicketService = class {
10978
12837
  };
10979
12838
  var ClubService = class {
10980
12839
  constructor(config) {
10981
- this.registryAddress = getStarknetCoordinates(config.chain).ipClubRegistry;
12840
+ const coords = getStarknetCoordinates(config.chain);
12841
+ this.registryAddress = coords.ipClubRegistry;
12842
+ this.factoryAddress = coords.ipClubFactory;
10982
12843
  }
10983
12844
  _registry(account, registryAddress) {
10984
12845
  const address = registryAddress ?? this.registryAddress;
10985
- if (!address) {
10986
- throw new Error("IP-Club registry address not configured for this chain");
10987
- }
12846
+ if (!address) throw new Error("IP-Club registry address not configured for this chain");
10988
12847
  return new Contract(IPClubABI, normalizeAddress("STARKNET", address), account);
10989
12848
  }
10990
- /** Permissionless — anyone may create a club. The registry deploys its own membership NFT internally. */
12849
+ _factory(account, factoryAddress) {
12850
+ const address = factoryAddress ?? this.factoryAddress;
12851
+ if (!address) throw new Error("IP-Club factory address not configured for this chain");
12852
+ return new Contract(IPClubFactoryABI, normalizeAddress("STARKNET", address), account);
12853
+ }
12854
+ _collection(account, collectionAddress) {
12855
+ return new Contract(IPClubCollectionABI, normalizeAddress("STARKNET", collectionAddress), account);
12856
+ }
12857
+ /** Deploy a new per-creator membership ERC-721 collection via the factory. */
12858
+ async deployClub(account, params) {
12859
+ const maxSupply = cairo.uint256(params.maxSupply ?? 0xffffffffffffffffn);
12860
+ const entryFee = cairo.uint256(params.entryFee ?? 0n);
12861
+ const paymentToken = params.paymentToken ? new CairoOption(CairoOptionVariant.Some, params.paymentToken) : new CairoOption(CairoOptionVariant.None);
12862
+ const royaltyBps = cairo.uint256(params.royaltyBps ?? 0n);
12863
+ const call = this._factory(account, params.factoryAddress).populate("deploy_club", [
12864
+ params.name,
12865
+ params.symbol,
12866
+ params.baseUri,
12867
+ maxSupply,
12868
+ entryFee,
12869
+ paymentToken,
12870
+ royaltyBps
12871
+ ]);
12872
+ const res = await account.execute([call]);
12873
+ return { txHash: res.transaction_hash };
12874
+ }
12875
+ /** Owner-only — pause or resume new mints on a club collection. */
12876
+ async setOpen(account, params) {
12877
+ const call = this._collection(account, params.collectionAddress).populate("set_open", [params.open]);
12878
+ const res = await account.execute([call]);
12879
+ return { txHash: res.transaction_hash };
12880
+ }
12881
+ /** Public mint — caller pays entry fee (if any) and receives the membership NFT. */
12882
+ async mintMembership(account, params) {
12883
+ const calls = [];
12884
+ if (params.entryFee && params.paymentToken && BigInt(params.entryFee) > 0n) {
12885
+ const amount = cairo.uint256(params.entryFee);
12886
+ calls.push({
12887
+ contractAddress: params.paymentToken,
12888
+ entrypoint: "approve",
12889
+ calldata: [
12890
+ normalizeAddress("STARKNET", params.collectionAddress),
12891
+ amount.low.toString(),
12892
+ amount.high.toString()
12893
+ ]
12894
+ });
12895
+ }
12896
+ calls.push(
12897
+ this._collection(account, params.collectionAddress).populate("mint", [
12898
+ params.to ?? account.address
12899
+ ])
12900
+ );
12901
+ const res = await account.execute(calls);
12902
+ return { txHash: res.transaction_hash };
12903
+ }
12904
+ // ── Legacy registry methods (retained for backward compatibility) ──────────────
12905
+ /** @deprecated Use deployClub — the factory pattern replaced the registry. */
10991
12906
  async createClub(account, params) {
10992
12907
  const maxMembers = params.maxMembers != null ? new CairoOption(CairoOptionVariant.Some, params.maxMembers) : new CairoOption(CairoOptionVariant.None);
10993
12908
  const entryFee = params.entryFee != null ? new CairoOption(CairoOptionVariant.Some, cairo.uint256(params.entryFee)) : new CairoOption(CairoOptionVariant.None);
@@ -11003,7 +12918,7 @@ var ClubService = class {
11003
12918
  const res = await account.execute([call]);
11004
12919
  return { txHash: res.transaction_hash };
11005
12920
  }
11006
- /** Reversible gates new joins only; existing members are never affected. */
12921
+ /** @deprecated Legacy registry use factory-deployed collection methods. */
11007
12922
  async setClubOpen(account, params) {
11008
12923
  const call = this._registry(account, params.registryAddress).populate("set_club_open", [
11009
12924
  cairo.uint256(params.clubId),
@@ -11012,12 +12927,10 @@ var ClubService = class {
11012
12927
  const res = await account.execute([call]);
11013
12928
  return { txHash: res.transaction_hash };
11014
12929
  }
11015
- /** Prepends an ERC-20 approve when the club has an entry fee. */
12930
+ /** @deprecated Legacy registry use mintMembership with factory-deployed collections. */
11016
12931
  async joinClub(account, params) {
11017
12932
  const registryAddress = params.registryAddress ?? this.registryAddress;
11018
- if (!registryAddress) {
11019
- throw new Error("IP-Club registry address not configured for this chain");
11020
- }
12933
+ if (!registryAddress) throw new Error("IP-Club registry address not configured for this chain");
11021
12934
  const calls = [];
11022
12935
  if (params.paymentToken && params.entryFee && BigInt(params.entryFee) > 0n) {
11023
12936
  const amount = cairo.uint256(params.entryFee);
@@ -11031,7 +12944,7 @@ var ClubService = class {
11031
12944
  const res = await account.execute(calls);
11032
12945
  return { txHash: res.transaction_hash };
11033
12946
  }
11034
- /** Always allowed, open or closed. No fee refund. Burns the caller's membership NFT. */
12947
+ /** @deprecated Legacy registry use factory-deployed collection burn. */
11035
12948
  async leaveClub(account, params) {
11036
12949
  const call = this._registry(account, params.registryAddress).populate("leave_club", [
11037
12950
  cairo.uint256(params.clubId),
@@ -11201,147 +13114,94 @@ var StarknetVenue = class {
11201
13114
  constructor(deps) {
11202
13115
  this.deps = deps;
11203
13116
  this.chain = "STARKNET";
13117
+ this.m721 = new MarketplaceModule(deps.config);
13118
+ this.m1155 = new Medialane1155Module(deps.config);
11204
13119
  }
11205
- async incrementCounter(signer) {
11206
- return signer.execute([
11207
- { contractAddress: this.deps.config.marketplaceContract, entrypoint: "increment_counter", calldata: [] }
11208
- ]);
13120
+ incrementCounter(signer) {
13121
+ return this.m721.incrementCounter(signer);
11209
13122
  }
11210
13123
  getOrderDetails(orderRef) {
11211
- return getOrderDetails(orderRef, this.deps.config);
13124
+ return this.m721.getOrderDetails(orderRef);
11212
13125
  }
11213
- async getCounter(address) {
11214
- return this.readCounter(this.deps.config.marketplaceContract, address);
13126
+ getCounter(address) {
13127
+ return this.m721.getCounter(address);
11215
13128
  }
11216
13129
  async fulfillOrder(signer, orderRef, opts) {
11217
13130
  const o = await this.deps.resolveOrder(orderRef);
11218
13131
  const quantity = opts?.quantity ?? "1";
11219
13132
  const totalPrice = (BigInt(o.unitPrice) * BigInt(quantity)).toString();
11220
- const calls = o.standard === "ERC1155" ? buildFulfill1155Calls({ orderHash: orderRef, paymentToken: o.paymentToken, totalPrice, quantity }, this.deps.config) : buildFulfillCalls({ orderHash: orderRef, paymentToken: o.paymentToken, totalPrice }, this.deps.config);
11221
- return signer.execute(calls);
13133
+ if (o.standard === "ERC1155") {
13134
+ return this.m1155.fulfillOrder(signer, {
13135
+ orderHash: orderRef,
13136
+ paymentToken: o.paymentToken,
13137
+ totalPrice,
13138
+ quantity
13139
+ });
13140
+ }
13141
+ return this.m721.fulfillOrder(signer, {
13142
+ orderHash: orderRef,
13143
+ paymentToken: o.paymentToken,
13144
+ totalPrice
13145
+ });
11222
13146
  }
11223
13147
  async cancelOrder(signer, orderRef) {
11224
13148
  const o = await this.deps.resolveOrder(orderRef);
11225
- const typedData = o.standard === "ERC1155" ? buildCancel1155TypedData(orderRef, signer.address, this.deps.config) : buildCancelTypedData(orderRef, signer.address, this.deps.config);
11226
- const signature = await signer.signTypedData(typedData);
11227
- const calls = o.standard === "ERC1155" ? buildCancel1155Calls({ orderHash: orderRef, offerer: signer.address, signature }, this.deps.config) : buildCancelCalls({ orderHash: orderRef, offerer: signer.address, signature }, this.deps.config);
11228
- return signer.execute(calls);
13149
+ if (o.standard === "ERC1155") {
13150
+ return this.m1155.cancelOrder(signer, { orderHash: orderRef });
13151
+ }
13152
+ return this.m721.cancelOrder(signer, { orderHash: orderRef });
11229
13153
  }
11230
13154
  async registerOrder(signer, p) {
11231
13155
  const standard = await this.deps.resolveStandard(p.asset.contract);
11232
- const paymentTokenAddress = resolveToken(p.paymentToken).address;
13156
+ const token = resolveToken(p.paymentToken);
13157
+ const humanPrice = formatAmount(p.amount, token.decimals);
13158
+ const durationSeconds = this.durationSeconds(p.endTime);
11233
13159
  const royaltyMaxBps = String(p.royaltyMaxBps);
11234
- const startTime = Math.floor(Date.now() / 1e3) + START_TIME_BUFFER_SECS;
11235
- const endTime = p.endTime && p.endTime > 0 ? p.endTime : startTime + NO_EXPIRY_SECONDS;
11236
13160
  const quantity = p.quantity ?? "1";
11237
- const marketplace = standard === "ERC1155" ? this.deps.config.marketplace1155Contract : this.deps.config.marketplaceContract;
11238
- const counter = String(await this.readCounter(marketplace, signer.address));
11239
- let typedData;
11240
- let buildCalls;
13161
+ let txHash;
11241
13162
  if (standard === "ERC1155") {
11242
- const built = (p.side === "listing" ? buildListing1155Order : buildOffer1155Order)(
11243
- {
11244
- offerer: signer.address,
13163
+ if (p.side === "listing") {
13164
+ const res = await this.m1155.createListing(signer, {
11245
13165
  nftContract: p.asset.contract,
11246
13166
  tokenId: p.asset.tokenId,
11247
- quantity,
11248
- priceWeiPerUnit: p.amount,
11249
- paymentTokenAddress,
11250
- royaltyMaxBps,
11251
- startTime,
11252
- endTime,
11253
- salt: p.salt,
11254
- counter
11255
- },
11256
- this.deps.config
11257
- );
11258
- typedData = built.typedData;
11259
- const approval = p.side === "listing" ? await this.approval1155ForListing(signer.address, p.asset.contract) : this.approvalForErc20(paymentTokenAddress, (BigInt(p.amount) * BigInt(quantity)).toString(), marketplace);
11260
- buildCalls = (sig) => buildRegister1155Calls({ orderParams: built.orderParams, signature: sig, ...approval }, this.deps.config);
11261
- } else {
11262
- const built = (p.side === "listing" ? buildListingOrder : buildOfferOrder)(
11263
- {
11264
- offerer: signer.address,
13167
+ amount: quantity,
13168
+ pricePerUnit: humanPrice,
13169
+ currency: p.paymentToken,
13170
+ durationSeconds,
13171
+ royaltyMaxBps
13172
+ });
13173
+ txHash = res.txHash;
13174
+ } else {
13175
+ const totalHuman = formatAmount((BigInt(p.amount) * BigInt(quantity)).toString(), token.decimals);
13176
+ const res = await this.m1155.makeOffer(signer, {
11265
13177
  nftContract: p.asset.contract,
11266
13178
  tokenId: p.asset.tokenId,
11267
- priceWei: p.amount,
11268
- paymentTokenAddress,
11269
- royaltyMaxBps,
11270
- startTime,
11271
- endTime,
11272
- salt: p.salt,
11273
- counter
11274
- },
11275
- this.deps.config
11276
- );
11277
- typedData = built.typedData;
11278
- const approval = p.side === "listing" ? await this.approval721ForListing(signer.address, p.asset.contract, p.asset.tokenId) : this.approvalForErc20(paymentTokenAddress, p.amount, marketplace);
11279
- buildCalls = (sig) => buildRegisterCalls({ orderParams: built.orderParams, signature: sig, ...approval }, this.deps.config);
13179
+ amount: quantity,
13180
+ price: totalHuman,
13181
+ currency: p.paymentToken,
13182
+ durationSeconds,
13183
+ royaltyMaxBps
13184
+ });
13185
+ txHash = res.txHash;
13186
+ }
13187
+ } else {
13188
+ const params = {
13189
+ nftContract: p.asset.contract,
13190
+ tokenId: p.asset.tokenId,
13191
+ price: humanPrice,
13192
+ currency: p.paymentToken,
13193
+ durationSeconds,
13194
+ royaltyMaxBps
13195
+ };
13196
+ const res = p.side === "listing" ? await this.m721.createListing(signer, params) : await this.m721.makeOffer(signer, params);
13197
+ txHash = res.txHash;
11280
13198
  }
11281
- const signature = await signer.signTypedData(typedData);
11282
- const { txHash } = await signer.execute(buildCalls(signature));
11283
13199
  const orderRef = await this.orderRefFromReceipt(txHash);
11284
13200
  return { txHash, orderRef };
11285
13201
  }
11286
- // ─── reads (all on deps.provider) ─────────────────────────────────────────
11287
- async readCounter(marketplace, address) {
11288
- const res = await this.deps.provider.callContract({
11289
- contractAddress: marketplace,
11290
- entrypoint: "get_counter",
11291
- calldata: [address]
11292
- });
11293
- return BigInt(res[0] ?? "0");
11294
- }
11295
- /** 721 listing approval: `get_approved(tokenId) == marketplace` ⇒ no approve. */
11296
- async approval721ForListing(_owner, nftContract, tokenId) {
11297
- const id = cairo.uint256(tokenId);
11298
- const approve = {
11299
- contractAddress: nftContract,
11300
- entrypoint: "approve",
11301
- calldata: [this.deps.config.marketplaceContract, id.low.toString(), id.high.toString()]
11302
- };
11303
- let approved = false;
11304
- try {
11305
- const res = await this.deps.provider.callContract({
11306
- contractAddress: nftContract,
11307
- entrypoint: "get_approved",
11308
- calldata: [id.low.toString(), id.high.toString()]
11309
- });
11310
- approved = BigInt(res[0]).toString() === BigInt(this.deps.config.marketplaceContract).toString();
11311
- } catch {
11312
- }
11313
- return { approvalNeeded: !approved, approve };
11314
- }
11315
- /** 1155 listing approval: `is_approved_for_all(owner, marketplace)`. */
11316
- async approval1155ForListing(owner, nftContract) {
11317
- const approve = {
11318
- contractAddress: nftContract,
11319
- entrypoint: "set_approval_for_all",
11320
- calldata: [this.deps.config.marketplace1155Contract, "1"]
11321
- };
11322
- let approved = false;
11323
- try {
11324
- const res = await this.deps.provider.callContract({
11325
- contractAddress: nftContract,
11326
- entrypoint: "is_approved_for_all",
11327
- calldata: [owner, this.deps.config.marketplace1155Contract]
11328
- });
11329
- approved = BigInt(res[0]) === 1n;
11330
- } catch {
11331
- }
11332
- return { approvalNeeded: !approved, approve };
11333
- }
11334
- /** Offers always approve the ERC-20 spend (no read). */
11335
- approvalForErc20(token, amountWei, marketplace) {
11336
- const u = cairo.uint256(amountWei);
11337
- return {
11338
- approvalNeeded: true,
11339
- approve: {
11340
- contractAddress: token,
11341
- entrypoint: "approve",
11342
- calldata: [marketplace, u.low.toString(), u.high.toString()]
11343
- }
11344
- };
13202
+ durationSeconds(endTime) {
13203
+ if (!endTime) return NO_EXPIRY_SECONDS;
13204
+ return Math.max(1, endTime - Math.floor(Date.now() / 1e3));
11345
13205
  }
11346
13206
  /** The canonical Starknet order id = the contract-emitted `OrderCreated`
11347
13207
  * hash (`keys[1]`), which is exactly what the indexer stores. */
@@ -11615,6 +13475,6 @@ function fdvHuman(supplyHuman) {
11615
13475
  return supplyHuman * LAUNCH_PRICE_QUOTE_PER_COIN;
11616
13476
  }
11617
13477
 
11618
- 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, IPClubNFTABI, IPCollection1155ABI, IPCollection1155FactoryABI, IPCollectionABI, IPGenesisABI, IPMarketplaceABI, IPNftABI, IPSponsorshipABI, IPTicketCollectionABI, IPTicketCollectionFactoryABI, LAUNCH_PRICE_QUOTE_PER_COIN, MarketplaceModule, Medialane1155ABI, Medialane1155Module, 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_NFT_CLASS_HASH, STARKNET_IP_CLUB_REGISTRY_CONTRACT, STARKNET_IP_SPONSORSHIP_CONTRACT, STARKNET_IP_SPONSORSHIP_LICENSE_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, getCreatorCoinPrice, getListableTokens, 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 };
13478
+ 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, IPSponsorshipLicenseABI, IPTicketCollectionABI, IPTicketCollectionFactoryABI, LAUNCH_PRICE_QUOTE_PER_COIN, MarketplaceModule, Medialane1155ABI, Medialane1155Module, 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_CONTRACT, STARKNET_IP_SPONSORSHIP_LICENSE_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, getCreatorCoinPrice, getListableTokens, 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 };
11619
13479
  //# sourceMappingURL=index.js.map
11620
13480
  //# sourceMappingURL=index.js.map