@story-protocol/core-sdk 0.1.0-rc.4 → 0.1.0-rc.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/README.md +85 -0
  2. package/dist/declarations/src/abi/generated/CollectModule.d.ts +12 -2
  3. package/dist/declarations/src/abi/generated/CollectModule.d.ts.map +1 -1
  4. package/dist/declarations/src/abi/generated/FranchiseRegistry.d.ts +6 -1
  5. package/dist/declarations/src/abi/generated/FranchiseRegistry.d.ts.map +1 -1
  6. package/dist/declarations/src/abi/generated/IpAssetRegistry.d.ts.map +1 -1
  7. package/dist/declarations/src/abi/generated/common.d.ts.map +1 -1
  8. package/dist/declarations/src/abi/generated/factories/CollectModule__factory.d.ts.map +1 -1
  9. package/dist/declarations/src/abi/generated/factories/FranchiseRegistry__factory.d.ts.map +1 -1
  10. package/dist/declarations/src/abi/generated/factories/IpAssetRegistry__factory.d.ts.map +1 -1
  11. package/dist/declarations/src/abi/generated/factories/index.d.ts +1 -1
  12. package/dist/declarations/src/abi/generated/factories/index.d.ts.map +1 -1
  13. package/dist/declarations/src/client.d.ts +40 -13
  14. package/dist/declarations/src/client.d.ts.map +1 -1
  15. package/dist/declarations/src/index.d.ts +1 -1
  16. package/dist/declarations/src/index.d.ts.map +1 -1
  17. package/dist/declarations/src/resources/collect.d.ts +3 -10
  18. package/dist/declarations/src/resources/collect.d.ts.map +1 -1
  19. package/dist/declarations/src/resources/collectReadOnly.d.ts +15 -0
  20. package/dist/declarations/src/resources/collectReadOnly.d.ts.map +1 -0
  21. package/dist/declarations/src/resources/franchise.d.ts +3 -18
  22. package/dist/declarations/src/resources/franchise.d.ts.map +1 -1
  23. package/dist/declarations/src/resources/franchiseReadOnly.d.ts +27 -0
  24. package/dist/declarations/src/resources/franchiseReadOnly.d.ts.map +1 -0
  25. package/dist/declarations/src/resources/ipAsset.d.ts +3 -17
  26. package/dist/declarations/src/resources/ipAsset.d.ts.map +1 -1
  27. package/dist/declarations/src/resources/ipAssetReadOnly.d.ts +25 -0
  28. package/dist/declarations/src/resources/ipAssetReadOnly.d.ts.map +1 -0
  29. package/dist/declarations/src/resources/license.d.ts +3 -17
  30. package/dist/declarations/src/resources/license.d.ts.map +1 -1
  31. package/dist/declarations/src/resources/licenseReadOnly.d.ts +27 -0
  32. package/dist/declarations/src/resources/licenseReadOnly.d.ts.map +1 -0
  33. package/dist/declarations/src/resources/relationship.d.ts +2 -3
  34. package/dist/declarations/src/resources/relationship.d.ts.map +1 -1
  35. package/dist/declarations/src/resources/relationshipReadOnly.d.ts +16 -0
  36. package/dist/declarations/src/resources/relationshipReadOnly.d.ts.map +1 -0
  37. package/dist/declarations/src/resources/transaction.d.ts +2 -17
  38. package/dist/declarations/src/resources/transaction.d.ts.map +1 -1
  39. package/dist/declarations/src/resources/transactionReadOnly.d.ts +25 -0
  40. package/dist/declarations/src/resources/transactionReadOnly.d.ts.map +1 -0
  41. package/dist/declarations/src/types/client.d.ts +29 -0
  42. package/dist/declarations/src/types/client.d.ts.map +1 -0
  43. package/dist/declarations/src/types/config.d.ts +8 -2
  44. package/dist/declarations/src/types/config.d.ts.map +1 -1
  45. package/dist/story-protocol-core-sdk.cjs.dev.js +1020 -769
  46. package/dist/story-protocol-core-sdk.cjs.prod.js +1020 -769
  47. package/dist/story-protocol-core-sdk.esm.js +1021 -770
  48. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import axios from 'axios';
2
+ import { constants, ethers, utils, Contract } from 'ethers';
2
3
  import * as dotenv from 'dotenv';
3
- import { constants, utils, Contract, ethers } from 'ethers';
4
4
 
5
5
  function _classCallCheck(instance, Constructor) {
6
6
  if (!(instance instanceof Constructor)) {
@@ -399,6 +399,81 @@ function _asyncToGenerator(fn) {
399
399
  };
400
400
  }
401
401
 
402
+ function _setPrototypeOf(o, p) {
403
+ _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
404
+ o.__proto__ = p;
405
+ return o;
406
+ };
407
+ return _setPrototypeOf(o, p);
408
+ }
409
+
410
+ function _inherits(subClass, superClass) {
411
+ if (typeof superClass !== "function" && superClass !== null) {
412
+ throw new TypeError("Super expression must either be null or a function");
413
+ }
414
+ subClass.prototype = Object.create(superClass && superClass.prototype, {
415
+ constructor: {
416
+ value: subClass,
417
+ writable: true,
418
+ configurable: true
419
+ }
420
+ });
421
+ Object.defineProperty(subClass, "prototype", {
422
+ writable: false
423
+ });
424
+ if (superClass) _setPrototypeOf(subClass, superClass);
425
+ }
426
+
427
+ function _getPrototypeOf(o) {
428
+ _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {
429
+ return o.__proto__ || Object.getPrototypeOf(o);
430
+ };
431
+ return _getPrototypeOf(o);
432
+ }
433
+
434
+ function _isNativeReflectConstruct() {
435
+ if (typeof Reflect === "undefined" || !Reflect.construct) return false;
436
+ if (Reflect.construct.sham) return false;
437
+ if (typeof Proxy === "function") return true;
438
+ try {
439
+ Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
440
+ return true;
441
+ } catch (e) {
442
+ return false;
443
+ }
444
+ }
445
+
446
+ function _assertThisInitialized(self) {
447
+ if (self === void 0) {
448
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
449
+ }
450
+ return self;
451
+ }
452
+
453
+ function _possibleConstructorReturn(self, call) {
454
+ if (call && (typeof call === "object" || typeof call === "function")) {
455
+ return call;
456
+ } else if (call !== void 0) {
457
+ throw new TypeError("Derived constructors may only return object or undefined");
458
+ }
459
+ return _assertThisInitialized(self);
460
+ }
461
+
462
+ function _createSuper(Derived) {
463
+ var hasNativeReflectConstruct = _isNativeReflectConstruct();
464
+ return function _createSuperInternal() {
465
+ var Super = _getPrototypeOf(Derived),
466
+ result;
467
+ if (hasNativeReflectConstruct) {
468
+ var NewTarget = _getPrototypeOf(this).constructor;
469
+ result = Reflect.construct(Super, arguments, NewTarget);
470
+ } else {
471
+ result = Super.apply(this, arguments);
472
+ }
473
+ return _possibleConstructorReturn(this, result);
474
+ };
475
+ }
476
+
402
477
  function handleError(error, msg) {
403
478
  if (error instanceof Error) {
404
479
  throw new Error("".concat(msg, ": ").concat(error.message));
@@ -412,12 +487,12 @@ function isIntegerString(s) {
412
487
  }
413
488
 
414
489
  /**
415
- * FranchiseClient allows you to create, update, view, search franchises on
490
+ * FranchiseReadOnlyClient allows you to view, search franchises on
416
491
  * Story Protocol.
417
492
  */
418
- var FranchiseClient = /*#__PURE__*/function () {
419
- function FranchiseClient(httpClient, franchiseRegistry, licenseModule) {
420
- _classCallCheck(this, FranchiseClient);
493
+ var FranchiseReadOnlyClient = /*#__PURE__*/function () {
494
+ function FranchiseReadOnlyClient(httpClient, franchiseRegistry, licenseModule) {
495
+ _classCallCheck(this, FranchiseReadOnlyClient);
421
496
  this.httpClient = httpClient;
422
497
  this.franchiseRegistry = franchiseRegistry;
423
498
  this.licenseModule = licenseModule;
@@ -429,7 +504,7 @@ var FranchiseClient = /*#__PURE__*/function () {
429
504
  * @param request - the request object for getting the franchise
430
505
  * @returns the response object that contains the fetched franchise object
431
506
  */
432
- _createClass(FranchiseClient, [{
507
+ _createClass(FranchiseReadOnlyClient, [{
433
508
  key: "get",
434
509
  value: function () {
435
510
  var _get = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(request) {
@@ -498,24 +573,40 @@ var FranchiseClient = /*#__PURE__*/function () {
498
573
  }
499
574
  return list;
500
575
  }()
501
- /**
502
- * Create a franchise on Story Protocol based on the specified input franchise data.
503
- *
504
- * @param request - the request object that contains all data needed to create a franchise
505
- * @returns the response object that contains results from the create franchise action
506
- */
507
- }, {
576
+ }]);
577
+ return FranchiseReadOnlyClient;
578
+ }();
579
+
580
+ /**
581
+ * FranchiseClient allows you to create, update, view, search franchises on
582
+ * Story Protocol.
583
+ */
584
+ var FranchiseClient = /*#__PURE__*/function (_FranchiseReadOnlyCli) {
585
+ _inherits(FranchiseClient, _FranchiseReadOnlyCli);
586
+ var _super = _createSuper(FranchiseClient);
587
+ function FranchiseClient(httpClient, franchiseRegistry, licenseModule) {
588
+ _classCallCheck(this, FranchiseClient);
589
+ return _super.call(this, httpClient, franchiseRegistry, licenseModule);
590
+ }
591
+
592
+ /**
593
+ * Create a franchise on Story Protocol based on the specified input franchise data.
594
+ *
595
+ * @param request - the request object that contains all data needed to create a franchise
596
+ * @returns the response object that contains results from the create franchise action
597
+ */
598
+ _createClass(FranchiseClient, [{
508
599
  key: "create",
509
600
  value: function () {
510
- var _create = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(request) {
601
+ var _create = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(request) {
511
602
  var tokenURI, response;
512
- return _regeneratorRuntime().wrap(function _callee3$(_context3) {
513
- while (1) switch (_context3.prev = _context3.next) {
603
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
604
+ while (1) switch (_context.prev = _context.next) {
514
605
  case 0:
515
- _context3.prev = 0;
606
+ _context.prev = 0;
516
607
  // hardcoded the URI for now until the backend API for uploading franchise metadata is ready
517
608
  tokenURI = "https://arweave.net/dnFJl1v8kgOx_6Z0gEsBce3D56cMP4-lxAcFqSsL0_w";
518
- _context3.next = 4;
609
+ _context.next = 4;
519
610
  return this.franchiseRegistry.registerFranchise({
520
611
  name: request.franchiseName,
521
612
  symbol: request.franchiseSymbol,
@@ -523,21 +614,21 @@ var FranchiseClient = /*#__PURE__*/function () {
523
614
  tokenURI: tokenURI
524
615
  });
525
616
  case 4:
526
- response = _context3.sent;
527
- return _context3.abrupt("return", {
617
+ response = _context.sent;
618
+ return _context.abrupt("return", {
528
619
  txHash: response.hash
529
620
  });
530
621
  case 8:
531
- _context3.prev = 8;
532
- _context3.t0 = _context3["catch"](0);
533
- handleError(_context3.t0, "Failed to create franchise");
622
+ _context.prev = 8;
623
+ _context.t0 = _context["catch"](0);
624
+ handleError(_context.t0, "Failed to create franchise");
534
625
  case 11:
535
626
  case "end":
536
- return _context3.stop();
627
+ return _context.stop();
537
628
  }
538
- }, _callee3, this, [[0, 8]]);
629
+ }, _callee, this, [[0, 8]]);
539
630
  }));
540
- function create(_x2) {
631
+ function create(_x) {
541
632
  return _create.apply(this, arguments);
542
633
  }
543
634
  return create;
@@ -551,13 +642,13 @@ var FranchiseClient = /*#__PURE__*/function () {
551
642
  }, {
552
643
  key: "configure",
553
644
  value: function () {
554
- var _configure = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(request) {
645
+ var _configure = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(request) {
555
646
  var response;
556
- return _regeneratorRuntime().wrap(function _callee4$(_context4) {
557
- while (1) switch (_context4.prev = _context4.next) {
647
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
648
+ while (1) switch (_context2.prev = _context2.next) {
558
649
  case 0:
559
- _context4.prev = 0;
560
- _context4.next = 3;
650
+ _context2.prev = 0;
651
+ _context2.next = 3;
561
652
  return this.licenseModule.configureFranchiseLicensing(request.franchiseId, {
562
653
  nonCommercialConfig: {
563
654
  canSublicense: true,
@@ -580,198 +671,427 @@ var FranchiseClient = /*#__PURE__*/function () {
580
671
  revoker: "0xF33f05489d9708C2CA97944F2007d4E741D4DEe7"
581
672
  });
582
673
  case 3:
583
- response = _context4.sent;
584
- return _context4.abrupt("return", {
674
+ response = _context2.sent;
675
+ return _context2.abrupt("return", {
585
676
  txHash: response.hash
586
677
  });
587
678
  case 7:
588
- _context4.prev = 7;
589
- _context4.t0 = _context4["catch"](0);
590
- handleError(_context4.t0, "Failed to configure franchise");
679
+ _context2.prev = 7;
680
+ _context2.t0 = _context2["catch"](0);
681
+ handleError(_context2.t0, "Failed to configure franchise");
591
682
  case 10:
592
683
  case "end":
593
- return _context4.stop();
684
+ return _context2.stop();
594
685
  }
595
- }, _callee4, this, [[0, 7]]);
686
+ }, _callee2, this, [[0, 7]]);
596
687
  }));
597
- function configure(_x3) {
688
+ function configure(_x2) {
598
689
  return _configure.apply(this, arguments);
599
690
  }
600
691
  return configure;
601
692
  }()
602
693
  }]);
603
694
  return FranchiseClient;
604
- }();
695
+ }(FranchiseReadOnlyClient);
605
696
 
606
- var _abi$4 = [{
607
- inputs: [{
608
- internalType: "uint256",
609
- name: "franchiseId",
610
- type: "uint256"
611
- }, {
612
- components: [{
613
- components: [{
614
- internalType: "bool",
615
- name: "canSublicense",
616
- type: "bool"
617
- }, {
618
- internalType: "uint256",
619
- name: "franchiseRootLicenseId",
620
- type: "uint256"
621
- }],
622
- internalType: "struct ILicensingModule.IpAssetConfig",
623
- name: "nonCommercialConfig",
624
- type: "tuple"
625
- }, {
626
- components: [{
627
- internalType: "contract ITermsProcessor",
628
- name: "processor",
629
- type: "address"
630
- }, {
631
- internalType: "bytes",
632
- name: "data",
633
- type: "bytes"
634
- }],
635
- internalType: "struct IERC5218.TermsProcessorConfig",
636
- name: "nonCommercialTerms",
637
- type: "tuple"
638
- }, {
639
- components: [{
640
- internalType: "bool",
641
- name: "canSublicense",
642
- type: "bool"
643
- }, {
644
- internalType: "uint256",
645
- name: "franchiseRootLicenseId",
646
- type: "uint256"
647
- }],
648
- internalType: "struct ILicensingModule.IpAssetConfig",
649
- name: "commercialConfig",
650
- type: "tuple"
651
- }, {
652
- components: [{
653
- internalType: "contract ITermsProcessor",
654
- name: "processor",
655
- type: "address"
656
- }, {
657
- internalType: "bytes",
658
- name: "data",
659
- type: "bytes"
660
- }],
661
- internalType: "struct IERC5218.TermsProcessorConfig",
662
- name: "commercialTerms",
663
- type: "tuple"
664
- }, {
665
- internalType: "bool",
666
- name: "rootIpAssetHasCommercialRights",
667
- type: "bool"
668
- }, {
669
- internalType: "address",
670
- name: "revoker",
671
- type: "address"
672
- }, {
673
- internalType: "string",
674
- name: "commercialLicenseUri",
675
- type: "string"
676
- }],
677
- internalType: "struct ILicensingModule.FranchiseConfig",
678
- name: "config",
679
- type: "tuple"
680
- }],
681
- name: "configureFranchiseLicensing",
682
- outputs: [],
683
- stateMutability: "nonpayable",
684
- type: "function"
685
- }];
686
- var LicensingModule__factory = /*#__PURE__*/function () {
687
- function LicensingModule__factory() {
688
- _classCallCheck(this, LicensingModule__factory);
689
- }
690
- _createClass(LicensingModule__factory, null, [{
691
- key: "createInterface",
692
- value: function createInterface() {
693
- return new utils.Interface(_abi$4);
694
- }
695
- }, {
696
- key: "connect",
697
- value: function connect(address, signerOrProvider) {
698
- return new Contract(address, _abi$4, signerOrProvider);
699
- }
700
- }]);
701
- return LicensingModule__factory;
702
- }();
703
- _defineProperty(LicensingModule__factory, "abi", _abi$4);
697
+ /**
698
+ * Client for managing relationships.
699
+ */
700
+ var RelationshipReadOnlyClient = /*#__PURE__*/_createClass(
701
+ /**
702
+ * Creates a new RelationshipClient instance.
703
+ * @param relationshipModule - The relationship module to interact with.
704
+ * @param franchiseRegistry - The franchise registry to interact with.
705
+ */
706
+ function RelationshipReadOnlyClient(relationshipModule, franchiseRegistry) {
707
+ _classCallCheck(this, RelationshipReadOnlyClient);
708
+ this.relationshipModule = relationshipModule;
709
+ this.franchiseRegistry = franchiseRegistry;
710
+ });
704
711
 
705
- var _abi$3 = [{
706
- inputs: [{
707
- components: [{
708
- internalType: "string",
709
- name: "name",
710
- type: "string"
711
- }, {
712
- internalType: "string",
713
- name: "symbol",
714
- type: "string"
715
- }, {
716
- internalType: "string",
717
- name: "description",
718
- type: "string"
719
- }, {
720
- internalType: "string",
721
- name: "tokenURI",
722
- type: "string"
723
- }],
724
- internalType: "struct FranchiseRegistry.FranchiseCreationParams",
725
- name: "params",
726
- type: "tuple"
727
- }],
728
- name: "registerFranchise",
729
- outputs: [{
730
- internalType: "uint256",
731
- name: "",
732
- type: "uint256"
733
- }, {
734
- internalType: "address",
735
- name: "",
736
- type: "address"
737
- }],
738
- stateMutability: "nonpayable",
739
- type: "function"
740
- }, {
741
- inputs: [{
742
- internalType: "uint256",
743
- name: "franchiseId",
744
- type: "uint256"
745
- }],
746
- name: "ipAssetRegistryForId",
747
- outputs: [{
748
- internalType: "address",
749
- name: "",
750
- type: "address"
751
- }],
752
- stateMutability: "view",
753
- type: "function"
754
- }];
755
- var FranchiseRegistry__factory = /*#__PURE__*/function () {
756
- function FranchiseRegistry__factory() {
757
- _classCallCheck(this, FranchiseRegistry__factory);
712
+ /**
713
+ * Client for managing relationships.
714
+ */
715
+ var RelationshipClient = /*#__PURE__*/function (_RelationshipReadOnly) {
716
+ _inherits(RelationshipClient, _RelationshipReadOnly);
717
+ var _super = _createSuper(RelationshipClient);
718
+ /**
719
+ * Creates a new RelationshipClient instance.
720
+ * @param relationshipModule - The relationship module to interact with.
721
+ * @param franchiseRegistry - The franchise registry to interact with.
722
+ */
723
+ function RelationshipClient(relationshipModule, franchiseRegistry) {
724
+ _classCallCheck(this, RelationshipClient);
725
+ return _super.call(this, relationshipModule, franchiseRegistry);
758
726
  }
759
- _createClass(FranchiseRegistry__factory, null, [{
760
- key: "createInterface",
761
- value: function createInterface() {
762
- return new utils.Interface(_abi$3);
727
+
728
+ /**
729
+ * Retrieves the registry addresses for source and destination franchises.
730
+ * @param sourceFranchiseId - The ID of the source franchise.
731
+ * @param destFranchiseId - The ID of the destination franchise.
732
+ * @returns An object containing the source and destination IP registry addresses.
733
+ */
734
+ _createClass(RelationshipClient, [{
735
+ key: "getRegistryAddresses",
736
+ value: function () {
737
+ var _getRegistryAddresses = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(sourceFranchiseId, destFranchiseId) {
738
+ var sourceIpRegistryAddress, destIpRegistryAddress;
739
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
740
+ while (1) switch (_context.prev = _context.next) {
741
+ case 0:
742
+ _context.prev = 0;
743
+ _context.next = 3;
744
+ return this.franchiseRegistry.ipAssetRegistryForId(sourceFranchiseId);
745
+ case 3:
746
+ sourceIpRegistryAddress = _context.sent;
747
+ _context.next = 6;
748
+ return this.franchiseRegistry.ipAssetRegistryForId(destFranchiseId);
749
+ case 6:
750
+ destIpRegistryAddress = _context.sent;
751
+ return _context.abrupt("return", {
752
+ sourceIpRegistryAddress: sourceIpRegistryAddress,
753
+ destIpRegistryAddress: destIpRegistryAddress
754
+ });
755
+ case 10:
756
+ _context.prev = 10;
757
+ _context.t0 = _context["catch"](0);
758
+ handleError(_context.t0, "Failed to get registry addresses");
759
+ case 13:
760
+ case "end":
761
+ return _context.stop();
762
+ }
763
+ }, _callee, this, [[0, 10]]);
764
+ }));
765
+ function getRegistryAddresses(_x, _x2) {
766
+ return _getRegistryAddresses.apply(this, arguments);
767
+ }
768
+ return getRegistryAddresses;
769
+ }()
770
+ /**
771
+ * Establishes a relationship between two IP assets.
772
+ * @param request - The request for establishing the relationship.
773
+ * @returns A promise that resolves to the response with the transaction hash.
774
+ */
775
+ }, {
776
+ key: "relate",
777
+ value: function () {
778
+ var _relate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(request) {
779
+ var sourceIPAsset, destIPAsset, mockRelationshipData, _yield$this$getRegist, sourceIpRegistryAddress, destIpRegistryAddress, relationshipId, params, response;
780
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
781
+ while (1) switch (_context2.prev = _context2.next) {
782
+ case 0:
783
+ _context2.prev = 0;
784
+ sourceIPAsset = request.sourceIPAsset, destIPAsset = request.destIPAsset;
785
+ mockRelationshipData = ethers.utils.formatBytes32String(""); // Get IPAssetRegistry Contract Address
786
+ _context2.next = 5;
787
+ return this.getRegistryAddresses(sourceIPAsset.franchiseId, destIPAsset.franchiseId);
788
+ case 5:
789
+ _yield$this$getRegist = _context2.sent;
790
+ sourceIpRegistryAddress = _yield$this$getRegist.sourceIpRegistryAddress;
791
+ destIpRegistryAddress = _yield$this$getRegist.destIpRegistryAddress;
792
+ _context2.next = 10;
793
+ return this.relationshipModule.getRelationshipId("APPEARS_IN");
794
+ case 10:
795
+ relationshipId = _context2.sent;
796
+ params = {
797
+ sourceContract: sourceIpRegistryAddress,
798
+ sourceId: sourceIPAsset.ipAssetId,
799
+ destContract: destIpRegistryAddress,
800
+ destId: destIPAsset.ipAssetId,
801
+ relationshipId: relationshipId,
802
+ ttl: "0"
803
+ };
804
+ _context2.next = 14;
805
+ return this.relationshipModule.relate(params, mockRelationshipData);
806
+ case 14:
807
+ response = _context2.sent;
808
+ return _context2.abrupt("return", {
809
+ txHash: response.hash
810
+ });
811
+ case 18:
812
+ _context2.prev = 18;
813
+ _context2.t0 = _context2["catch"](0);
814
+ handleError(_context2.t0, "Failed to create relationship");
815
+ case 21:
816
+ case "end":
817
+ return _context2.stop();
818
+ }
819
+ }, _callee2, this, [[0, 18]]);
820
+ }));
821
+ function relate(_x3) {
822
+ return _relate.apply(this, arguments);
823
+ }
824
+ return relate;
825
+ }()
826
+ /**
827
+ * Removes a relationship between two IP assets.
828
+ * @param request - The request for removing the relationship.
829
+ * @returns A promise that resolves to the response with the transaction hash.
830
+ */
831
+ }, {
832
+ key: "unrelate",
833
+ value: function () {
834
+ var _unrelate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(request) {
835
+ var sourceIPAsset, destIPAsset, _yield$this$getRegist2, sourceIpRegistryAddress, destIpRegistryAddress, relationshipId, params, response;
836
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
837
+ while (1) switch (_context3.prev = _context3.next) {
838
+ case 0:
839
+ _context3.prev = 0;
840
+ sourceIPAsset = request.sourceIPAsset, destIPAsset = request.destIPAsset; // Get IPAssetRegistry Contract Address
841
+ _context3.next = 4;
842
+ return this.getRegistryAddresses(sourceIPAsset.franchiseId, destIPAsset.franchiseId);
843
+ case 4:
844
+ _yield$this$getRegist2 = _context3.sent;
845
+ sourceIpRegistryAddress = _yield$this$getRegist2.sourceIpRegistryAddress;
846
+ destIpRegistryAddress = _yield$this$getRegist2.destIpRegistryAddress;
847
+ _context3.next = 9;
848
+ return this.relationshipModule.getRelationshipId("APPEARS_IN");
849
+ case 9:
850
+ relationshipId = _context3.sent;
851
+ params = {
852
+ sourceContract: sourceIpRegistryAddress,
853
+ sourceId: sourceIPAsset.ipAssetId,
854
+ destContract: destIpRegistryAddress,
855
+ destId: destIPAsset.ipAssetId,
856
+ relationshipId: relationshipId,
857
+ ttl: "0"
858
+ };
859
+ _context3.next = 13;
860
+ return this.relationshipModule.unrelate(params);
861
+ case 13:
862
+ response = _context3.sent;
863
+ return _context3.abrupt("return", {
864
+ txHash: response.hash
865
+ });
866
+ case 17:
867
+ _context3.prev = 17;
868
+ _context3.t0 = _context3["catch"](0);
869
+ handleError(_context3.t0, "Failed to unrelate relationship");
870
+ case 20:
871
+ case "end":
872
+ return _context3.stop();
873
+ }
874
+ }, _callee3, this, [[0, 17]]);
875
+ }));
876
+ function unrelate(_x4) {
877
+ return _unrelate.apply(this, arguments);
878
+ }
879
+ return unrelate;
880
+ }()
881
+ /**
882
+ * Checks if a relationship has expired.
883
+ * @param request - The request for checking the relationship's expiration status.
884
+ * @returns A promise that resolves to the response indicating whether the relationship has expired.
885
+ */
886
+ }, {
887
+ key: "isRelationshipExpired",
888
+ value: function () {
889
+ var _isRelationshipExpired = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(request) {
890
+ var sourceIPAsset, destIPAsset, _yield$this$getRegist3, sourceIpRegistryAddress, destIpRegistryAddress, relationshipId, params, response;
891
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
892
+ while (1) switch (_context4.prev = _context4.next) {
893
+ case 0:
894
+ _context4.prev = 0;
895
+ sourceIPAsset = request.sourceIPAsset, destIPAsset = request.destIPAsset; // Get IPAssetRegistry Contract Address
896
+ _context4.next = 4;
897
+ return this.getRegistryAddresses(sourceIPAsset.franchiseId, destIPAsset.franchiseId);
898
+ case 4:
899
+ _yield$this$getRegist3 = _context4.sent;
900
+ sourceIpRegistryAddress = _yield$this$getRegist3.sourceIpRegistryAddress;
901
+ destIpRegistryAddress = _yield$this$getRegist3.destIpRegistryAddress;
902
+ _context4.next = 9;
903
+ return this.relationshipModule.getRelationshipId("APPEARS_IN");
904
+ case 9:
905
+ relationshipId = _context4.sent;
906
+ params = {
907
+ sourceContract: sourceIpRegistryAddress,
908
+ sourceId: sourceIPAsset.ipAssetId,
909
+ destContract: destIpRegistryAddress,
910
+ destId: destIPAsset.ipAssetId,
911
+ relationshipId: relationshipId,
912
+ ttl: "0"
913
+ };
914
+ _context4.next = 13;
915
+ return this.relationshipModule.isRelationshipExpired(params);
916
+ case 13:
917
+ response = _context4.sent;
918
+ return _context4.abrupt("return", {
919
+ result: response
920
+ });
921
+ case 17:
922
+ _context4.prev = 17;
923
+ _context4.t0 = _context4["catch"](0);
924
+ handleError(_context4.t0, "Failed to get isRelationshipExpired");
925
+ case 20:
926
+ case "end":
927
+ return _context4.stop();
928
+ }
929
+ }, _callee4, this, [[0, 17]]);
930
+ }));
931
+ function isRelationshipExpired(_x5) {
932
+ return _isRelationshipExpired.apply(this, arguments);
933
+ }
934
+ return isRelationshipExpired;
935
+ }()
936
+ /**
937
+ * Checks if two IP assets are related.
938
+ * @param request - The request for checking the relationship between two IP assets.
939
+ * @returns A promise that resolves to the response indicating whether the IP assets are related.
940
+ */
941
+ }, {
942
+ key: "isRelated",
943
+ value: function () {
944
+ var _isRelated = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(request) {
945
+ var sourceIPAsset, destIPAsset, _yield$this$getRegist4, sourceIpRegistryAddress, destIpRegistryAddress, relationshipId, params, response;
946
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
947
+ while (1) switch (_context5.prev = _context5.next) {
948
+ case 0:
949
+ _context5.prev = 0;
950
+ sourceIPAsset = request.sourceIPAsset, destIPAsset = request.destIPAsset; // Get IPAssetRegistry Contract Address
951
+ _context5.next = 4;
952
+ return this.getRegistryAddresses(sourceIPAsset.franchiseId, destIPAsset.franchiseId);
953
+ case 4:
954
+ _yield$this$getRegist4 = _context5.sent;
955
+ sourceIpRegistryAddress = _yield$this$getRegist4.sourceIpRegistryAddress;
956
+ destIpRegistryAddress = _yield$this$getRegist4.destIpRegistryAddress;
957
+ _context5.next = 9;
958
+ return this.relationshipModule.getRelationshipId("APPEARS_IN");
959
+ case 9:
960
+ relationshipId = _context5.sent;
961
+ params = {
962
+ sourceContract: sourceIpRegistryAddress,
963
+ sourceId: sourceIPAsset.ipAssetId,
964
+ destContract: destIpRegistryAddress,
965
+ destId: destIPAsset.ipAssetId,
966
+ relationshipId: relationshipId,
967
+ ttl: "0"
968
+ };
969
+ _context5.next = 13;
970
+ return this.relationshipModule.areTheyRelated(params);
971
+ case 13:
972
+ response = _context5.sent;
973
+ return _context5.abrupt("return", {
974
+ result: response
975
+ });
976
+ case 17:
977
+ _context5.prev = 17;
978
+ _context5.t0 = _context5["catch"](0);
979
+ handleError(_context5.t0, "Failed to get isRelated");
980
+ case 20:
981
+ case "end":
982
+ return _context5.stop();
983
+ }
984
+ }, _callee5, this, [[0, 17]]);
985
+ }));
986
+ function isRelated(_x6) {
987
+ return _isRelated.apply(this, arguments);
988
+ }
989
+ return isRelated;
990
+ }()
991
+ }]);
992
+ return RelationshipClient;
993
+ }(RelationshipReadOnlyClient);
994
+
995
+ var _abi$4 = [{
996
+ inputs: [{
997
+ internalType: "uint256",
998
+ name: "franchiseId",
999
+ type: "uint256"
1000
+ }, {
1001
+ components: [{
1002
+ components: [{
1003
+ internalType: "bool",
1004
+ name: "canSublicense",
1005
+ type: "bool"
1006
+ }, {
1007
+ internalType: "uint256",
1008
+ name: "franchiseRootLicenseId",
1009
+ type: "uint256"
1010
+ }],
1011
+ internalType: "struct ILicensingModule.IpAssetConfig",
1012
+ name: "nonCommercialConfig",
1013
+ type: "tuple"
1014
+ }, {
1015
+ components: [{
1016
+ internalType: "contract ITermsProcessor",
1017
+ name: "processor",
1018
+ type: "address"
1019
+ }, {
1020
+ internalType: "bytes",
1021
+ name: "data",
1022
+ type: "bytes"
1023
+ }],
1024
+ internalType: "struct IERC5218.TermsProcessorConfig",
1025
+ name: "nonCommercialTerms",
1026
+ type: "tuple"
1027
+ }, {
1028
+ components: [{
1029
+ internalType: "bool",
1030
+ name: "canSublicense",
1031
+ type: "bool"
1032
+ }, {
1033
+ internalType: "uint256",
1034
+ name: "franchiseRootLicenseId",
1035
+ type: "uint256"
1036
+ }],
1037
+ internalType: "struct ILicensingModule.IpAssetConfig",
1038
+ name: "commercialConfig",
1039
+ type: "tuple"
1040
+ }, {
1041
+ components: [{
1042
+ internalType: "contract ITermsProcessor",
1043
+ name: "processor",
1044
+ type: "address"
1045
+ }, {
1046
+ internalType: "bytes",
1047
+ name: "data",
1048
+ type: "bytes"
1049
+ }],
1050
+ internalType: "struct IERC5218.TermsProcessorConfig",
1051
+ name: "commercialTerms",
1052
+ type: "tuple"
1053
+ }, {
1054
+ internalType: "bool",
1055
+ name: "rootIpAssetHasCommercialRights",
1056
+ type: "bool"
1057
+ }, {
1058
+ internalType: "address",
1059
+ name: "revoker",
1060
+ type: "address"
1061
+ }, {
1062
+ internalType: "string",
1063
+ name: "commercialLicenseUri",
1064
+ type: "string"
1065
+ }],
1066
+ internalType: "struct ILicensingModule.FranchiseConfig",
1067
+ name: "config",
1068
+ type: "tuple"
1069
+ }],
1070
+ name: "configureFranchiseLicensing",
1071
+ outputs: [],
1072
+ stateMutability: "nonpayable",
1073
+ type: "function"
1074
+ }];
1075
+ var LicensingModule__factory = /*#__PURE__*/function () {
1076
+ function LicensingModule__factory() {
1077
+ _classCallCheck(this, LicensingModule__factory);
1078
+ }
1079
+ _createClass(LicensingModule__factory, null, [{
1080
+ key: "createInterface",
1081
+ value: function createInterface() {
1082
+ return new utils.Interface(_abi$4);
763
1083
  }
764
1084
  }, {
765
1085
  key: "connect",
766
1086
  value: function connect(address, signerOrProvider) {
767
- return new Contract(address, _abi$3, signerOrProvider);
1087
+ return new Contract(address, _abi$4, signerOrProvider);
768
1088
  }
769
1089
  }]);
770
- return FranchiseRegistry__factory;
1090
+ return LicensingModule__factory;
771
1091
  }();
772
- _defineProperty(FranchiseRegistry__factory, "abi", _abi$3);
1092
+ _defineProperty(LicensingModule__factory, "abi", _abi$4);
773
1093
 
774
- var _abi$2 = [{
1094
+ var _abi$3 = [{
775
1095
  inputs: [{
776
1096
  components: [{
777
1097
  internalType: "uint256",
@@ -820,6 +1140,75 @@ var CollectModule__factory = /*#__PURE__*/function () {
820
1140
  _classCallCheck(this, CollectModule__factory);
821
1141
  }
822
1142
  _createClass(CollectModule__factory, null, [{
1143
+ key: "createInterface",
1144
+ value: function createInterface() {
1145
+ return new utils.Interface(_abi$3);
1146
+ }
1147
+ }, {
1148
+ key: "connect",
1149
+ value: function connect(address, signerOrProvider) {
1150
+ return new Contract(address, _abi$3, signerOrProvider);
1151
+ }
1152
+ }]);
1153
+ return CollectModule__factory;
1154
+ }();
1155
+ _defineProperty(CollectModule__factory, "abi", _abi$3);
1156
+
1157
+ var _abi$2 = [{
1158
+ inputs: [{
1159
+ components: [{
1160
+ internalType: "string",
1161
+ name: "name",
1162
+ type: "string"
1163
+ }, {
1164
+ internalType: "string",
1165
+ name: "symbol",
1166
+ type: "string"
1167
+ }, {
1168
+ internalType: "string",
1169
+ name: "description",
1170
+ type: "string"
1171
+ }, {
1172
+ internalType: "string",
1173
+ name: "tokenURI",
1174
+ type: "string"
1175
+ }],
1176
+ internalType: "struct FranchiseRegistry.FranchiseCreationParams",
1177
+ name: "params",
1178
+ type: "tuple"
1179
+ }],
1180
+ name: "registerFranchise",
1181
+ outputs: [{
1182
+ internalType: "uint256",
1183
+ name: "",
1184
+ type: "uint256"
1185
+ }, {
1186
+ internalType: "address",
1187
+ name: "",
1188
+ type: "address"
1189
+ }],
1190
+ stateMutability: "nonpayable",
1191
+ type: "function"
1192
+ }, {
1193
+ inputs: [{
1194
+ internalType: "uint256",
1195
+ name: "franchiseId",
1196
+ type: "uint256"
1197
+ }],
1198
+ name: "ipAssetRegistryForId",
1199
+ outputs: [{
1200
+ internalType: "address",
1201
+ name: "",
1202
+ type: "address"
1203
+ }],
1204
+ stateMutability: "view",
1205
+ type: "function"
1206
+ }];
1207
+ var FranchiseRegistry__factory = /*#__PURE__*/function () {
1208
+ function FranchiseRegistry__factory() {
1209
+ _classCallCheck(this, FranchiseRegistry__factory);
1210
+ }
1211
+ _createClass(FranchiseRegistry__factory, null, [{
823
1212
  key: "createInterface",
824
1213
  value: function createInterface() {
825
1214
  return new utils.Interface(_abi$2);
@@ -830,9 +1219,9 @@ var CollectModule__factory = /*#__PURE__*/function () {
830
1219
  return new Contract(address, _abi$2, signerOrProvider);
831
1220
  }
832
1221
  }]);
833
- return CollectModule__factory;
1222
+ return FranchiseRegistry__factory;
834
1223
  }();
835
- _defineProperty(CollectModule__factory, "abi", _abi$2);
1224
+ _defineProperty(FranchiseRegistry__factory, "abi", _abi$2);
836
1225
 
837
1226
  var _abi$1 = [{
838
1227
  inputs: [{
@@ -1144,25 +1533,22 @@ var RelationshipModule__factory = /*#__PURE__*/function () {
1144
1533
  _defineProperty(RelationshipModule__factory, "abi", _abi);
1145
1534
 
1146
1535
  /**
1147
- * A class representing License operations.
1148
- *
1149
- * @public
1536
+ * IpAssetClient allows you to create, view, and list IP Assets on Story Protocol.
1150
1537
  */
1151
- var LicenseClient = /*#__PURE__*/function () {
1152
- function LicenseClient(httpClient, signer, franchiseRegistry) {
1153
- _classCallCheck(this, LicenseClient);
1538
+ var IPAssetReadOnlyClient = /*#__PURE__*/function () {
1539
+ function IPAssetReadOnlyClient(httpClient, franchiseRegistry) {
1540
+ _classCallCheck(this, IPAssetReadOnlyClient);
1154
1541
  this.httpClient = httpClient;
1155
- this.signer = signer;
1156
1542
  this.franchiseRegistry = franchiseRegistry;
1157
1543
  }
1158
1544
 
1159
1545
  /**
1160
- * Get a license by its ID.
1546
+ * Get an IP Asset based on the specified IP asset ID.
1161
1547
  *
1162
- * @param licenseId - The ID of the license to retrieve.
1163
- * @returns A Promise that resolves to the GetLicenseResponse.
1548
+ * @param request - the request object for getting an IP Asset.
1549
+ * @returns the response object the contains the fetched IP Asset.
1164
1550
  */
1165
- _createClass(LicenseClient, [{
1551
+ _createClass(IPAssetReadOnlyClient, [{
1166
1552
  key: "get",
1167
1553
  value: function () {
1168
1554
  var _get = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(request) {
@@ -1171,21 +1557,21 @@ var LicenseClient = /*#__PURE__*/function () {
1171
1557
  while (1) switch (_context.prev = _context.next) {
1172
1558
  case 0:
1173
1559
  _context.prev = 0;
1174
- if (isIntegerString(request.licenseId)) {
1560
+ if (isIntegerString(request.ipAssetId)) {
1175
1561
  _context.next = 3;
1176
1562
  break;
1177
1563
  }
1178
- throw new Error("Invalid licenseId. Must be an integer. But got: ".concat(request.licenseId));
1564
+ throw new Error("Invalid IP Asset id. Must be an integer. But get: ".concat(request.ipAssetId));
1179
1565
  case 3:
1180
1566
  _context.next = 5;
1181
- return this.httpClient.get("/license/".concat(request.licenseId));
1567
+ return this.httpClient.get("/ipasset/".concat(request.ipAssetId, "?franchiseId=").concat(request.franchiseId));
1182
1568
  case 5:
1183
1569
  response = _context.sent;
1184
1570
  return _context.abrupt("return", response.data);
1185
1571
  case 9:
1186
1572
  _context.prev = 9;
1187
1573
  _context.t0 = _context["catch"](0);
1188
- handleError(_context.t0, "Failed to get license");
1574
+ handleError(_context.t0, "Failed to get IP Asset");
1189
1575
  case 12:
1190
1576
  case "end":
1191
1577
  return _context.stop();
@@ -1198,9 +1584,9 @@ var LicenseClient = /*#__PURE__*/function () {
1198
1584
  return get;
1199
1585
  }()
1200
1586
  /**
1201
- * List all licenses.
1587
+ * List all IP assets.
1202
1588
  *
1203
- * @returns A Promise that resolves to the ListLicenseResponse.
1589
+ * @returns the response object that contains results from listing query.
1204
1590
  */
1205
1591
  }, {
1206
1592
  key: "list",
@@ -1212,14 +1598,14 @@ var LicenseClient = /*#__PURE__*/function () {
1212
1598
  case 0:
1213
1599
  _context2.prev = 0;
1214
1600
  _context2.next = 3;
1215
- return this.httpClient.get("/license?franchiseId=".concat(request.franchiseId, "&ipAssetId=").concat(request.ipAssetId));
1601
+ return this.httpClient.get("/ipasset?franchiseId=".concat(request.franchiseId));
1216
1602
  case 3:
1217
1603
  response = _context2.sent;
1218
1604
  return _context2.abrupt("return", response.data);
1219
1605
  case 7:
1220
1606
  _context2.prev = 7;
1221
1607
  _context2.t0 = _context2["catch"](0);
1222
- handleError(_context2.t0, "Failed to get licenses");
1608
+ handleError(_context2.t0, "Failed to list IP Asset.");
1223
1609
  case 10:
1224
1610
  case "end":
1225
1611
  return _context2.stop();
@@ -1231,634 +1617,399 @@ var LicenseClient = /*#__PURE__*/function () {
1231
1617
  }
1232
1618
  return list;
1233
1619
  }()
1234
- /**
1235
- * Create a license within the Story Protocol based on the specified input data.
1236
- *
1237
- * @param request - An object containing the necessary data to create a license.
1238
- * @returns A response object containing the result of the create license action, including the transaction hash.
1239
- */
1240
- }, {
1241
- key: "create",
1242
- value: function () {
1243
- var _create = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(request) {
1244
- var defaults, franchiseId, ipAssetId, licenseURI, options, walletAddress, ipAssetRegistryAddress, ipAssetRegistry, parentLicenseId, createResponse;
1245
- return _regeneratorRuntime().wrap(function _callee3$(_context3) {
1246
- while (1) switch (_context3.prev = _context3.next) {
1247
- case 0:
1248
- _context3.prev = 0;
1249
- defaults = {
1250
- _tokenId: 0,
1251
- // Assuming BigNumberish can be initialized with 0
1252
- _parentLicenseId: "0",
1253
- _licenseHolder: "0x8e3B91c90561523312f32B49DAAc4AD15293De7F",
1254
- // An empty string for a default holder address
1255
- _uri: "https://example.xyz",
1256
- // An empty string for a default URI
1257
- _revoker: "0x8e3B91c90561523312f32B49DAAc4AD15293De7F",
1258
- // An empty string for a default revoker address
1259
- _commercial: false,
1260
- // Default to non-commercial
1261
- _canSublicense: false,
1262
- // Default to not allowing sublicense
1263
- _terms: {
1264
- processor: constants.AddressZero,
1265
- data: []
1266
- },
1267
- overrides: {
1268
- // Assuming overrides is an object with properties from and gasLimit
1269
- // You may need to provide default values for its properties as well
1270
- }
1271
- };
1272
- franchiseId = request.franchiseId, ipAssetId = request.ipAssetId, licenseURI = request.licenseURI, options = request.options; // Get Wallet address from Signer
1273
- _context3.next = 5;
1274
- return this.signer.getAddress();
1275
- case 5:
1276
- walletAddress = _context3.sent;
1277
- _context3.next = 8;
1278
- return this.franchiseRegistry.ipAssetRegistryForId(franchiseId);
1279
- case 8:
1280
- ipAssetRegistryAddress = _context3.sent;
1281
- // Connect to IPAssetRegistry Contract
1282
- ipAssetRegistry = IpAssetRegistry__factory.connect(ipAssetRegistryAddress, this.signer); // Get parent license Id
1283
- _context3.next = 12;
1284
- return ipAssetRegistry.getLicenseIdByTokenId(ipAssetId, (options === null || options === void 0 ? void 0 : options.isCommercial) || defaults._commercial);
1285
- case 12:
1286
- parentLicenseId = _context3.sent;
1287
- _context3.next = 15;
1288
- return ipAssetRegistry.createLicense(ipAssetId, parentLicenseId, walletAddress, licenseURI, (options === null || options === void 0 ? void 0 : options.revoker) || defaults._revoker, (options === null || options === void 0 ? void 0 : options.isCommercial) || defaults._commercial, (options === null || options === void 0 ? void 0 : options.isSublicensable) || defaults._canSublicense, (options === null || options === void 0 ? void 0 : options.terms) || defaults._terms);
1289
- case 15:
1290
- createResponse = _context3.sent;
1291
- return _context3.abrupt("return", {
1292
- txHash: createResponse.hash
1293
- });
1294
- case 19:
1295
- _context3.prev = 19;
1296
- _context3.t0 = _context3["catch"](0);
1297
- handleError(_context3.t0, "Failed to create license");
1298
- case 22:
1299
- case "end":
1300
- return _context3.stop();
1301
- }
1302
- }, _callee3, this, [[0, 19]]);
1303
- }));
1304
- function create(_x3) {
1305
- return _create.apply(this, arguments);
1306
- }
1307
- return create;
1308
- }()
1309
1620
  }]);
1310
- return LicenseClient;
1621
+ return IPAssetReadOnlyClient;
1311
1622
  }();
1312
1623
 
1313
1624
  /**
1314
- * TransactionClient allows you to view and monitor transactions on
1315
- * Story Protocol.
1625
+ * IpAssetClient allows you to create, view, and list IP Assets on Story Protocol.
1316
1626
  */
1317
- var TransactionClient = /*#__PURE__*/function () {
1318
- function TransactionClient(httpClient) {
1319
- _classCallCheck(this, TransactionClient);
1320
- this.httpClient = httpClient;
1627
+ var IPAssetClient = /*#__PURE__*/function (_IPAssetReadOnlyClien) {
1628
+ _inherits(IPAssetClient, _IPAssetReadOnlyClien);
1629
+ var _super = _createSuper(IPAssetClient);
1630
+ function IPAssetClient(httpClient, franchiseRegistry, signer) {
1631
+ var _this;
1632
+ _classCallCheck(this, IPAssetClient);
1633
+ _this = _super.call(this, httpClient, franchiseRegistry);
1634
+ _this.signer = signer;
1635
+ return _this;
1321
1636
  }
1322
1637
 
1323
1638
  /**
1324
- * Get transaction data based on the specified transaction id.
1639
+ * Get the ipAssetRegistry associated with a franchiseId.
1325
1640
  *
1326
- * @param request - the request object for getting the transaction
1327
- * @returns the response object that contains the fetched transaction object
1641
+ * @returns the response object that contains the requested ipAssetRegistry.
1328
1642
  */
1329
- _createClass(TransactionClient, [{
1330
- key: "get",
1643
+ _createClass(IPAssetClient, [{
1644
+ key: "getRegistry",
1331
1645
  value: function () {
1332
- var _get = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(request) {
1333
- var response;
1646
+ var _getRegistry = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(franchiseId) {
1647
+ var address, ipAssetRegistry;
1334
1648
  return _regeneratorRuntime().wrap(function _callee$(_context) {
1335
1649
  while (1) switch (_context.prev = _context.next) {
1336
1650
  case 0:
1337
1651
  _context.prev = 0;
1338
1652
  _context.next = 3;
1339
- return this.httpClient.get("/transaction/".concat(request.txId));
1653
+ return this.franchiseRegistry.ipAssetRegistryForId(franchiseId);
1340
1654
  case 3:
1341
- response = _context.sent;
1342
- return _context.abrupt("return", response.data);
1343
- case 7:
1344
- _context.prev = 7;
1655
+ address = _context.sent;
1656
+ ipAssetRegistry = IpAssetRegistry__factory.connect(address, this.signer);
1657
+ return _context.abrupt("return", ipAssetRegistry);
1658
+ case 8:
1659
+ _context.prev = 8;
1345
1660
  _context.t0 = _context["catch"](0);
1346
- handleError(_context.t0, "Failed to get transaction");
1347
- case 10:
1661
+ handleError(_context.t0, "Failed to retrieve IP Asset Registry");
1662
+ case 11:
1348
1663
  case "end":
1349
1664
  return _context.stop();
1350
1665
  }
1351
- }, _callee, this, [[0, 7]]);
1666
+ }, _callee, this, [[0, 8]]);
1352
1667
  }));
1353
- function get(_x) {
1354
- return _get.apply(this, arguments);
1668
+ function getRegistry(_x) {
1669
+ return _getRegistry.apply(this, arguments);
1355
1670
  }
1356
- return get;
1671
+ return getRegistry;
1357
1672
  }()
1358
1673
  /**
1359
- * Get transaction data based on the specified transaction id.
1674
+ * Create an IP Asset on Story Protocol based on the specified input asset data.
1360
1675
  *
1361
- * @param request - the request object for getting the transactions
1362
- * @returns the response object that contains the fetched transaction object
1676
+ * @param request - the request object that contains all data needed to create an IP Asset.
1677
+ * @returns the response object that contains results from the asset creation.
1363
1678
  */
1364
1679
  }, {
1365
- key: "list",
1680
+ key: "create",
1366
1681
  value: function () {
1367
- var _list = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
1368
- var response;
1682
+ var _create = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(request) {
1683
+ var franchiseId, ipAssetRegistry, response;
1369
1684
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
1370
1685
  while (1) switch (_context2.prev = _context2.next) {
1371
1686
  case 0:
1372
1687
  _context2.prev = 0;
1373
- _context2.next = 3;
1374
- return this.httpClient.get("/transaction");
1375
- case 3:
1376
- response = _context2.sent;
1377
- return _context2.abrupt("return", response.data);
1378
- case 7:
1379
- _context2.prev = 7;
1380
- _context2.t0 = _context2["catch"](0);
1381
- handleError(_context2.t0, "Failed to get transactions");
1382
- case 10:
1383
- case "end":
1384
- return _context2.stop();
1385
- }
1386
- }, _callee2, this, [[0, 7]]);
1387
- }));
1388
- function list() {
1389
- return _list.apply(this, arguments);
1390
- }
1391
- return list;
1392
- }()
1393
- }]);
1394
- return TransactionClient;
1395
- }();
1396
-
1397
- /**
1398
- * Client for managing relationships.
1399
- */
1400
- var RelationshipClient = /*#__PURE__*/function () {
1401
- /**
1402
- * Creates a new RelationshipClient instance.
1403
- * @param relationshipModule - The relationship module to interact with.
1404
- * @param franchiseRegistry - The franchise registry to interact with.
1405
- */
1406
- function RelationshipClient(relationshipModule, franchiseRegistry) {
1407
- _classCallCheck(this, RelationshipClient);
1408
- this.relationshipModule = relationshipModule;
1409
- this.franchiseRegistry = franchiseRegistry;
1410
- }
1411
-
1412
- /**
1413
- * Retrieves the registry addresses for source and destination franchises.
1414
- * @param sourceFranchiseId - The ID of the source franchise.
1415
- * @param destFranchiseId - The ID of the destination franchise.
1416
- * @returns An object containing the source and destination IP registry addresses.
1417
- */
1418
- _createClass(RelationshipClient, [{
1419
- key: "getRegistryAddresses",
1420
- value: function () {
1421
- var _getRegistryAddresses = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(sourceFranchiseId, destFranchiseId) {
1422
- var sourceIpRegistryAddress, destIpRegistryAddress;
1423
- return _regeneratorRuntime().wrap(function _callee$(_context) {
1424
- while (1) switch (_context.prev = _context.next) {
1425
- case 0:
1426
- _context.prev = 0;
1427
- _context.next = 3;
1428
- return this.franchiseRegistry.ipAssetRegistryForId(sourceFranchiseId);
1429
- case 3:
1430
- sourceIpRegistryAddress = _context.sent;
1431
- _context.next = 6;
1432
- return this.franchiseRegistry.ipAssetRegistryForId(destFranchiseId);
1688
+ franchiseId = request.franchiseId;
1689
+ if (isIntegerString(franchiseId)) {
1690
+ _context2.next = 4;
1691
+ break;
1692
+ }
1693
+ throw new Error("Invalid franchise ID for IP asset creation. Must be an integer, but got: ".concat(request.franchiseId));
1694
+ case 4:
1695
+ _context2.next = 6;
1696
+ return this.getRegistry(franchiseId);
1433
1697
  case 6:
1434
- destIpRegistryAddress = _context.sent;
1435
- return _context.abrupt("return", {
1436
- sourceIpRegistryAddress: sourceIpRegistryAddress,
1437
- destIpRegistryAddress: destIpRegistryAddress
1438
- });
1439
- case 10:
1440
- _context.prev = 10;
1441
- _context.t0 = _context["catch"](0);
1442
- handleError(_context.t0, "Failed to get registry addresses");
1443
- case 13:
1444
- case "end":
1445
- return _context.stop();
1446
- }
1447
- }, _callee, this, [[0, 10]]);
1448
- }));
1449
- function getRegistryAddresses(_x, _x2) {
1450
- return _getRegistryAddresses.apply(this, arguments);
1451
- }
1452
- return getRegistryAddresses;
1453
- }()
1454
- /**
1455
- * Establishes a relationship between two IP assets.
1456
- * @param request - The request for establishing the relationship.
1457
- * @returns A promise that resolves to the response with the transaction hash.
1458
- */
1459
- }, {
1460
- key: "relate",
1461
- value: function () {
1462
- var _relate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(request) {
1463
- var sourceIPAsset, destIPAsset, mockRelationshipData, _yield$this$getRegist, sourceIpRegistryAddress, destIpRegistryAddress, relationshipId, params, response;
1464
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
1465
- while (1) switch (_context2.prev = _context2.next) {
1466
- case 0:
1467
- _context2.prev = 0;
1468
- sourceIPAsset = request.sourceIPAsset, destIPAsset = request.destIPAsset;
1469
- mockRelationshipData = ethers.utils.formatBytes32String(""); // Get IPAssetRegistry Contract Address
1470
- _context2.next = 5;
1471
- return this.getRegistryAddresses(sourceIPAsset.franchiseId, destIPAsset.franchiseId);
1472
- case 5:
1473
- _yield$this$getRegist = _context2.sent;
1474
- sourceIpRegistryAddress = _yield$this$getRegist.sourceIpRegistryAddress;
1475
- destIpRegistryAddress = _yield$this$getRegist.destIpRegistryAddress;
1476
- _context2.next = 10;
1477
- return this.relationshipModule.getRelationshipId("APPEARS_IN");
1478
- case 10:
1479
- relationshipId = _context2.sent;
1480
- params = {
1481
- sourceContract: sourceIpRegistryAddress,
1482
- sourceId: sourceIPAsset.ipAssetId,
1483
- destContract: destIpRegistryAddress,
1484
- destId: destIPAsset.ipAssetId,
1485
- relationshipId: relationshipId,
1486
- ttl: "0"
1487
- };
1488
- _context2.next = 14;
1489
- return this.relationshipModule.relate(params, mockRelationshipData);
1490
- case 14:
1698
+ ipAssetRegistry = _context2.sent;
1699
+ _context2.next = 9;
1700
+ return ipAssetRegistry.createIPAsset(request.ipAssetType, request.ipAssetName, request.description, request.mediaUrl, request.to, request.parentIpAssetId);
1701
+ case 9:
1491
1702
  response = _context2.sent;
1492
1703
  return _context2.abrupt("return", {
1493
1704
  txHash: response.hash
1494
1705
  });
1495
- case 18:
1496
- _context2.prev = 18;
1706
+ case 13:
1707
+ _context2.prev = 13;
1497
1708
  _context2.t0 = _context2["catch"](0);
1498
- handleError(_context2.t0, "Failed to create relationship");
1499
- case 21:
1709
+ handleError(_context2.t0, "Failed to create IP Asset");
1710
+ case 16:
1500
1711
  case "end":
1501
1712
  return _context2.stop();
1502
1713
  }
1503
- }, _callee2, this, [[0, 18]]);
1714
+ }, _callee2, this, [[0, 13]]);
1504
1715
  }));
1505
- function relate(_x3) {
1506
- return _relate.apply(this, arguments);
1716
+ function create(_x2) {
1717
+ return _create.apply(this, arguments);
1507
1718
  }
1508
- return relate;
1719
+ return create;
1509
1720
  }()
1510
- /**
1511
- * Removes a relationship between two IP assets.
1512
- * @param request - The request for removing the relationship.
1513
- * @returns A promise that resolves to the response with the transaction hash.
1514
- */
1515
- }, {
1516
- key: "unrelate",
1721
+ }]);
1722
+ return IPAssetClient;
1723
+ }(IPAssetReadOnlyClient);
1724
+
1725
+ /**
1726
+ * A class representing License operations.
1727
+ *
1728
+ * @public
1729
+ */
1730
+ var LicenseReadOnlyClient = /*#__PURE__*/function () {
1731
+ function LicenseReadOnlyClient(httpClient, franchiseRegistry) {
1732
+ _classCallCheck(this, LicenseReadOnlyClient);
1733
+ this.httpClient = httpClient;
1734
+ this.franchiseRegistry = franchiseRegistry;
1735
+ }
1736
+
1737
+ /**
1738
+ * Get a license by its ID.
1739
+ *
1740
+ * @param licenseId - The ID of the license to retrieve.
1741
+ * @returns A Promise that resolves to the GetLicenseResponse.
1742
+ */
1743
+ _createClass(LicenseReadOnlyClient, [{
1744
+ key: "get",
1517
1745
  value: function () {
1518
- var _unrelate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(request) {
1519
- var sourceIPAsset, destIPAsset, _yield$this$getRegist2, sourceIpRegistryAddress, destIpRegistryAddress, relationshipId, params, response;
1520
- return _regeneratorRuntime().wrap(function _callee3$(_context3) {
1521
- while (1) switch (_context3.prev = _context3.next) {
1746
+ var _get = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(request) {
1747
+ var response;
1748
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
1749
+ while (1) switch (_context.prev = _context.next) {
1522
1750
  case 0:
1523
- _context3.prev = 0;
1524
- sourceIPAsset = request.sourceIPAsset, destIPAsset = request.destIPAsset; // Get IPAssetRegistry Contract Address
1525
- _context3.next = 4;
1526
- return this.getRegistryAddresses(sourceIPAsset.franchiseId, destIPAsset.franchiseId);
1527
- case 4:
1528
- _yield$this$getRegist2 = _context3.sent;
1529
- sourceIpRegistryAddress = _yield$this$getRegist2.sourceIpRegistryAddress;
1530
- destIpRegistryAddress = _yield$this$getRegist2.destIpRegistryAddress;
1531
- _context3.next = 9;
1532
- return this.relationshipModule.getRelationshipId("APPEARS_IN");
1751
+ _context.prev = 0;
1752
+ if (isIntegerString(request.licenseId)) {
1753
+ _context.next = 3;
1754
+ break;
1755
+ }
1756
+ throw new Error("Invalid licenseId. Must be an integer. But got: ".concat(request.licenseId));
1757
+ case 3:
1758
+ _context.next = 5;
1759
+ return this.httpClient.get("/license/".concat(request.licenseId));
1760
+ case 5:
1761
+ response = _context.sent;
1762
+ return _context.abrupt("return", response.data);
1533
1763
  case 9:
1534
- relationshipId = _context3.sent;
1535
- params = {
1536
- sourceContract: sourceIpRegistryAddress,
1537
- sourceId: sourceIPAsset.ipAssetId,
1538
- destContract: destIpRegistryAddress,
1539
- destId: destIPAsset.ipAssetId,
1540
- relationshipId: relationshipId,
1541
- ttl: "0"
1542
- };
1543
- _context3.next = 13;
1544
- return this.relationshipModule.unrelate(params);
1545
- case 13:
1546
- response = _context3.sent;
1547
- return _context3.abrupt("return", {
1548
- txHash: response.hash
1549
- });
1550
- case 17:
1551
- _context3.prev = 17;
1552
- _context3.t0 = _context3["catch"](0);
1553
- handleError(_context3.t0, "Failed to unrelate relationship");
1554
- case 20:
1764
+ _context.prev = 9;
1765
+ _context.t0 = _context["catch"](0);
1766
+ handleError(_context.t0, "Failed to get license");
1767
+ case 12:
1555
1768
  case "end":
1556
- return _context3.stop();
1769
+ return _context.stop();
1557
1770
  }
1558
- }, _callee3, this, [[0, 17]]);
1771
+ }, _callee, this, [[0, 9]]);
1559
1772
  }));
1560
- function unrelate(_x4) {
1561
- return _unrelate.apply(this, arguments);
1773
+ function get(_x) {
1774
+ return _get.apply(this, arguments);
1562
1775
  }
1563
- return unrelate;
1776
+ return get;
1564
1777
  }()
1565
1778
  /**
1566
- * Checks if a relationship has expired.
1567
- * @param request - The request for checking the relationship's expiration status.
1568
- * @returns A promise that resolves to the response indicating whether the relationship has expired.
1779
+ * List all licenses.
1780
+ *
1781
+ * @returns A Promise that resolves to the ListLicenseResponse.
1569
1782
  */
1570
1783
  }, {
1571
- key: "isRelationshipExpired",
1784
+ key: "list",
1572
1785
  value: function () {
1573
- var _isRelationshipExpired = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(request) {
1574
- var sourceIPAsset, destIPAsset, _yield$this$getRegist3, sourceIpRegistryAddress, destIpRegistryAddress, relationshipId, params, response;
1575
- return _regeneratorRuntime().wrap(function _callee4$(_context4) {
1576
- while (1) switch (_context4.prev = _context4.next) {
1786
+ var _list = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(request) {
1787
+ var response;
1788
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
1789
+ while (1) switch (_context2.prev = _context2.next) {
1577
1790
  case 0:
1578
- _context4.prev = 0;
1579
- sourceIPAsset = request.sourceIPAsset, destIPAsset = request.destIPAsset; // Get IPAssetRegistry Contract Address
1580
- _context4.next = 4;
1581
- return this.getRegistryAddresses(sourceIPAsset.franchiseId, destIPAsset.franchiseId);
1582
- case 4:
1583
- _yield$this$getRegist3 = _context4.sent;
1584
- sourceIpRegistryAddress = _yield$this$getRegist3.sourceIpRegistryAddress;
1585
- destIpRegistryAddress = _yield$this$getRegist3.destIpRegistryAddress;
1586
- _context4.next = 9;
1587
- return this.relationshipModule.getRelationshipId("APPEARS_IN");
1588
- case 9:
1589
- relationshipId = _context4.sent;
1590
- params = {
1591
- sourceContract: sourceIpRegistryAddress,
1592
- sourceId: sourceIPAsset.ipAssetId,
1593
- destContract: destIpRegistryAddress,
1594
- destId: destIPAsset.ipAssetId,
1595
- relationshipId: relationshipId,
1596
- ttl: "0"
1597
- };
1598
- _context4.next = 13;
1599
- return this.relationshipModule.isRelationshipExpired(params);
1600
- case 13:
1601
- response = _context4.sent;
1602
- return _context4.abrupt("return", {
1603
- result: response
1604
- });
1605
- case 17:
1606
- _context4.prev = 17;
1607
- _context4.t0 = _context4["catch"](0);
1608
- handleError(_context4.t0, "Failed to get isRelationshipExpired");
1609
- case 20:
1791
+ _context2.prev = 0;
1792
+ _context2.next = 3;
1793
+ return this.httpClient.get("/license?franchiseId=".concat(request.franchiseId, "&ipAssetId=").concat(request.ipAssetId));
1794
+ case 3:
1795
+ response = _context2.sent;
1796
+ return _context2.abrupt("return", response.data);
1797
+ case 7:
1798
+ _context2.prev = 7;
1799
+ _context2.t0 = _context2["catch"](0);
1800
+ handleError(_context2.t0, "Failed to get licenses");
1801
+ case 10:
1610
1802
  case "end":
1611
- return _context4.stop();
1803
+ return _context2.stop();
1612
1804
  }
1613
- }, _callee4, this, [[0, 17]]);
1805
+ }, _callee2, this, [[0, 7]]);
1614
1806
  }));
1615
- function isRelationshipExpired(_x5) {
1616
- return _isRelationshipExpired.apply(this, arguments);
1807
+ function list(_x2) {
1808
+ return _list.apply(this, arguments);
1617
1809
  }
1618
- return isRelationshipExpired;
1810
+ return list;
1619
1811
  }()
1620
- /**
1621
- * Checks if two IP assets are related.
1622
- * @param request - The request for checking the relationship between two IP assets.
1623
- * @returns A promise that resolves to the response indicating whether the IP assets are related.
1624
- */
1625
- }, {
1626
- key: "isRelated",
1812
+ }]);
1813
+ return LicenseReadOnlyClient;
1814
+ }();
1815
+
1816
+ /**
1817
+ * A class representing License operations.
1818
+ *
1819
+ * @public
1820
+ */
1821
+ var LicenseClient = /*#__PURE__*/function (_LicenseReadOnlyClien) {
1822
+ _inherits(LicenseClient, _LicenseReadOnlyClien);
1823
+ var _super = _createSuper(LicenseClient);
1824
+ function LicenseClient(httpClient, signer, franchiseRegistry) {
1825
+ var _this;
1826
+ _classCallCheck(this, LicenseClient);
1827
+ _this = _super.call(this, httpClient, franchiseRegistry);
1828
+ _this.signer = signer;
1829
+ return _this;
1830
+ }
1831
+
1832
+ /**
1833
+ * Create a license within the Story Protocol based on the specified input data.
1834
+ *
1835
+ * @param request - An object containing the necessary data to create a license.
1836
+ * @returns A response object containing the result of the create license action, including the transaction hash.
1837
+ */
1838
+ _createClass(LicenseClient, [{
1839
+ key: "create",
1627
1840
  value: function () {
1628
- var _isRelated = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(request) {
1629
- var sourceIPAsset, destIPAsset, _yield$this$getRegist4, sourceIpRegistryAddress, destIpRegistryAddress, relationshipId, params, response;
1630
- return _regeneratorRuntime().wrap(function _callee5$(_context5) {
1631
- while (1) switch (_context5.prev = _context5.next) {
1841
+ var _create = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(request) {
1842
+ var defaults, franchiseId, ipAssetId, licenseURI, options, walletAddress, ipAssetRegistryAddress, ipAssetRegistry, parentLicenseId, createResponse;
1843
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
1844
+ while (1) switch (_context.prev = _context.next) {
1632
1845
  case 0:
1633
- _context5.prev = 0;
1634
- sourceIPAsset = request.sourceIPAsset, destIPAsset = request.destIPAsset; // Get IPAssetRegistry Contract Address
1635
- _context5.next = 4;
1636
- return this.getRegistryAddresses(sourceIPAsset.franchiseId, destIPAsset.franchiseId);
1637
- case 4:
1638
- _yield$this$getRegist4 = _context5.sent;
1639
- sourceIpRegistryAddress = _yield$this$getRegist4.sourceIpRegistryAddress;
1640
- destIpRegistryAddress = _yield$this$getRegist4.destIpRegistryAddress;
1641
- _context5.next = 9;
1642
- return this.relationshipModule.getRelationshipId("APPEARS_IN");
1643
- case 9:
1644
- relationshipId = _context5.sent;
1645
- params = {
1646
- sourceContract: sourceIpRegistryAddress,
1647
- sourceId: sourceIPAsset.ipAssetId,
1648
- destContract: destIpRegistryAddress,
1649
- destId: destIPAsset.ipAssetId,
1650
- relationshipId: relationshipId,
1651
- ttl: "0"
1846
+ _context.prev = 0;
1847
+ defaults = {
1848
+ _tokenId: 0,
1849
+ // Assuming BigNumberish can be initialized with 0
1850
+ _parentLicenseId: "0",
1851
+ _licenseHolder: "0x8e3B91c90561523312f32B49DAAc4AD15293De7F",
1852
+ // An empty string for a default holder address
1853
+ _uri: "https://example.xyz",
1854
+ // An empty string for a default URI
1855
+ _revoker: "0x8e3B91c90561523312f32B49DAAc4AD15293De7F",
1856
+ // An empty string for a default revoker address
1857
+ _commercial: false,
1858
+ // Default to non-commercial
1859
+ _canSublicense: false,
1860
+ // Default to not allowing sublicense
1861
+ _terms: {
1862
+ processor: constants.AddressZero,
1863
+ data: []
1864
+ },
1865
+ overrides: {
1866
+ // Assuming overrides is an object with properties from and gasLimit
1867
+ // You may need to provide default values for its properties as well
1868
+ }
1652
1869
  };
1653
- _context5.next = 13;
1654
- return this.relationshipModule.areTheyRelated(params);
1655
- case 13:
1656
- response = _context5.sent;
1657
- return _context5.abrupt("return", {
1658
- result: response
1870
+ franchiseId = request.franchiseId, ipAssetId = request.ipAssetId, licenseURI = request.licenseURI, options = request.options; // Get Wallet address from Signer
1871
+ _context.next = 5;
1872
+ return this.signer.getAddress();
1873
+ case 5:
1874
+ walletAddress = _context.sent;
1875
+ _context.next = 8;
1876
+ return this.franchiseRegistry.ipAssetRegistryForId(franchiseId);
1877
+ case 8:
1878
+ ipAssetRegistryAddress = _context.sent;
1879
+ // Connect to IPAssetRegistry Contract
1880
+ ipAssetRegistry = IpAssetRegistry__factory.connect(ipAssetRegistryAddress, this.signer); // Get parent license Id
1881
+ _context.next = 12;
1882
+ return ipAssetRegistry.getLicenseIdByTokenId(ipAssetId, (options === null || options === void 0 ? void 0 : options.isCommercial) || defaults._commercial);
1883
+ case 12:
1884
+ parentLicenseId = _context.sent;
1885
+ _context.next = 15;
1886
+ return ipAssetRegistry.createLicense(ipAssetId, parentLicenseId, walletAddress, licenseURI, (options === null || options === void 0 ? void 0 : options.revoker) || defaults._revoker, (options === null || options === void 0 ? void 0 : options.isCommercial) || defaults._commercial, (options === null || options === void 0 ? void 0 : options.isSublicensable) || defaults._canSublicense, (options === null || options === void 0 ? void 0 : options.terms) || defaults._terms);
1887
+ case 15:
1888
+ createResponse = _context.sent;
1889
+ return _context.abrupt("return", {
1890
+ txHash: createResponse.hash
1659
1891
  });
1660
- case 17:
1661
- _context5.prev = 17;
1662
- _context5.t0 = _context5["catch"](0);
1663
- handleError(_context5.t0, "Failed to get isRelated");
1664
- case 20:
1892
+ case 19:
1893
+ _context.prev = 19;
1894
+ _context.t0 = _context["catch"](0);
1895
+ handleError(_context.t0, "Failed to create license");
1896
+ case 22:
1665
1897
  case "end":
1666
- return _context5.stop();
1898
+ return _context.stop();
1667
1899
  }
1668
- }, _callee5, this, [[0, 17]]);
1900
+ }, _callee, this, [[0, 19]]);
1669
1901
  }));
1670
- function isRelated(_x6) {
1671
- return _isRelated.apply(this, arguments);
1902
+ function create(_x) {
1903
+ return _create.apply(this, arguments);
1672
1904
  }
1673
- return isRelated;
1905
+ return create;
1674
1906
  }()
1675
1907
  }]);
1676
- return RelationshipClient;
1677
- }();
1908
+ return LicenseClient;
1909
+ }(LicenseReadOnlyClient);
1678
1910
 
1679
1911
  /**
1680
- * IpAssetClient allows you to create, view, and list IP Assets on Story Protocol.
1912
+ * TransactionClient allows you to view and monitor transactions on
1913
+ * Story Protocol.
1681
1914
  */
1682
- var IPAssetClient = /*#__PURE__*/function () {
1683
- function IPAssetClient(httpClient, franchiseRegistry, signer) {
1684
- _classCallCheck(this, IPAssetClient);
1915
+ var TransactionReadOnlyClient = /*#__PURE__*/function () {
1916
+ function TransactionReadOnlyClient(httpClient) {
1917
+ _classCallCheck(this, TransactionReadOnlyClient);
1685
1918
  this.httpClient = httpClient;
1686
- this.franchiseRegistry = franchiseRegistry;
1687
- this.signer = signer;
1688
1919
  }
1689
1920
 
1690
1921
  /**
1691
- * Get the ipAssetRegistry associated with a franchiseId.
1922
+ * Get transaction data based on the specified transaction id.
1692
1923
  *
1693
- * @returns the response object that contains the requested ipAssetRegistry.
1924
+ * @param request - the request object for getting the transaction
1925
+ * @returns the response object that contains the fetched transaction object
1694
1926
  */
1695
- _createClass(IPAssetClient, [{
1696
- key: "getRegistry",
1927
+ _createClass(TransactionReadOnlyClient, [{
1928
+ key: "get",
1697
1929
  value: function () {
1698
- var _getRegistry = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(franchiseId) {
1699
- var address, ipAssetRegistry;
1930
+ var _get = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(request) {
1931
+ var response;
1700
1932
  return _regeneratorRuntime().wrap(function _callee$(_context) {
1701
1933
  while (1) switch (_context.prev = _context.next) {
1702
1934
  case 0:
1703
1935
  _context.prev = 0;
1704
1936
  _context.next = 3;
1705
- return this.franchiseRegistry.ipAssetRegistryForId(franchiseId);
1937
+ return this.httpClient.get("/transaction/".concat(request.txId));
1706
1938
  case 3:
1707
- address = _context.sent;
1708
- ipAssetRegistry = IpAssetRegistry__factory.connect(address, this.signer);
1709
- return _context.abrupt("return", ipAssetRegistry);
1710
- case 8:
1711
- _context.prev = 8;
1939
+ response = _context.sent;
1940
+ return _context.abrupt("return", response.data);
1941
+ case 7:
1942
+ _context.prev = 7;
1712
1943
  _context.t0 = _context["catch"](0);
1713
- handleError(_context.t0, "Failed to retrieve IP Asset Registry");
1714
- case 11:
1944
+ handleError(_context.t0, "Failed to get transaction");
1945
+ case 10:
1715
1946
  case "end":
1716
1947
  return _context.stop();
1717
1948
  }
1718
- }, _callee, this, [[0, 8]]);
1949
+ }, _callee, this, [[0, 7]]);
1719
1950
  }));
1720
- function getRegistry(_x) {
1721
- return _getRegistry.apply(this, arguments);
1951
+ function get(_x) {
1952
+ return _get.apply(this, arguments);
1722
1953
  }
1723
- return getRegistry;
1954
+ return get;
1724
1955
  }()
1725
1956
  /**
1726
- * Get an IP Asset based on the specified IP asset ID.
1957
+ * Get transaction data based on the specified transaction id.
1727
1958
  *
1728
- * @param request - the request object for getting an IP Asset.
1729
- * @returns the response object the contains the fetched IP Asset.
1959
+ * @param request - the request object for getting the transactions
1960
+ * @returns the response object that contains the fetched transaction object
1730
1961
  */
1731
1962
  }, {
1732
- key: "get",
1963
+ key: "list",
1733
1964
  value: function () {
1734
- var _get = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(request) {
1965
+ var _list = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
1735
1966
  var response;
1736
1967
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
1737
1968
  while (1) switch (_context2.prev = _context2.next) {
1738
1969
  case 0:
1739
1970
  _context2.prev = 0;
1740
- if (isIntegerString(request.ipAssetId)) {
1741
- _context2.next = 3;
1742
- break;
1743
- }
1744
- throw new Error("Invalid IP Asset id. Must be an integer. But get: ".concat(request.ipAssetId));
1971
+ _context2.next = 3;
1972
+ return this.httpClient.get("/transaction");
1745
1973
  case 3:
1746
- _context2.next = 5;
1747
- return this.httpClient.get("/ipasset/".concat(request.ipAssetId, "?franchiseId=").concat(request.franchiseId));
1748
- case 5:
1749
1974
  response = _context2.sent;
1750
1975
  return _context2.abrupt("return", response.data);
1751
- case 9:
1752
- _context2.prev = 9;
1753
- _context2.t0 = _context2["catch"](0);
1754
- handleError(_context2.t0, "Failed to get IP Asset");
1755
- case 12:
1756
- case "end":
1757
- return _context2.stop();
1758
- }
1759
- }, _callee2, this, [[0, 9]]);
1760
- }));
1761
- function get(_x2) {
1762
- return _get.apply(this, arguments);
1763
- }
1764
- return get;
1765
- }()
1766
- /**
1767
- * Create an IP Asset on Story Protocol based on the specified input asset data.
1768
- *
1769
- * @param request - the request object that contains all data needed to create an IP Asset.
1770
- * @returns the response object that contains results from the asset creation.
1771
- */
1772
- }, {
1773
- key: "create",
1774
- value: function () {
1775
- var _create = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(request) {
1776
- var franchiseId, ipAssetRegistry, response;
1777
- return _regeneratorRuntime().wrap(function _callee3$(_context3) {
1778
- while (1) switch (_context3.prev = _context3.next) {
1779
- case 0:
1780
- _context3.prev = 0;
1781
- franchiseId = request.franchiseId;
1782
- if (isIntegerString(franchiseId)) {
1783
- _context3.next = 4;
1784
- break;
1785
- }
1786
- throw new Error("Invalid franchise ID for IP asset creation. Must be an integer, but got: ".concat(request.franchiseId));
1787
- case 4:
1788
- _context3.next = 6;
1789
- return this.getRegistry(franchiseId);
1790
- case 6:
1791
- ipAssetRegistry = _context3.sent;
1792
- _context3.next = 9;
1793
- return ipAssetRegistry.createIPAsset(request.ipAssetType, request.ipAssetName, request.description, request.mediaUrl, request.to, request.parentIpAssetId);
1794
- case 9:
1795
- response = _context3.sent;
1796
- return _context3.abrupt("return", {
1797
- txHash: response.hash
1798
- });
1799
- case 13:
1800
- _context3.prev = 13;
1801
- _context3.t0 = _context3["catch"](0);
1802
- handleError(_context3.t0, "Failed to create IP Asset");
1803
- case 16:
1804
- case "end":
1805
- return _context3.stop();
1806
- }
1807
- }, _callee3, this, [[0, 13]]);
1808
- }));
1809
- function create(_x3) {
1810
- return _create.apply(this, arguments);
1811
- }
1812
- return create;
1813
- }()
1814
- /**
1815
- * List all IP assets.
1816
- *
1817
- * @returns the response object that contains results from listing query.
1818
- */
1819
- }, {
1820
- key: "list",
1821
- value: function () {
1822
- var _list = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(request) {
1823
- var response;
1824
- return _regeneratorRuntime().wrap(function _callee4$(_context4) {
1825
- while (1) switch (_context4.prev = _context4.next) {
1826
- case 0:
1827
- _context4.prev = 0;
1828
- _context4.next = 3;
1829
- return this.httpClient.get("/ipasset?franchiseId=".concat(request.franchiseId));
1830
- case 3:
1831
- response = _context4.sent;
1832
- return _context4.abrupt("return", response.data);
1833
1976
  case 7:
1834
- _context4.prev = 7;
1835
- _context4.t0 = _context4["catch"](0);
1836
- handleError(_context4.t0, "Failed to list IP Asset.");
1977
+ _context2.prev = 7;
1978
+ _context2.t0 = _context2["catch"](0);
1979
+ handleError(_context2.t0, "Failed to get transactions");
1837
1980
  case 10:
1838
1981
  case "end":
1839
- return _context4.stop();
1982
+ return _context2.stop();
1840
1983
  }
1841
- }, _callee4, this, [[0, 7]]);
1984
+ }, _callee2, this, [[0, 7]]);
1842
1985
  }));
1843
- function list(_x4) {
1986
+ function list() {
1844
1987
  return _list.apply(this, arguments);
1845
1988
  }
1846
1989
  return list;
1847
1990
  }()
1848
1991
  }]);
1849
- return IPAssetClient;
1992
+ return TransactionReadOnlyClient;
1850
1993
  }();
1851
1994
 
1852
1995
  /**
1853
- * Default timeout value for http clients.
1996
+ * TransactionClient allows you to view and monitor transactions on
1997
+ * Story Protocol.
1854
1998
  */
1855
- var HTTP_TIMEOUT = 1000;
1999
+ var TransactionClient = /*#__PURE__*/function (_TransactionReadOnlyC) {
2000
+ _inherits(TransactionClient, _TransactionReadOnlyC);
2001
+ var _super = _createSuper(TransactionClient);
2002
+ function TransactionClient(httpClient) {
2003
+ _classCallCheck(this, TransactionClient);
2004
+ return _super.call(this, httpClient);
2005
+ }
2006
+ return _createClass(TransactionClient);
2007
+ }(TransactionReadOnlyClient);
1856
2008
 
1857
- var CollectClient = /*#__PURE__*/function () {
1858
- function CollectClient(httpClient, signer, collectModule) {
1859
- _classCallCheck(this, CollectClient);
2009
+ var CollectReadOnlyClient = /*#__PURE__*/function () {
2010
+ function CollectReadOnlyClient(httpClient, collectModule) {
2011
+ _classCallCheck(this, CollectReadOnlyClient);
1860
2012
  this.httpClient = httpClient;
1861
- this.signer = signer;
1862
2013
  this.collectModuleContract = collectModule;
1863
2014
  }
1864
2015
 
@@ -1867,7 +2018,7 @@ var CollectClient = /*#__PURE__*/function () {
1867
2018
  *
1868
2019
  * @returns A Promise that resolves to the ListLicenseResponse.
1869
2020
  */
1870
- _createClass(CollectClient, [{
2021
+ _createClass(CollectReadOnlyClient, [{
1871
2022
  key: "list",
1872
2023
  value: function () {
1873
2024
  var _list = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(request) {
@@ -1896,22 +2047,37 @@ var CollectClient = /*#__PURE__*/function () {
1896
2047
  }
1897
2048
  return list;
1898
2049
  }()
1899
- /**
1900
- * Collect an IP Asset on Story Protocol based on the specified input collect data.
1901
- *
1902
- * @param request - the request object that contains all data needed to collect an IP Asset
1903
- * @returns the response object that contains results from the create franchise action
1904
- */
1905
- }, {
2050
+ }]);
2051
+ return CollectReadOnlyClient;
2052
+ }();
2053
+
2054
+ var CollectClient = /*#__PURE__*/function (_CollectReadOnlyClien) {
2055
+ _inherits(CollectClient, _CollectReadOnlyClien);
2056
+ var _super = _createSuper(CollectClient);
2057
+ function CollectClient(httpClient, signer, collectModule) {
2058
+ var _this;
2059
+ _classCallCheck(this, CollectClient);
2060
+ _this = _super.call(this, httpClient, collectModule);
2061
+ _this.signer = signer;
2062
+ return _this;
2063
+ }
2064
+
2065
+ /**
2066
+ * Collect an IP Asset on Story Protocol based on the specified input collect data.
2067
+ *
2068
+ * @param request - the request object that contains all data needed to collect an IP Asset
2069
+ * @returns the response object that contains results from the create franchise action
2070
+ */
2071
+ _createClass(CollectClient, [{
1906
2072
  key: "collect",
1907
2073
  value: function () {
1908
- var _collect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(request) {
2074
+ var _collect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(request) {
1909
2075
  var response;
1910
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
1911
- while (1) switch (_context2.prev = _context2.next) {
2076
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
2077
+ while (1) switch (_context.prev = _context.next) {
1912
2078
  case 0:
1913
- _context2.prev = 0;
1914
- _context2.next = 3;
2079
+ _context.prev = 0;
2080
+ _context.next = 3;
1915
2081
  return this.collectModuleContract.collect({
1916
2082
  franchiseId: request.franchiseId,
1917
2083
  ipAssetId: request.ipAssetId,
@@ -1921,28 +2087,33 @@ var CollectClient = /*#__PURE__*/function () {
1921
2087
  collectNFTData: "0x"
1922
2088
  });
1923
2089
  case 3:
1924
- response = _context2.sent;
1925
- return _context2.abrupt("return", {
2090
+ response = _context.sent;
2091
+ return _context.abrupt("return", {
1926
2092
  txHash: response.hash
1927
2093
  });
1928
2094
  case 7:
1929
- _context2.prev = 7;
1930
- _context2.t0 = _context2["catch"](0);
1931
- handleError(_context2.t0, "Failed to collect IP Asset");
2095
+ _context.prev = 7;
2096
+ _context.t0 = _context["catch"](0);
2097
+ handleError(_context.t0, "Failed to collect IP Asset");
1932
2098
  case 10:
1933
2099
  case "end":
1934
- return _context2.stop();
2100
+ return _context.stop();
1935
2101
  }
1936
- }, _callee2, this, [[0, 7]]);
2102
+ }, _callee, this, [[0, 7]]);
1937
2103
  }));
1938
- function collect(_x2) {
2104
+ function collect(_x) {
1939
2105
  return _collect.apply(this, arguments);
1940
2106
  }
1941
2107
  return collect;
1942
2108
  }()
1943
2109
  }]);
1944
2110
  return CollectClient;
1945
- }();
2111
+ }(CollectReadOnlyClient);
2112
+
2113
+ /**
2114
+ * Default timeout value for http clients.
2115
+ */
2116
+ var HTTP_TIMEOUT = 5000;
1946
2117
 
1947
2118
  if (typeof process !== "undefined") {
1948
2119
  dotenv.config();
@@ -1955,17 +2126,21 @@ var StoryClient = /*#__PURE__*/function () {
1955
2126
  * @param config - the configuration for the SDK client
1956
2127
  */
1957
2128
  function StoryClient(config) {
2129
+ var isReadOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1958
2130
  _classCallCheck(this, StoryClient);
2131
+ _defineProperty(this, "isReadOnly", false);
1959
2132
  _defineProperty(this, "_franchise", null);
1960
- _defineProperty(this, "_relationship", null);
1961
- _defineProperty(this, "_ipAsset", null);
1962
2133
  _defineProperty(this, "_license", null);
1963
2134
  _defineProperty(this, "_transaction", null);
2135
+ _defineProperty(this, "_ipAsset", null);
1964
2136
  _defineProperty(this, "_collect", null);
2137
+ _defineProperty(this, "_relationship", null);
1965
2138
  if (config.environment !== Environment.TEST) {
1966
2139
  throw new Error("Invalid Environment: Only TEST environment is supported");
1967
2140
  }
1968
2141
  this.config = config;
2142
+ this.isReadOnly = isReadOnly;
2143
+ this.signerOrProvider = isReadOnly ? this.config.provider || new ethers.providers.JsonRpcProvider() : this.config.signer;
1969
2144
  this.httpClient = axios.create({
1970
2145
  baseURL: process.env.API_BASE_URL || process.env.NEXT_PUBLIC_API_BASE_URL,
1971
2146
  timeout: HTTP_TIMEOUT
@@ -1973,20 +2148,90 @@ var StoryClient = /*#__PURE__*/function () {
1973
2148
  }
1974
2149
 
1975
2150
  /**
1976
- * Getter for the franchise client. The client is lazily created when
1977
- * this method is called.
2151
+ * Factory method for creating a read only SDK client.
1978
2152
  *
1979
- * @returns the FranchiseClient instance
2153
+ * @param config - the configuration for a read only SDK client
1980
2154
  */
1981
2155
  _createClass(StoryClient, [{
2156
+ key: "initFranchise",
2157
+ value: function initFranchise() {
2158
+ var franchiseRegistryContract = process.env.FRANCHISE_REGISTRY_CONTRACT || process.env.NEXT_PUBLIC_FRANCHISE_REGISTRY_CONTRACT;
2159
+ var licenseModuleContract = process.env.LICENSING_MODULE_CONTRACT || process.env.NEXT_PUBLIC_LICENSING_MODULE_CONTRACT;
2160
+ var franchiseRegistry = FranchiseRegistry__factory.connect(franchiseRegistryContract, this.signerOrProvider);
2161
+ var licenseModule = LicensingModule__factory.connect(licenseModuleContract, this.signerOrProvider);
2162
+ if (this.isReadOnly) {
2163
+ this._franchise = new FranchiseReadOnlyClient(this.httpClient, franchiseRegistry, licenseModule);
2164
+ } else {
2165
+ this._franchise = new FranchiseClient(this.httpClient, franchiseRegistry, licenseModule);
2166
+ }
2167
+ }
2168
+ }, {
2169
+ key: "initRelationship",
2170
+ value: function initRelationship() {
2171
+ var franchiseRegistryContract = process.env.FRANCHISE_REGISTRY_CONTRACT || process.env.NEXT_PUBLIC_FRANCHISE_REGISTRY_CONTRACT;
2172
+ var relationshipModuleContract = process.env.RELATIONSHIP_MODULE_CONTRACT || process.env.NEXT_PUBLIC_RELATIONSHIP_MODULE_CONTRACT;
2173
+ var franchiseRegistry = FranchiseRegistry__factory.connect(franchiseRegistryContract, this.signerOrProvider);
2174
+ var relationshipModule = RelationshipModule__factory.connect(relationshipModuleContract, this.signerOrProvider);
2175
+ if (this.isReadOnly) {
2176
+ this._relationship = new RelationshipReadOnlyClient(relationshipModule, franchiseRegistry);
2177
+ } else {
2178
+ this._relationship = new RelationshipClient(relationshipModule, franchiseRegistry);
2179
+ }
2180
+ }
2181
+ }, {
2182
+ key: "initIpAsset",
2183
+ value: function initIpAsset() {
2184
+ var franchiseRegistryContract = process.env.FRANCHISE_REGISTRY_CONTRACT || process.env.NEXT_PUBLIC_FRANCHISE_REGISTRY_CONTRACT;
2185
+ var franchiseRegistry = FranchiseRegistry__factory.connect(franchiseRegistryContract, this.signerOrProvider);
2186
+ if (this.isReadOnly) {
2187
+ this._ipAsset = new IPAssetReadOnlyClient(this.httpClient, franchiseRegistry);
2188
+ } else {
2189
+ this._ipAsset = new IPAssetClient(this.httpClient, franchiseRegistry, this.signerOrProvider);
2190
+ }
2191
+ }
2192
+ }, {
2193
+ key: "initLicense",
2194
+ value: function initLicense() {
2195
+ var franchiseRegistryContract = process.env.FRANCHISE_REGISTRY_CONTRACT || process.env.NEXT_PUBLIC_FRANCHISE_REGISTRY_CONTRACT;
2196
+ var franchiseRegistry = FranchiseRegistry__factory.connect(franchiseRegistryContract, this.signerOrProvider);
2197
+ if (this.isReadOnly) {
2198
+ this._license = new LicenseReadOnlyClient(this.httpClient, franchiseRegistry);
2199
+ } else {
2200
+ this._license = new LicenseClient(this.httpClient, this.signerOrProvider, franchiseRegistry);
2201
+ }
2202
+ }
2203
+ }, {
2204
+ key: "initTransaction",
2205
+ value: function initTransaction() {
2206
+ if (this.isReadOnly) {
2207
+ this._transaction = new TransactionReadOnlyClient(this.httpClient);
2208
+ } else {
2209
+ this._transaction = new TransactionClient(this.httpClient);
2210
+ }
2211
+ }
2212
+ }, {
2213
+ key: "initCollect",
2214
+ value: function initCollect() {
2215
+ var collectModuleContract = process.env.COLLECT_MODULE_CONTRACT || process.env.NEXT_PUBLIC_COLLECT_MODULE_CONTRACT;
2216
+ var collectModule = CollectModule__factory.connect(collectModuleContract, this.signerOrProvider);
2217
+ if (this.isReadOnly) {
2218
+ this._collect = new CollectReadOnlyClient(this.httpClient, collectModule);
2219
+ } else {
2220
+ this._collect = new CollectClient(this.httpClient, this.signerOrProvider, collectModule);
2221
+ }
2222
+ }
2223
+
2224
+ /**
2225
+ * Getter for the franchise client. The client is lazily created when
2226
+ * this method is called.
2227
+ *
2228
+ * @returns the FranchiseClient or FranchiseReadOnlyClient instance
2229
+ */
2230
+ }, {
1982
2231
  key: "franchise",
1983
2232
  get: function get() {
1984
2233
  if (this._franchise === null) {
1985
- var franchiseRegistryContract = process.env.FRANCHISE_REGISTRY_CONTRACT || process.env.NEXT_PUBLIC_FRANCHISE_REGISTRY_CONTRACT;
1986
- var franchiseRegistry = FranchiseRegistry__factory.connect(franchiseRegistryContract, this.config.signer);
1987
- var licenseModuleContract = process.env.LICENSING_MODULE_CONTRACT || process.env.NEXT_PUBLIC_LICENSING_MODULE_CONTRACT;
1988
- var licenseModule = LicensingModule__factory.connect(licenseModuleContract, this.config.signer);
1989
- this._franchise = new FranchiseClient(this.httpClient, franchiseRegistry, licenseModule);
2234
+ this.initFranchise();
1990
2235
  }
1991
2236
  return this._franchise;
1992
2237
  }
@@ -2001,11 +2246,7 @@ var StoryClient = /*#__PURE__*/function () {
2001
2246
  key: "relationship",
2002
2247
  get: function get() {
2003
2248
  if (this._relationship === null) {
2004
- var franchiseRegistryContract = process.env.FRANCHISE_REGISTRY_CONTRACT || process.env.NEXT_PUBLIC_FRANCHISE_REGISTRY_CONTRACT;
2005
- var franchiseRegistry = FranchiseRegistry__factory.connect(franchiseRegistryContract, this.config.signer);
2006
- var relationshipModuleContract = process.env.RELATIONSHIP_MODULE_CONTRACT || process.env.NEXT_PUBLIC_RELATIONSHIP_MODULE_CONTRACT;
2007
- var relationshipModule = RelationshipModule__factory.connect(relationshipModuleContract, this.config.signer);
2008
- this._relationship = new RelationshipClient(relationshipModule, franchiseRegistry);
2249
+ this.initRelationship();
2009
2250
  }
2010
2251
  return this._relationship;
2011
2252
  }
@@ -2019,10 +2260,8 @@ var StoryClient = /*#__PURE__*/function () {
2019
2260
  }, {
2020
2261
  key: "ipAsset",
2021
2262
  get: function get() {
2022
- var franchiseRegistryContract = process.env.FRANCHISE_REGISTRY_CONTRACT || process.env.NEXT_PUBLIC_FRANCHISE_REGISTRY_CONTRACT;
2023
2263
  if (this._ipAsset === null) {
2024
- var franchiseRegistry = FranchiseRegistry__factory.connect(franchiseRegistryContract, this.config.signer);
2025
- this._ipAsset = new IPAssetClient(this.httpClient, franchiseRegistry, this.config.signer);
2264
+ this.initIpAsset();
2026
2265
  }
2027
2266
  return this._ipAsset;
2028
2267
  }
@@ -2037,9 +2276,7 @@ var StoryClient = /*#__PURE__*/function () {
2037
2276
  key: "license",
2038
2277
  get: function get() {
2039
2278
  if (this._license === null) {
2040
- var franchiseRegistryContract = process.env.FRANCHISE_REGISTRY_CONTRACT || process.env.NEXT_PUBLIC_FRANCHISE_REGISTRY_CONTRACT;
2041
- var franchiseRegistry = FranchiseRegistry__factory.connect(franchiseRegistryContract, this.config.signer);
2042
- this._license = new LicenseClient(this.httpClient, this.config.signer, franchiseRegistry);
2279
+ this.initLicense();
2043
2280
  }
2044
2281
  return this._license;
2045
2282
  }
@@ -2054,7 +2291,7 @@ var StoryClient = /*#__PURE__*/function () {
2054
2291
  key: "transaction",
2055
2292
  get: function get() {
2056
2293
  if (this._transaction === null) {
2057
- this._transaction = new TransactionClient(this.httpClient);
2294
+ this.initTransaction();
2058
2295
  }
2059
2296
  return this._transaction;
2060
2297
  }
@@ -2069,12 +2306,26 @@ var StoryClient = /*#__PURE__*/function () {
2069
2306
  key: "collect",
2070
2307
  get: function get() {
2071
2308
  if (this._collect === null) {
2072
- var collectModuleContract = process.env.COLLECT_MODULE_CONTRACT || process.env.NEXT_PUBLIC_COLLECT_MODULE_CONTRACT;
2073
- var collectModule = CollectModule__factory.connect(collectModuleContract, this.config.signer);
2074
- this._collect = new CollectClient(this.httpClient, this.config.signer, collectModule);
2309
+ this.initCollect();
2075
2310
  }
2076
2311
  return this._collect;
2077
2312
  }
2313
+ }], [{
2314
+ key: "newReadOnlyClient",
2315
+ value: function newReadOnlyClient(config) {
2316
+ return new StoryClient(config, true);
2317
+ }
2318
+
2319
+ /**
2320
+ * Factory method for creating a SDK client with a signer.
2321
+ *
2322
+ * @param config - the configuration for a new read/write SDK client
2323
+ */
2324
+ }, {
2325
+ key: "newClient",
2326
+ value: function newClient(config) {
2327
+ return new StoryClient(config, false);
2328
+ }
2078
2329
  }]);
2079
2330
  return StoryClient;
2080
2331
  }();