@campnetwork/origin 1.4.0-alpha.4 → 1.4.0-alpha.6

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/core.cjs CHANGED
@@ -14,14 +14,14 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14
14
  PERFORMANCE OF THIS SOFTWARE.
15
15
  ***************************************************************************** */
16
16
  /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
17
- function a(e,t,n,i){return new(n||(n=Promise))((function(a,s){function r(e){try{p(i.next(e))}catch(e){s(e)}}function o(e){try{p(i.throw(e))}catch(e){s(e)}}function p(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(r,o)}p((i=i.apply(e,t||[])).next())}))}function s(e,t,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(e):i?i.value:t.get(e)}function r(e,t,n,i,a){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!a)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?a.call(e,n):a?a.value=n:t.set(e,n),n}"function"==typeof SuppressedError&&SuppressedError;
17
+ function a(e,t,n,i){return new(n||(n=Promise))((function(a,s){function r(e){try{d(i.next(e))}catch(e){s(e)}}function o(e){try{d(i.throw(e))}catch(e){s(e)}}function d(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(r,o)}d((i=i.apply(e,t||[])).next())}))}function s(e,t,n,i){if("a"===n&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?i:"a"===n?i.call(e):i?i.value:t.get(e)}function r(e,t,n,i,a){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!a)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!a:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?a.call(e,n):a?a.value=n:t.set(e,n),n}"function"==typeof SuppressedError&&SuppressedError;
18
18
  /**
19
19
  * Adapter for viem WalletClient
20
20
  */
21
21
  class o{constructor(e){this.type="viem",this.signer=e}getAddress(){return a(this,void 0,void 0,(function*(){if(this.signer.account)return this.signer.account.address;const e=yield this.signer.request({method:"eth_requestAccounts",params:[]});if(!e||0===e.length)throw new Error("No accounts found in viem wallet client");return e[0]}))}signMessage(e){return a(this,void 0,void 0,(function*(){const t=yield this.getAddress();return yield this.signer.signMessage({account:t,message:e})}))}signTypedData(e,t,n){return a(this,void 0,void 0,(function*(){throw new Error("Viem WalletClient does not support signTypedData")}))}getChainId(){return a(this,void 0,void 0,(function*(){var e;return(null===(e=this.signer.chain)||void 0===e?void 0:e.id)||1}))}}
22
22
  /**
23
23
  * Adapter for ethers Signer (v5 and v6)
24
- */class p{constructor(e){this.type="ethers",this.signer=e}getAddress(){return a(this,void 0,void 0,(function*(){
24
+ */class d{constructor(e){this.type="ethers",this.signer=e}getAddress(){return a(this,void 0,void 0,(function*(){
25
25
  // Works for both ethers v5 and v6
26
26
  if("function"==typeof this.signer.getAddress)return yield this.signer.getAddress();if(this.signer.address)return this.signer.address;throw new Error("Unable to get address from ethers signer")}))}signMessage(e){return a(this,void 0,void 0,(function*(){if("function"!=typeof this.signer.signMessage)throw new Error("Signer does not support signMessage");return yield this.signer.signMessage(e)}))}signTypedData(e,t,n){return a(this,void 0,void 0,(function*(){if("function"==typeof this.signer._signTypedData)return yield this.signer._signTypedData(e,t,n);if("function"!=typeof this.signer.signTypedData)throw new Error("Signer does not support signTypedData or _signTypedData");return yield this.signer.signTypedData(e,t,n)}))}getChainId(){return a(this,void 0,void 0,(function*(){
27
27
  // Try ethers v6 first
@@ -34,7 +34,7 @@ return"function"==typeof this.signer.getChainId?yield this.signer.getChainId():4
34
34
  }))}}
35
35
  /**
36
36
  * Adapter for custom signer implementations
37
- */class d{constructor(e){this.type="custom",this.signer=e}getAddress(){return a(this,void 0,void 0,(function*(){if("function"==typeof this.signer.getAddress)return yield this.signer.getAddress();if(this.signer.address)return this.signer.address;throw new Error("Custom signer must implement getAddress() or have address property")}))}signMessage(e){return a(this,void 0,void 0,(function*(){if("function"!=typeof this.signer.signMessage)throw new Error("Custom signer must implement signMessage()");return yield this.signer.signMessage(e)}))}signTypedData(e,t,n){return a(this,void 0,void 0,(function*(){if("function"!=typeof this.signer.signTypedData)throw new Error("Custom signer must implement signTypedData()");return yield this.signer.signTypedData(e,t,n)}))}getChainId(){return a(this,void 0,void 0,(function*(){if("function"==typeof this.signer.getChainId){const e=yield this.signer.getChainId();return"bigint"==typeof e?Number(e):e}return void 0!==this.signer.chainId?"bigint"==typeof this.signer.chainId?Number(this.signer.chainId):this.signer.chainId:484;
37
+ */class p{constructor(e){this.type="custom",this.signer=e}getAddress(){return a(this,void 0,void 0,(function*(){if("function"==typeof this.signer.getAddress)return yield this.signer.getAddress();if(this.signer.address)return this.signer.address;throw new Error("Custom signer must implement getAddress() or have address property")}))}signMessage(e){return a(this,void 0,void 0,(function*(){if("function"!=typeof this.signer.signMessage)throw new Error("Custom signer must implement signMessage()");return yield this.signer.signMessage(e)}))}signTypedData(e,t,n){return a(this,void 0,void 0,(function*(){if("function"!=typeof this.signer.signTypedData)throw new Error("Custom signer must implement signTypedData()");return yield this.signer.signTypedData(e,t,n)}))}getChainId(){return a(this,void 0,void 0,(function*(){if("function"==typeof this.signer.getChainId){const e=yield this.signer.getChainId();return"bigint"==typeof e?Number(e):e}return void 0!==this.signer.chainId?"bigint"==typeof this.signer.chainId?Number(this.signer.chainId):this.signer.chainId:484;
38
38
  // Default to mainnet
39
39
  }))}}
40
40
  /**
@@ -43,7 +43,7 @@ return"function"==typeof this.signer.getChainId?yield this.signer.getChainId():4
43
43
  // Check for viem WalletClient
44
44
  return e.transport&&e.chain&&"function"==typeof e.signMessage?new o(e):
45
45
  // Check for ethers signer (v5 or v6)
46
- e._isSigner||e.provider&&"function"==typeof e.signMessage?new p(e):new d(e)}
46
+ e._isSigner||e.provider&&"function"==typeof e.signMessage?new d(e):new p(e)}
47
47
  /**
48
48
  * Browser localStorage adapter
49
49
  */class l{getItem(e){return a(this,void 0,void 0,(function*(){return"undefined"==typeof localStorage?null:localStorage.getItem(e)}))}setItem(e,t){return a(this,void 0,void 0,(function*(){"undefined"!=typeof localStorage&&localStorage.setItem(e,t)}))}removeItem(e){return a(this,void 0,void 0,(function*(){"undefined"!=typeof localStorage&&localStorage.removeItem(e)}))}}
@@ -58,19 +58,19 @@ e._isSigner||e.provider&&"function"==typeof e.signMessage?new p(e):new d(e)}
58
58
  * @returns WalletClient
59
59
  */const c={id:123420001114,name:"Basecamp",nativeCurrency:{decimals:18,name:"Camp",symbol:"CAMP"},rpcUrls:{default:{http:["https://rpc-campnetwork.xyz","https://rpc.basecamp.t.raas.gelato.cloud"]}},blockExplorers:{default:{name:"Explorer",url:"https://basecamp.cloud.blockscout.com/"}}},m={id:484,name:"Camp Network",nativeCurrency:{decimals:18,name:"Camp",symbol:"CAMP"},rpcUrls:{default:{http:["https://rpc.camp.raas.gelato.cloud/"]}},blockExplorers:{default:{name:"Explorer",url:"https://camp.cloud.blockscout.com/"}}};class h extends Error{constructor(e,t){super(e),this.name="APIError",this.statusCode=t||500,Error.captureStackTrace(this,this.constructor)}toJSON(){return{error:this.name,message:this.message,statusCode:this.statusCode||500}}}class T extends Error{constructor(e){super(e),this.name="ValidationError",Error.captureStackTrace(this,this.constructor)}toJSON(){return{error:this.name,message:this.message,statusCode:400}}}class f extends Error{constructor(e){super(e),this.name="AuthenticationError",Error.captureStackTrace(this,this.constructor)}toJSON(){return{error:this.name,message:this.message,statusCode:401}}}class v extends Error{constructor(e){super(e),this.name="WalletError",Error.captureStackTrace(this,this.constructor)}toJSON(){return{error:this.name,message:this.message,statusCode:400}}}class w extends Error{constructor(e,t){super(e),this.name="ContractError",this.contractName=null==t?void 0:t.contractName,this.methodName=null==t?void 0:t.methodName,Error.captureStackTrace(this,this.constructor)}toJSON(){return{error:this.name,message:this.message,statusCode:400,contractName:this.contractName,methodName:this.methodName}}}function A(e){if(e instanceof Error)return e.message;if("string"==typeof e)return e;try{return JSON.stringify(e)}catch(t){return String(e)}}
60
60
  // @ts-ignore
61
- let I=null,b=null,g=null;const C=t=>{var n;const i=g||c;return b&&(null===(n=b.chain)||void 0===n?void 0:n.id)===i.id||(b=e.createPublicClient({chain:i,transport:e.http()})),b};var E=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"address",name:"target",type:"address"}],name:"AddressEmptyCode",type:"error"},{inputs:[{internalType:"address",name:"implementation",type:"address"}],name:"ERC1967InvalidImplementation",type:"error"},{inputs:[],name:"ERC1967NonPayable",type:"error"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"owner",type:"address"}],name:"ERC721IncorrectOwner",type:"error"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ERC721InsufficientApproval",type:"error"},{inputs:[{internalType:"address",name:"approver",type:"address"}],name:"ERC721InvalidApprover",type:"error"},{inputs:[{internalType:"address",name:"operator",type:"address"}],name:"ERC721InvalidOperator",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"ERC721InvalidOwner",type:"error"},{inputs:[{internalType:"address",name:"receiver",type:"address"}],name:"ERC721InvalidReceiver",type:"error"},{inputs:[{internalType:"address",name:"sender",type:"address"}],name:"ERC721InvalidSender",type:"error"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ERC721NonexistentToken",type:"error"},{inputs:[],name:"EnforcedPause",type:"error"},{inputs:[],name:"ExpectedPause",type:"error"},{inputs:[],name:"FailedCall",type:"error"},{inputs:[],name:"InvalidDeadline",type:"error"},{inputs:[],name:"InvalidDuration",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"InvalidPaymentToken",type:"error"},{inputs:[],name:"InvalidPrice",type:"error"},{inputs:[],name:"InvalidRoyalty",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[],name:"NotTokenOwner",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"OwnableInvalidOwner",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"OwnableUnauthorizedAccount",type:"error"},{inputs:[],name:"TokenAlreadyExists",type:"error"},{inputs:[],name:"UUPSUnauthorizedCallContext",type:"error"},{inputs:[{internalType:"bytes32",name:"slot",type:"bytes32"}],name:"UUPSUnsupportedProxiableUUID",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"buyer",type:"address"},{indexed:!1,internalType:"uint32",name:"periods",type:"uint32"},{indexed:!1,internalType:"uint256",name:"newExpiry",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amountPaid",type:"uint256"}],name:"AccessPurchased",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"agentId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"ipNftId",type:"uint256"},{indexed:!1,internalType:"address",name:"agentAddress",type:"address"}],name:"AgentRegistered",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"appRegistry",type:"address"}],name:"AppRegistryUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"approved",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"uint256",name:"childIp",type:"uint256"},{indexed:!1,internalType:"uint256",name:"parentIp",type:"uint256"}],name:"ChildIpTagged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"creator",type:"address"}],name:"DataDeleted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"creator",type:"address"},{indexed:!1,internalType:"bytes32",name:"contentHash",type:"bytes32"},{indexed:!1,internalType:"uint256[]",name:"parents",type:"uint256[]"}],name:"DataMinted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"counterEvidenceHash",type:"bytes32"}],name:"DisputeAssertion",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"DisputeCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"bool",name:"judgement",type:"bool"}],name:"DisputeJudged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"disputeModule",type:"address"}],name:"DisputeModuleUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"address",name:"initiator",type:"address"},{indexed:!0,internalType:"uint256",name:"targetId",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"disputeTag",type:"bytes32"}],name:"DisputeRaised",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"marketPlace",type:"address"}],name:"MarketPlaceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"childIpId",type:"uint256"},{indexed:!1,internalType:"uint256[]",name:"parentIds",type:"uint256[]"},{indexed:!1,internalType:"uint16",name:"totalRoyaltyBps",type:"uint16"}],name:"ParentIpsSet",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint16",name:"newFeeBps",type:"uint16"}],name:"ProtocolFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"royaltyAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"creator",type:"address"},{indexed:!1,internalType:"uint256",name:"protocolAmount",type:"uint256"}],name:"RoyaltyPaid",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"vault",type:"address"}],name:"RoyaltyVaultDeployed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"royaltyVaultFactory",type:"address"}],name:"RoyaltyVaultFactoryUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"signer",type:"address"}],name:"SignerUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"enum IIpNFT.DataStatus",name:"status",type:"uint8"}],name:"StatusUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint128",name:"newPrice",type:"uint128"},{indexed:!1,internalType:"uint32",name:"newDuration",type:"uint32"},{indexed:!1,internalType:"uint16",name:"newRoyaltyBps",type:"uint16"},{indexed:!1,internalType:"address",name:"paymentToken",type:"address"}],name:"TermsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newTreasury",type:"address"}],name:"TreasuryUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"address",name:"voter",type:"address"},{indexed:!1,internalType:"bool",name:"support",type:"bool"},{indexed:!1,internalType:"uint256",name:"weight",type:"uint256"}],name:"Voted",type:"event"},{inputs:[],name:"UPGRADE_INTERFACE_VERSION",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"appRegistry",outputs:[{internalType:"contract AppRegistry",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"dataStatus",outputs:[{internalType:"enum IIpNFT.DataStatus",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"disputeModule",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"erc6551Account",outputs:[{internalType:"contract IERC6551Account",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"erc6551Registry",outputs:[{internalType:"contract IERC6551Registry",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"finalizeDelete",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getAccount",outputs:[{internalType:"address",name:"account",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getRoyaltyVault",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getTerms",outputs:[{components:[{internalType:"uint128",name:"price",type:"uint128"},{internalType:"uint32",name:"duration",type:"uint32"},{internalType:"uint16",name:"royaltyBps",type:"uint16"},{internalType:"address",name:"paymentToken",type:"address"},{internalType:"enum IIpNFT.LicenseType",name:"licenseType",type:"uint8"}],internalType:"struct IIpNFT.LicenseTerms",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"},{internalType:"uint256",name:"maxTermDuration_",type:"uint256"},{internalType:"address",name:"signer_",type:"address"},{internalType:"address",name:"wCAMP_",type:"address"},{internalType:"uint256",name:"minTermDuration_",type:"uint256"},{internalType:"uint256",name:"minPrice_",type:"uint256"},{internalType:"uint256",name:"maxRoyaltyBps_",type:"uint256"},{internalType:"contract IERC6551Registry",name:"registry_",type:"address"},{internalType:"contract IERC6551Account",name:"implementation_",type:"address"},{internalType:"contract AppRegistry",name:"appRegistry_",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"markDisputed",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"marketPlace",outputs:[{internalType:"contract IMarketplace",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"maxRoyaltyBps",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"maxTermDuration",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"minPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"minTermDuration",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes32",name:"creatorContentHash",type:"bytes32"},{internalType:"string",name:"uri",type:"string"},{components:[{internalType:"uint128",name:"price",type:"uint128"},{internalType:"uint32",name:"duration",type:"uint32"},{internalType:"uint16",name:"royaltyBps",type:"uint16"},{internalType:"address",name:"paymentToken",type:"address"},{internalType:"enum IIpNFT.LicenseType",name:"licenseType",type:"uint8"}],internalType:"struct IIpNFT.LicenseTerms",name:"licenseTerms",type:"tuple"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint256[]",name:"parents",type:"uint256[]"},{internalType:"bool",name:"isIP",type:"bool"},{internalType:"string",name:"appId",type:"string"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"mintWithSignature",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"proxiableUUID",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"royaltyVaultFactory",outputs:[{internalType:"contract IpRoyaltyVaultFactory",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_appRegistry",type:"address"}],name:"setAppRegistry",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_disputeModule",type:"address"}],name:"setDisputeModule",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_marketPlace",type:"address"}],name:"setMarketPlace",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_royaltyVaultFactory",type:"address"}],name:"setRoyaltyVaultFactory",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_signer",type:"address"}],name:"setSigner",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"signer",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"tokenInfo",outputs:[{components:[{internalType:"string",name:"tokenURI",type:"string"},{internalType:"bool",name:"isIP",type:"bool"},{internalType:"bytes32",name:"contentHash",type:"bytes32"},{components:[{internalType:"uint128",name:"price",type:"uint128"},{internalType:"uint32",name:"duration",type:"uint32"},{internalType:"uint16",name:"royaltyBps",type:"uint16"},{internalType:"address",name:"paymentToken",type:"address"},{internalType:"enum IIpNFT.LicenseType",name:"licenseType",type:"uint8"}],internalType:"struct IIpNFT.LicenseTerms",name:"terms",type:"tuple"},{internalType:"enum IIpNFT.DataStatus",name:"status",type:"uint8"},{internalType:"string",name:"appId",type:"string"}],internalType:"struct IIpNFT.TokenInfo",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{components:[{internalType:"uint128",name:"price",type:"uint128"},{internalType:"uint32",name:"duration",type:"uint32"},{internalType:"uint16",name:"royaltyBps",type:"uint16"},{internalType:"address",name:"paymentToken",type:"address"},{internalType:"enum IIpNFT.LicenseType",name:"licenseType",type:"uint8"}],internalType:"struct IIpNFT.LicenseTerms",name:"newTerms",type:"tuple"}],name:"updateTerms",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"wCAMP",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}],S=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"address",name:"target",type:"address"}],name:"AddressEmptyCode",type:"error"},{inputs:[{internalType:"address",name:"implementation",type:"address"}],name:"ERC1967InvalidImplementation",type:"error"},{inputs:[],name:"ERC1967NonPayable",type:"error"},{inputs:[],name:"EnforcedPause",type:"error"},{inputs:[],name:"ExpectedPause",type:"error"},{inputs:[],name:"FailedCall",type:"error"},{inputs:[],name:"FeesExceedMaximum",type:"error"},{inputs:[],name:"FeesMismatch",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"InvalidLicenseType",type:"error"},{inputs:[],name:"InvalidParentIp",type:"error"},{inputs:[],name:"InvalidPayment",type:"error"},{inputs:[],name:"InvalidPrice",type:"error"},{inputs:[],name:"InvalidRoyalty",type:"error"},{inputs:[],name:"MaxParentsExceeded",type:"error"},{inputs:[],name:"MaxRoyaltyExceeded",type:"error"},{inputs:[],name:"NoSubscriptionFound",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"OwnableInvalidOwner",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"OwnableUnauthorizedAccount",type:"error"},{inputs:[],name:"ParentAlreadyExists",type:"error"},{inputs:[],name:"ParentIpAlreadyDeleted",type:"error"},{inputs:[],name:"ParentIpAlreadyDisputed",type:"error"},{inputs:[],name:"SubscriptionNotAllowed",type:"error"},{inputs:[],name:"TermsMismatch",type:"error"},{inputs:[],name:"UUPSUnauthorizedCallContext",type:"error"},{inputs:[{internalType:"bytes32",name:"slot",type:"bytes32"}],name:"UUPSUnsupportedProxiableUUID",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[],name:"VaultNotFound",type:"error"},{inputs:[],name:"ZeroAddress",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"buyer",type:"address"},{indexed:!1,internalType:"uint32",name:"periods",type:"uint32"},{indexed:!1,internalType:"uint256",name:"newExpiry",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amountPaid",type:"uint256"}],name:"AccessPurchased",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"agentId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"ipNftId",type:"uint256"},{indexed:!1,internalType:"address",name:"agentAddress",type:"address"}],name:"AgentRegistered",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"appRegistry",type:"address"}],name:"AppRegistryUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"uint256",name:"childIp",type:"uint256"},{indexed:!1,internalType:"uint256",name:"parentIp",type:"uint256"}],name:"ChildIpTagged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"creator",type:"address"}],name:"DataDeleted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"creator",type:"address"},{indexed:!1,internalType:"bytes32",name:"contentHash",type:"bytes32"},{indexed:!1,internalType:"uint256[]",name:"parents",type:"uint256[]"}],name:"DataMinted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"counterEvidenceHash",type:"bytes32"}],name:"DisputeAssertion",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"DisputeCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"bool",name:"judgement",type:"bool"}],name:"DisputeJudged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"disputeModule",type:"address"}],name:"DisputeModuleUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"address",name:"initiator",type:"address"},{indexed:!0,internalType:"uint256",name:"targetId",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"disputeTag",type:"bytes32"}],name:"DisputeRaised",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"marketPlace",type:"address"}],name:"MarketPlaceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"childIpId",type:"uint256"},{indexed:!1,internalType:"uint256[]",name:"parentIds",type:"uint256[]"},{indexed:!1,internalType:"uint16",name:"totalRoyaltyBps",type:"uint16"}],name:"ParentIpsSet",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint16",name:"newFeeBps",type:"uint16"}],name:"ProtocolFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"royaltyAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"creator",type:"address"},{indexed:!1,internalType:"uint256",name:"protocolAmount",type:"uint256"}],name:"RoyaltyPaid",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"vault",type:"address"}],name:"RoyaltyVaultDeployed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"royaltyVaultFactory",type:"address"}],name:"RoyaltyVaultFactoryUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"signer",type:"address"}],name:"SignerUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"enum IIpNFT.DataStatus",name:"status",type:"uint8"}],name:"StatusUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint128",name:"newPrice",type:"uint128"},{indexed:!1,internalType:"uint32",name:"newDuration",type:"uint32"},{indexed:!1,internalType:"uint16",name:"newRoyaltyBps",type:"uint16"},{indexed:!1,internalType:"address",name:"paymentToken",type:"address"}],name:"TermsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newTreasury",type:"address"}],name:"TreasuryUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"address",name:"voter",type:"address"},{indexed:!1,internalType:"bool",name:"support",type:"bool"},{indexed:!1,internalType:"uint256",name:"weight",type:"uint256"}],name:"Voted",type:"event"},{inputs:[],name:"MAX_PARENTS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"UPGRADE_INTERFACE_VERSION",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"buyer",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"expectedPrice",type:"uint256"},{internalType:"uint32",name:"expectedDuration",type:"uint32"},{internalType:"address",name:"expectedPaymentToken",type:"address"},{internalType:"uint16",name:"expectedProtocolFeeBps",type:"uint16"},{internalType:"uint16",name:"expectedAppFeeBps",type:"uint16"}],name:"buyAccess",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"revenueToken",type:"address"}],name:"claimRevenue",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address[]",name:"revenueTokens",type:"address[]"}],name:"claimRevenueBatch",outputs:[{internalType:"uint256[]",name:"",type:"uint256[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"holder",type:"address"},{internalType:"address",name:"revenueToken",type:"address"}],name:"claimableRevenue",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getRoyaltyVault",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getVaultRevenueTokens",outputs:[{internalType:"address[]",name:"",type:"address[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"ipId",type:"uint256"},{internalType:"uint256",name:"parent",type:"uint256"}],name:"hasParentIp",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"dataNFT_",type:"address"},{internalType:"uint16",name:"protocolFeeBps_",type:"uint16"},{internalType:"address",name:"treasury_",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"ipToken",outputs:[{internalType:"contract IIpNFT",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"}],name:"parentRoyaltyPercent",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"protocolFeeBps",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"proxiableUUID",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"royaltyStack",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"childIpId",type:"uint256"},{internalType:"uint256[]",name:"parents",type:"uint256[]"},{internalType:"address",name:"creator",type:"address"}],name:"setParentIpsAndRoyaltyPercents",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"},{internalType:"address",name:"",type:"address"}],name:"subscriptionExpiry",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"treasury",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"newFeeBps",type:"uint16"}],name:"updateProtocolFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newTreasury",type:"address"}],name:"updateTreasury",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"}],x=[{type:"receive",stateMutability:"payable"},{type:"function",name:"execute",inputs:[{name:"to",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"},{name:"data",type:"bytes",internalType:"bytes"},{name:"operation",type:"uint8",internalType:"uint8"}],outputs:[{name:"result",type:"bytes",internalType:"bytes"}],stateMutability:"payable"},{type:"function",name:"isValidSignature",inputs:[{name:"hash",type:"bytes32",internalType:"bytes32"},{name:"signature",type:"bytes",internalType:"bytes"}],outputs:[{name:"magicValue",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"isValidSigner",inputs:[{name:"signer",type:"address",internalType:"address"},{name:"",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"state",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"token",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"address",internalType:"address"},{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"}],P=[{inputs:[{internalType:"address",name:"_marketplace",type:"address"},{internalType:"address",name:"_ipNFT",type:"address"},{internalType:"address",name:"_appRegistry",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"EmptyMintList",type:"error"},{inputs:[],name:"EmptyPurchaseList",type:"error"},{inputs:[],name:"InsufficientAllowance",type:"error"},{inputs:[],name:"InvalidTotalPayment",type:"error"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"string",name:"reason",type:"string"}],name:"MintFailed",type:"error"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"string",name:"reason",type:"string"}],name:"PurchaseFailed",type:"error"},{inputs:[],name:"ReentrancyGuardReentrantCall",type:"error"},{inputs:[],name:"RefundFailed",type:"error"},{inputs:[],name:"ZeroAddress",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"minter",type:"address"},{indexed:!1,internalType:"uint256",name:"count",type:"uint256"}],name:"BulkMintExecuted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"minter",type:"address"},{indexed:!1,internalType:"uint256",name:"successCount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"failureCount",type:"uint256"},{indexed:!1,internalType:"uint256[]",name:"failedTokenIds",type:"uint256[]"}],name:"BulkMintPartial",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"buyer",type:"address"},{indexed:!1,internalType:"uint256",name:"count",type:"uint256"},{indexed:!1,internalType:"uint256",name:"totalPaid",type:"uint256"}],name:"BulkPurchaseExecuted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"buyer",type:"address"},{indexed:!1,internalType:"uint256",name:"successCount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"failureCount",type:"uint256"},{indexed:!1,internalType:"uint256[]",name:"failedTokenIds",type:"uint256[]"}],name:"BulkPurchasePartial",type:"event"},{inputs:[],name:"appRegistry",outputs:[{internalType:"contract IAppRegistry",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256[]",name:"tokenIds",type:"uint256[]"}],name:"buildPurchaseParams",outputs:[{components:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"expectedPrice",type:"uint256"},{internalType:"uint32",name:"expectedDuration",type:"uint32"},{internalType:"address",name:"expectedPaymentToken",type:"address"},{internalType:"uint16",name:"expectedProtocolFeeBps",type:"uint16"},{internalType:"uint16",name:"expectedAppFeeBps",type:"uint16"}],internalType:"struct IBatchOperations.BuyParams[]",name:"purchases",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"buyer",type:"address"},{components:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"expectedPrice",type:"uint256"},{internalType:"uint32",name:"expectedDuration",type:"uint32"},{internalType:"address",name:"expectedPaymentToken",type:"address"},{internalType:"uint16",name:"expectedProtocolFeeBps",type:"uint16"},{internalType:"uint16",name:"expectedAppFeeBps",type:"uint16"}],internalType:"struct IBatchOperations.BuyParams[]",name:"purchases",type:"tuple[]"}],name:"bulkBuyAccess",outputs:[{internalType:"uint256",name:"totalPaid",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"buyer",type:"address"},{components:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"expectedPrice",type:"uint256"},{internalType:"uint32",name:"expectedDuration",type:"uint32"},{internalType:"address",name:"expectedPaymentToken",type:"address"},{internalType:"uint16",name:"expectedProtocolFeeBps",type:"uint16"},{internalType:"uint16",name:"expectedAppFeeBps",type:"uint16"}],internalType:"struct IBatchOperations.BuyParams[]",name:"purchases",type:"tuple[]"}],name:"bulkBuyAccessTolerant",outputs:[{components:[{internalType:"uint256",name:"successCount",type:"uint256"},{internalType:"uint256",name:"failureCount",type:"uint256"},{internalType:"uint256",name:"totalSpent",type:"uint256"},{internalType:"uint256",name:"refundAmount",type:"uint256"},{internalType:"uint256[]",name:"failedTokenIds",type:"uint256[]"}],internalType:"struct IBatchOperations.TolerantResult",name:"result",type:"tuple"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes32",name:"creatorContentHash",type:"bytes32"},{internalType:"string",name:"uri",type:"string"},{components:[{internalType:"uint128",name:"price",type:"uint128"},{internalType:"uint32",name:"duration",type:"uint32"},{internalType:"uint16",name:"royaltyBps",type:"uint16"},{internalType:"address",name:"paymentToken",type:"address"},{internalType:"uint8",name:"licenseType",type:"uint8"}],internalType:"struct IBatchOperations.LicenseTermsParam",name:"licenseTerms",type:"tuple"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint256[]",name:"parents",type:"uint256[]"},{internalType:"bool",name:"isIP",type:"bool"},{internalType:"string",name:"appId",type:"string"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct IBatchOperations.MintParams[]",name:"mints",type:"tuple[]"}],name:"bulkMint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes32",name:"creatorContentHash",type:"bytes32"},{internalType:"string",name:"uri",type:"string"},{components:[{internalType:"uint128",name:"price",type:"uint128"},{internalType:"uint32",name:"duration",type:"uint32"},{internalType:"uint16",name:"royaltyBps",type:"uint16"},{internalType:"address",name:"paymentToken",type:"address"},{internalType:"uint8",name:"licenseType",type:"uint8"}],internalType:"struct IBatchOperations.LicenseTermsParam",name:"licenseTerms",type:"tuple"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint256[]",name:"parents",type:"uint256[]"},{internalType:"bool",name:"isIP",type:"bool"},{internalType:"string",name:"appId",type:"string"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct IBatchOperations.MintParams[]",name:"mints",type:"tuple[]"}],name:"bulkMintTolerant",outputs:[{components:[{internalType:"uint256",name:"successCount",type:"uint256"},{internalType:"uint256",name:"failureCount",type:"uint256"},{internalType:"uint256[]",name:"failedTokenIds",type:"uint256[]"}],internalType:"struct IBatchOperations.TolerantMintResult",name:"result",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256[]",name:"tokenIds",type:"uint256[]"}],name:"checkActiveStatus",outputs:[{internalType:"bool[]",name:"activeFlags",type:"bool[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"ipNFT",outputs:[{internalType:"contract IIpNFT",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"marketplace",outputs:[{internalType:"contract IMarketplace",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256[]",name:"tokenIds",type:"uint256[]"}],name:"previewBulkCost",outputs:[{components:[{internalType:"uint256",name:"totalNativeCost",type:"uint256"},{internalType:"uint256",name:"totalERC20Cost",type:"uint256"},{internalType:"uint256",name:"validCount",type:"uint256"},{internalType:"uint256[]",name:"invalidTokenIds",type:"uint256[]"}],internalType:"struct IBatchOperations.BulkCostPreview",name:"preview",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"buyer",type:"address"},{components:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"expectedPrice",type:"uint256"},{internalType:"uint32",name:"expectedDuration",type:"uint32"},{internalType:"address",name:"expectedPaymentToken",type:"address"},{internalType:"uint16",name:"expectedProtocolFeeBps",type:"uint16"},{internalType:"uint16",name:"expectedAppFeeBps",type:"uint16"}],internalType:"struct IBatchOperations.BuyParams",name:"params",type:"tuple"}],name:"tryERC20Purchase",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],R=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"address",name:"target",type:"address"}],name:"AddressEmptyCode",type:"error"},{inputs:[],name:"AlreadyVoted",type:"error"},{inputs:[],name:"CoolDownPeriodActive",type:"error"},{inputs:[],name:"CoolDownPeriodOver",type:"error"},{inputs:[{internalType:"address",name:"implementation",type:"address"}],name:"ERC1967InvalidImplementation",type:"error"},{inputs:[],name:"ERC1967NonPayable",type:"error"},{inputs:[],name:"EvidenceAlreadyUsed",type:"error"},{inputs:[],name:"FailedCall",type:"error"},{inputs:[],name:"InvalidBondFeeBps",type:"error"},{inputs:[],name:"InvalidChildIpId",type:"error"},{inputs:[],name:"InvalidDisputeStatus",type:"error"},{inputs:[],name:"InvalidDisputeTag",type:"error"},{inputs:[],name:"InvalidEvidenceHash",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"InvalidTargetIp",type:"error"},{inputs:[],name:"NoVotingPower",type:"error"},{inputs:[],name:"NotAParentIp",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[],name:"NotInitiator",type:"error"},{inputs:[],name:"NotTokenOwner",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"OwnableInvalidOwner",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"OwnableUnauthorizedAccount",type:"error"},{inputs:[],name:"ParentNotDisputed",type:"error"},{inputs:[],name:"SelfAssertionNotAllowed",type:"error"},{inputs:[],name:"StakedAfterDispute",type:"error"},{inputs:[],name:"TagNotAllowed",type:"error"},{inputs:[],name:"UUPSUnauthorizedCallContext",type:"error"},{inputs:[{internalType:"bytes32",name:"slot",type:"bytes32"}],name:"UUPSUnsupportedProxiableUUID",type:"error"},{inputs:[],name:"VotingPeriodActive",type:"error"},{inputs:[],name:"VotingPeriodOver",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"buyer",type:"address"},{indexed:!1,internalType:"uint32",name:"periods",type:"uint32"},{indexed:!1,internalType:"uint256",name:"newExpiry",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amountPaid",type:"uint256"}],name:"AccessPurchased",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"agentId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"ipNftId",type:"uint256"},{indexed:!1,internalType:"address",name:"agentAddress",type:"address"}],name:"AgentRegistered",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"appRegistry",type:"address"}],name:"AppRegistryUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"uint256",name:"childIp",type:"uint256"},{indexed:!1,internalType:"uint256",name:"parentIp",type:"uint256"}],name:"ChildIpTagged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"creator",type:"address"}],name:"DataDeleted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"creator",type:"address"},{indexed:!1,internalType:"bytes32",name:"contentHash",type:"bytes32"},{indexed:!1,internalType:"uint256[]",name:"parents",type:"uint256[]"}],name:"DataMinted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"counterEvidenceHash",type:"bytes32"}],name:"DisputeAssertion",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"DisputeCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"bool",name:"judgement",type:"bool"}],name:"DisputeJudged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"disputeModule",type:"address"}],name:"DisputeModuleUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"address",name:"initiator",type:"address"},{indexed:!0,internalType:"uint256",name:"targetId",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"disputeTag",type:"bytes32"}],name:"DisputeRaised",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"marketPlace",type:"address"}],name:"MarketPlaceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"childIpId",type:"uint256"},{indexed:!1,internalType:"uint256[]",name:"parentIds",type:"uint256[]"},{indexed:!1,internalType:"uint16",name:"totalRoyaltyBps",type:"uint16"}],name:"ParentIpsSet",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint16",name:"newFeeBps",type:"uint16"}],name:"ProtocolFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"royaltyAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"creator",type:"address"},{indexed:!1,internalType:"uint256",name:"protocolAmount",type:"uint256"}],name:"RoyaltyPaid",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"vault",type:"address"}],name:"RoyaltyVaultDeployed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"royaltyVaultFactory",type:"address"}],name:"RoyaltyVaultFactoryUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"signer",type:"address"}],name:"SignerUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"enum IIpNFT.DataStatus",name:"status",type:"uint8"}],name:"StatusUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint128",name:"newPrice",type:"uint128"},{indexed:!1,internalType:"uint32",name:"newDuration",type:"uint32"},{indexed:!1,internalType:"uint16",name:"newRoyaltyBps",type:"uint16"},{indexed:!1,internalType:"address",name:"paymentToken",type:"address"}],name:"TermsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newTreasury",type:"address"}],name:"TreasuryUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"address",name:"voter",type:"address"},{indexed:!1,internalType:"bool",name:"support",type:"bool"},{indexed:!1,internalType:"uint256",name:"weight",type:"uint256"}],name:"Voted",type:"event"},{inputs:[],name:"UPGRADE_INTERFACE_VERSION",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"cancelDispute",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"},{internalType:"bytes32",name:"_counterEvidenceHash",type:"bytes32"}],name:"disputeAssertion",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"disputeBond",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"disputeCoolDownPeriod",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"disputeCounter",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"disputeJudgementPeriod",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"disputeQuorum",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"disputeToken",outputs:[{internalType:"contract IERC20",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"disputes",outputs:[{internalType:"address",name:"initiator",type:"address"},{internalType:"uint256",name:"targetId",type:"uint256"},{internalType:"bytes32",name:"disputeTag",type:"bytes32"},{internalType:"bytes32",name:"disputeEvidenceHash",type:"bytes32"},{internalType:"bytes32",name:"counterEvidenceHash",type:"bytes32"},{internalType:"uint256",name:"disputeTimestamp",type:"uint256"},{internalType:"uint256",name:"assertionTimestamp",type:"uint256"},{internalType:"uint256",name:"yesVotes",type:"uint256"},{internalType:"uint256",name:"noVotes",type:"uint256"},{internalType:"enum DisputeModule.DisputeStatus",name:"status",type:"uint8"},{internalType:"uint256",name:"bondAmount",type:"uint256"},{internalType:"uint256",name:"protocolFeeAmount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"},{internalType:"address",name:"",type:"address"}],name:"hasVoted",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract IIpNFT",name:"_ipToken",type:"address"},{internalType:"contract IMarketplace",name:"_marketplace",type:"address"},{internalType:"contract IERC20",name:"_disputeToken",type:"address"},{internalType:"uint256",name:"_disputeBond",type:"uint256"},{internalType:"uint256",name:"_disputeCoolDownPeriod",type:"uint256"},{internalType:"uint256",name:"_disputeJudgementPeriod",type:"uint256"},{internalType:"uint16",name:"_bondFeeBPS",type:"uint16"},{internalType:"uint256",name:"_stakingThreshold",type:"uint256"},{internalType:"contract ICampStakingVault",name:"_stakingVault",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"ipToken",outputs:[{internalType:"contract IIpNFT",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"isUsedEvidenceHash",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"marketplace",outputs:[{internalType:"contract IMarketplace",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"protocolDisputeFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"proxiableUUID",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_targetIpId",type:"uint256"},{internalType:"bytes32",name:"_disputeEvidenceHash",type:"bytes32"},{internalType:"bytes32",name:"_disputeTag",type:"bytes32"}],name:"raiseDispute",outputs:[{internalType:"uint256",name:"id",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"resolveDispute",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_disputeQuorum",type:"uint256"}],name:"setDisputeQuorum",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"stakingThreshold",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"stakingVault",outputs:[{internalType:"contract ICampStakingVault",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_childIpId",type:"uint256"},{internalType:"uint256",name:"_infringerDisputeId",type:"uint256"}],name:"tagChildIp",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"},{internalType:"bool",name:"support",type:"bool"}],name:"voteOnDispute",outputs:[],stateMutability:"nonpayable",type:"function"}],D=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"address",name:"target",type:"address"}],name:"AddressEmptyCode",type:"error"},{inputs:[],name:"AppAlreadyActive",type:"error"},{inputs:[],name:"AppAlreadyExists",type:"error"},{inputs:[],name:"AppAlreadyInactive",type:"error"},{inputs:[],name:"AppNotFound",type:"error"},{inputs:[{internalType:"address",name:"implementation",type:"address"}],name:"ERC1967InvalidImplementation",type:"error"},{inputs:[],name:"ERC1967NonPayable",type:"error"},{inputs:[],name:"FailedCall",type:"error"},{inputs:[],name:"InvalidAppId",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"InvalidRoyalty",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"OwnableInvalidOwner",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"OwnableUnauthorizedAccount",type:"error"},{inputs:[],name:"UUPSUnauthorizedCallContext",type:"error"},{inputs:[{internalType:"bytes32",name:"slot",type:"bytes32"}],name:"UUPSUnsupportedProxiableUUID",type:"error"},{inputs:[],name:"ZeroAddress",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"appId",type:"string"}],name:"AppDeactivated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"appId",type:"string"}],name:"AppReactivated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"appId",type:"string"},{indexed:!1,internalType:"address",name:"treasury",type:"address"},{indexed:!1,internalType:"uint16",name:"revenueShareBps",type:"uint16"}],name:"AppRegistered",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"appId",type:"string"},{indexed:!1,internalType:"address",name:"treasury",type:"address"},{indexed:!1,internalType:"uint16",name:"revenueShareBps",type:"uint16"}],name:"AppUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[],name:"UPGRADE_INTERFACE_VERSION",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"string",name:"",type:"string"}],name:"appExists",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"string",name:"",type:"string"}],name:"apps",outputs:[{internalType:"address",name:"treasury",type:"address"},{internalType:"uint16",name:"revenueShareBps",type:"uint16"},{internalType:"bool",name:"isActive",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"string",name:"appId",type:"string"}],name:"deactivateApp",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"appId",type:"string"}],name:"getAppInfo",outputs:[{components:[{internalType:"address",name:"treasury",type:"address"},{internalType:"uint16",name:"revenueShareBps",type:"uint16"},{internalType:"bool",name:"isActive",type:"bool"}],internalType:"struct AppRegistry.AppInfo",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"proxiableUUID",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"string",name:"appId",type:"string"}],name:"reactivateApp",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"appId",type:"string"},{internalType:"address",name:"treasury",type:"address"},{internalType:"uint16",name:"revenueShareBps",type:"uint16"}],name:"registerApp",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"appId",type:"string"},{internalType:"address",name:"treasury",type:"address"},{internalType:"uint16",name:"revenueShareBps",type:"uint16"}],name:"updateApp",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"}],_=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"address",name:"target",type:"address"}],name:"AddressEmptyCode",type:"error"},{inputs:[{internalType:"address",name:"implementation",type:"address"}],name:"ERC1967InvalidImplementation",type:"error"},{inputs:[],name:"ERC1967NonPayable",type:"error"},{inputs:[],name:"FailedCall",type:"error"},{inputs:[],name:"FailedDeployment",type:"error"},{inputs:[{internalType:"uint256",name:"balance",type:"uint256"},{internalType:"uint256",name:"needed",type:"uint256"}],name:"InsufficientBalance",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"OwnableInvalidOwner",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"OwnableUnauthorizedAccount",type:"error"},{inputs:[],name:"UUPSUnauthorizedCallContext",type:"error"},{inputs:[{internalType:"bytes32",name:"slot",type:"bytes32"}],name:"UUPSUnsupportedProxiableUUID",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[],name:"VaultAlreadyExists",type:"error"},{inputs:[],name:"VaultNotFound",type:"error"},{inputs:[],name:"ZeroAddress",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldImplementation",type:"address"},{indexed:!0,internalType:"address",name:"newImplementation",type:"address"}],name:"ImplementationUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"vault",type:"address"},{indexed:!0,internalType:"address",name:"initialOwner",type:"address"}],name:"VaultDeployed",type:"event"},{inputs:[],name:"UPGRADE_INTERFACE_VERSION",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"initialOwner",type:"address"}],name:"deployVault",outputs:[{internalType:"address",name:"vault",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"deployVaultForExistingNFT",outputs:[{internalType:"address",name:"vault",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getVault",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"implementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"ipNft_",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"ipNft",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"isVault",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"predictVaultAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"proxiableUUID",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"setImplementation",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"vaults",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}],k="Connect with Camp Network",N=2628e3,M=86400,O=1e15,B=1,F=1e4;const U={DEVELOPMENT:{NAME:"DEVELOPMENT",AUTH_HUB_BASE_API:"https://origin-backend-iota.vercel.app",ORIGIN_DASHBOARD:"https://origin.campnetwork.xyz",DATANFT_CONTRACT_ADDRESS:"0x4d9aF5800701A4A686Df6b096A27B81486de36eB",MARKETPLACE_CONTRACT_ADDRESS:"0x68B202caA162C418d3A2DF92F29fA1CAF90C58c1",BATCH_OPERATIONS_CONTRACT_ADDRESS:"0xe1247F1663925B99Db62e60480B53e37f2bb8738",DISPUTE_CONTRACT_ADDRESS:"0x45719337b1450b0D105cA671972be4263E6A9380",APP_REGISTRY_CONTRACT_ADDRESS:"0x2096eb980Dd590DDF690Cb698572b80552B6F9Bb",IP_ROYALTY_VAULT_FACTORY_CONTRACT_ADDRESS:"0x16e01D1CB5de9460f8ed9D1883f5aFD377798f38",CHAIN:c,IPNFT_ABI:E,MARKETPLACE_ABI:S,TBA_ABI:x,BATCH_OPERATIONS_ABI:P,DISPUTE_ABI:R,APP_REGISTRY_ABI:D,IP_ROYALTY_VAULT_FACTORY_ABI:_},PRODUCTION:{NAME:"PRODUCTION",AUTH_HUB_BASE_API:"https://origin-backend-mainnet.vercel.app",ORIGIN_DASHBOARD:"https://origin.campnetwork.xyz",DATANFT_CONTRACT_ADDRESS:"0x39EeE1C3989f0dD543Dee60f8582F7F81F522C38",MARKETPLACE_CONTRACT_ADDRESS:"0xc69BAa987757d054455fC0f2d9797684E9FB8b9C",BATCH_OPERATIONS_CONTRACT_ADDRESS:"0x6B89810768b708465f31b6a8B8d753cc986489F1",DISPUTE_CONTRACT_ADDRESS:"0x947A3C4A45f7039e77643026A090025D5412EDa2",
61
+ let I=null,g=null,b=null;const C=t=>{var n;const i=b||c;return g&&(null===(n=g.chain)||void 0===n?void 0:n.id)===i.id||(g=e.createPublicClient({chain:i,transport:e.http()})),g};var E=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"address",name:"target",type:"address"}],name:"AddressEmptyCode",type:"error"},{inputs:[{internalType:"address",name:"implementation",type:"address"}],name:"ERC1967InvalidImplementation",type:"error"},{inputs:[],name:"ERC1967NonPayable",type:"error"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"owner",type:"address"}],name:"ERC721IncorrectOwner",type:"error"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ERC721InsufficientApproval",type:"error"},{inputs:[{internalType:"address",name:"approver",type:"address"}],name:"ERC721InvalidApprover",type:"error"},{inputs:[{internalType:"address",name:"operator",type:"address"}],name:"ERC721InvalidOperator",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"ERC721InvalidOwner",type:"error"},{inputs:[{internalType:"address",name:"receiver",type:"address"}],name:"ERC721InvalidReceiver",type:"error"},{inputs:[{internalType:"address",name:"sender",type:"address"}],name:"ERC721InvalidSender",type:"error"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ERC721NonexistentToken",type:"error"},{inputs:[],name:"EnforcedPause",type:"error"},{inputs:[],name:"ExpectedPause",type:"error"},{inputs:[],name:"FailedCall",type:"error"},{inputs:[],name:"InvalidDeadline",type:"error"},{inputs:[],name:"InvalidDuration",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"InvalidPaymentToken",type:"error"},{inputs:[],name:"InvalidPrice",type:"error"},{inputs:[],name:"InvalidRoyalty",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[],name:"NotTokenOwner",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"OwnableInvalidOwner",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"OwnableUnauthorizedAccount",type:"error"},{inputs:[],name:"TokenAlreadyExists",type:"error"},{inputs:[],name:"UUPSUnauthorizedCallContext",type:"error"},{inputs:[{internalType:"bytes32",name:"slot",type:"bytes32"}],name:"UUPSUnsupportedProxiableUUID",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"buyer",type:"address"},{indexed:!1,internalType:"uint32",name:"periods",type:"uint32"},{indexed:!1,internalType:"uint256",name:"newExpiry",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amountPaid",type:"uint256"}],name:"AccessPurchased",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"agentId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"ipNftId",type:"uint256"},{indexed:!1,internalType:"address",name:"agentAddress",type:"address"}],name:"AgentRegistered",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"appRegistry",type:"address"}],name:"AppRegistryUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"approved",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"uint256",name:"childIp",type:"uint256"},{indexed:!1,internalType:"uint256",name:"parentIp",type:"uint256"}],name:"ChildIpTagged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"creator",type:"address"}],name:"DataDeleted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"creator",type:"address"},{indexed:!1,internalType:"bytes32",name:"contentHash",type:"bytes32"},{indexed:!1,internalType:"uint256[]",name:"parents",type:"uint256[]"}],name:"DataMinted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"counterEvidenceHash",type:"bytes32"}],name:"DisputeAssertion",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"DisputeCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"bool",name:"judgement",type:"bool"}],name:"DisputeJudged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"disputeModule",type:"address"}],name:"DisputeModuleUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"address",name:"initiator",type:"address"},{indexed:!0,internalType:"uint256",name:"targetId",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"disputeTag",type:"bytes32"}],name:"DisputeRaised",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"marketPlace",type:"address"}],name:"MarketPlaceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"childIpId",type:"uint256"},{indexed:!1,internalType:"uint256[]",name:"parentIds",type:"uint256[]"},{indexed:!1,internalType:"uint16",name:"totalRoyaltyBps",type:"uint16"}],name:"ParentIpsSet",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint16",name:"newFeeBps",type:"uint16"}],name:"ProtocolFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"royaltyAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"creator",type:"address"},{indexed:!1,internalType:"uint256",name:"protocolAmount",type:"uint256"}],name:"RoyaltyPaid",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"vault",type:"address"}],name:"RoyaltyVaultDeployed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"royaltyVaultFactory",type:"address"}],name:"RoyaltyVaultFactoryUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"signer",type:"address"}],name:"SignerUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"enum IIpNFT.DataStatus",name:"status",type:"uint8"}],name:"StatusUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint128",name:"newPrice",type:"uint128"},{indexed:!1,internalType:"uint32",name:"newDuration",type:"uint32"},{indexed:!1,internalType:"uint16",name:"newRoyaltyBps",type:"uint16"},{indexed:!1,internalType:"address",name:"paymentToken",type:"address"}],name:"TermsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newTreasury",type:"address"}],name:"TreasuryUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"address",name:"voter",type:"address"},{indexed:!1,internalType:"bool",name:"support",type:"bool"},{indexed:!1,internalType:"uint256",name:"weight",type:"uint256"}],name:"Voted",type:"event"},{inputs:[],name:"UPGRADE_INTERFACE_VERSION",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"appRegistry",outputs:[{internalType:"contract AppRegistry",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"dataStatus",outputs:[{internalType:"enum IIpNFT.DataStatus",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"disputeModule",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"erc6551Account",outputs:[{internalType:"contract IERC6551Account",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"erc6551Registry",outputs:[{internalType:"contract IERC6551Registry",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"finalizeDelete",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getAccount",outputs:[{internalType:"address",name:"account",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getRoyaltyVault",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getTerms",outputs:[{components:[{internalType:"uint128",name:"price",type:"uint128"},{internalType:"uint32",name:"duration",type:"uint32"},{internalType:"uint16",name:"royaltyBps",type:"uint16"},{internalType:"address",name:"paymentToken",type:"address"},{internalType:"enum IIpNFT.LicenseType",name:"licenseType",type:"uint8"}],internalType:"struct IIpNFT.LicenseTerms",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"},{internalType:"uint256",name:"maxTermDuration_",type:"uint256"},{internalType:"address",name:"signer_",type:"address"},{internalType:"address",name:"wCAMP_",type:"address"},{internalType:"uint256",name:"minTermDuration_",type:"uint256"},{internalType:"uint256",name:"minPrice_",type:"uint256"},{internalType:"uint256",name:"maxRoyaltyBps_",type:"uint256"},{internalType:"contract IERC6551Registry",name:"registry_",type:"address"},{internalType:"contract IERC6551Account",name:"implementation_",type:"address"},{internalType:"contract AppRegistry",name:"appRegistry_",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"markDisputed",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"marketPlace",outputs:[{internalType:"contract IMarketplace",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"maxRoyaltyBps",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"maxTermDuration",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"minPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"minTermDuration",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes32",name:"creatorContentHash",type:"bytes32"},{internalType:"string",name:"uri",type:"string"},{components:[{internalType:"uint128",name:"price",type:"uint128"},{internalType:"uint32",name:"duration",type:"uint32"},{internalType:"uint16",name:"royaltyBps",type:"uint16"},{internalType:"address",name:"paymentToken",type:"address"},{internalType:"enum IIpNFT.LicenseType",name:"licenseType",type:"uint8"}],internalType:"struct IIpNFT.LicenseTerms",name:"licenseTerms",type:"tuple"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint256[]",name:"parents",type:"uint256[]"},{internalType:"bool",name:"isIP",type:"bool"},{internalType:"string",name:"appId",type:"string"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"mintWithSignature",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"proxiableUUID",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"royaltyVaultFactory",outputs:[{internalType:"contract IpRoyaltyVaultFactory",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_appRegistry",type:"address"}],name:"setAppRegistry",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_disputeModule",type:"address"}],name:"setDisputeModule",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_marketPlace",type:"address"}],name:"setMarketPlace",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_royaltyVaultFactory",type:"address"}],name:"setRoyaltyVaultFactory",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_signer",type:"address"}],name:"setSigner",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"signer",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"tokenInfo",outputs:[{components:[{internalType:"string",name:"tokenURI",type:"string"},{internalType:"bool",name:"isIP",type:"bool"},{internalType:"bytes32",name:"contentHash",type:"bytes32"},{components:[{internalType:"uint128",name:"price",type:"uint128"},{internalType:"uint32",name:"duration",type:"uint32"},{internalType:"uint16",name:"royaltyBps",type:"uint16"},{internalType:"address",name:"paymentToken",type:"address"},{internalType:"enum IIpNFT.LicenseType",name:"licenseType",type:"uint8"}],internalType:"struct IIpNFT.LicenseTerms",name:"terms",type:"tuple"},{internalType:"enum IIpNFT.DataStatus",name:"status",type:"uint8"},{internalType:"string",name:"appId",type:"string"}],internalType:"struct IIpNFT.TokenInfo",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{components:[{internalType:"uint128",name:"price",type:"uint128"},{internalType:"uint32",name:"duration",type:"uint32"},{internalType:"uint16",name:"royaltyBps",type:"uint16"},{internalType:"address",name:"paymentToken",type:"address"},{internalType:"enum IIpNFT.LicenseType",name:"licenseType",type:"uint8"}],internalType:"struct IIpNFT.LicenseTerms",name:"newTerms",type:"tuple"}],name:"updateTerms",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"wCAMP",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}],S=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"address",name:"target",type:"address"}],name:"AddressEmptyCode",type:"error"},{inputs:[{internalType:"address",name:"implementation",type:"address"}],name:"ERC1967InvalidImplementation",type:"error"},{inputs:[],name:"ERC1967NonPayable",type:"error"},{inputs:[],name:"EnforcedPause",type:"error"},{inputs:[],name:"ExpectedPause",type:"error"},{inputs:[],name:"FailedCall",type:"error"},{inputs:[],name:"FeesExceedMaximum",type:"error"},{inputs:[],name:"FeesMismatch",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"InvalidLicenseType",type:"error"},{inputs:[],name:"InvalidParentIp",type:"error"},{inputs:[],name:"InvalidPayment",type:"error"},{inputs:[],name:"InvalidPrice",type:"error"},{inputs:[],name:"InvalidRoyalty",type:"error"},{inputs:[],name:"MaxParentsExceeded",type:"error"},{inputs:[],name:"MaxRoyaltyExceeded",type:"error"},{inputs:[],name:"NoSubscriptionFound",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"OwnableInvalidOwner",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"OwnableUnauthorizedAccount",type:"error"},{inputs:[],name:"ParentAlreadyExists",type:"error"},{inputs:[],name:"ParentIpAlreadyDeleted",type:"error"},{inputs:[],name:"ParentIpAlreadyDisputed",type:"error"},{inputs:[],name:"SubscriptionNotAllowed",type:"error"},{inputs:[],name:"TermsMismatch",type:"error"},{inputs:[],name:"UUPSUnauthorizedCallContext",type:"error"},{inputs:[{internalType:"bytes32",name:"slot",type:"bytes32"}],name:"UUPSUnsupportedProxiableUUID",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[],name:"VaultNotFound",type:"error"},{inputs:[],name:"ZeroAddress",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"buyer",type:"address"},{indexed:!1,internalType:"uint32",name:"periods",type:"uint32"},{indexed:!1,internalType:"uint256",name:"newExpiry",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amountPaid",type:"uint256"}],name:"AccessPurchased",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"agentId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"ipNftId",type:"uint256"},{indexed:!1,internalType:"address",name:"agentAddress",type:"address"}],name:"AgentRegistered",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"appRegistry",type:"address"}],name:"AppRegistryUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"uint256",name:"childIp",type:"uint256"},{indexed:!1,internalType:"uint256",name:"parentIp",type:"uint256"}],name:"ChildIpTagged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"creator",type:"address"}],name:"DataDeleted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"creator",type:"address"},{indexed:!1,internalType:"bytes32",name:"contentHash",type:"bytes32"},{indexed:!1,internalType:"uint256[]",name:"parents",type:"uint256[]"}],name:"DataMinted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"counterEvidenceHash",type:"bytes32"}],name:"DisputeAssertion",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"DisputeCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"bool",name:"judgement",type:"bool"}],name:"DisputeJudged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"disputeModule",type:"address"}],name:"DisputeModuleUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"address",name:"initiator",type:"address"},{indexed:!0,internalType:"uint256",name:"targetId",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"disputeTag",type:"bytes32"}],name:"DisputeRaised",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"marketPlace",type:"address"}],name:"MarketPlaceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"childIpId",type:"uint256"},{indexed:!1,internalType:"uint256[]",name:"parentIds",type:"uint256[]"},{indexed:!1,internalType:"uint16",name:"totalRoyaltyBps",type:"uint16"}],name:"ParentIpsSet",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint16",name:"newFeeBps",type:"uint16"}],name:"ProtocolFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"royaltyAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"creator",type:"address"},{indexed:!1,internalType:"uint256",name:"protocolAmount",type:"uint256"}],name:"RoyaltyPaid",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"vault",type:"address"}],name:"RoyaltyVaultDeployed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"royaltyVaultFactory",type:"address"}],name:"RoyaltyVaultFactoryUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"signer",type:"address"}],name:"SignerUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"enum IIpNFT.DataStatus",name:"status",type:"uint8"}],name:"StatusUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint128",name:"newPrice",type:"uint128"},{indexed:!1,internalType:"uint32",name:"newDuration",type:"uint32"},{indexed:!1,internalType:"uint16",name:"newRoyaltyBps",type:"uint16"},{indexed:!1,internalType:"address",name:"paymentToken",type:"address"}],name:"TermsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newTreasury",type:"address"}],name:"TreasuryUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"address",name:"voter",type:"address"},{indexed:!1,internalType:"bool",name:"support",type:"bool"},{indexed:!1,internalType:"uint256",name:"weight",type:"uint256"}],name:"Voted",type:"event"},{inputs:[],name:"MAX_PARENTS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"UPGRADE_INTERFACE_VERSION",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"buyer",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"expectedPrice",type:"uint256"},{internalType:"uint32",name:"expectedDuration",type:"uint32"},{internalType:"address",name:"expectedPaymentToken",type:"address"},{internalType:"uint16",name:"expectedProtocolFeeBps",type:"uint16"},{internalType:"uint16",name:"expectedAppFeeBps",type:"uint16"}],name:"buyAccess",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"revenueToken",type:"address"}],name:"claimRevenue",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address[]",name:"revenueTokens",type:"address[]"}],name:"claimRevenueBatch",outputs:[{internalType:"uint256[]",name:"",type:"uint256[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"holder",type:"address"},{internalType:"address",name:"revenueToken",type:"address"}],name:"claimableRevenue",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getRoyaltyVault",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getVaultRevenueTokens",outputs:[{internalType:"address[]",name:"",type:"address[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"ipId",type:"uint256"},{internalType:"uint256",name:"parent",type:"uint256"}],name:"hasParentIp",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"dataNFT_",type:"address"},{internalType:"uint16",name:"protocolFeeBps_",type:"uint16"},{internalType:"address",name:"treasury_",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"ipToken",outputs:[{internalType:"contract IIpNFT",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"}],name:"parentRoyaltyPercent",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"protocolFeeBps",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"proxiableUUID",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"royaltyStack",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"childIpId",type:"uint256"},{internalType:"uint256[]",name:"parents",type:"uint256[]"},{internalType:"address",name:"creator",type:"address"}],name:"setParentIpsAndRoyaltyPercents",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"},{internalType:"address",name:"",type:"address"}],name:"subscriptionExpiry",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"treasury",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"newFeeBps",type:"uint16"}],name:"updateProtocolFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newTreasury",type:"address"}],name:"updateTreasury",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"}],P=[{type:"receive",stateMutability:"payable"},{type:"function",name:"execute",inputs:[{name:"to",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"},{name:"data",type:"bytes",internalType:"bytes"},{name:"operation",type:"uint8",internalType:"uint8"}],outputs:[{name:"result",type:"bytes",internalType:"bytes"}],stateMutability:"payable"},{type:"function",name:"isValidSignature",inputs:[{name:"hash",type:"bytes32",internalType:"bytes32"},{name:"signature",type:"bytes",internalType:"bytes"}],outputs:[{name:"magicValue",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"isValidSigner",inputs:[{name:"signer",type:"address",internalType:"address"},{name:"",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"state",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"token",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"address",internalType:"address"},{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"}],x=[{inputs:[{internalType:"address",name:"_marketplace",type:"address"},{internalType:"address",name:"_ipNFT",type:"address"},{internalType:"address",name:"_appRegistry",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"EmptyMintList",type:"error"},{inputs:[],name:"EmptyPurchaseList",type:"error"},{inputs:[],name:"InsufficientAllowance",type:"error"},{inputs:[],name:"InvalidTotalPayment",type:"error"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"string",name:"reason",type:"string"}],name:"MintFailed",type:"error"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"string",name:"reason",type:"string"}],name:"PurchaseFailed",type:"error"},{inputs:[],name:"ReentrancyGuardReentrantCall",type:"error"},{inputs:[],name:"RefundFailed",type:"error"},{inputs:[],name:"ZeroAddress",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"minter",type:"address"},{indexed:!1,internalType:"uint256",name:"count",type:"uint256"}],name:"BulkMintExecuted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"minter",type:"address"},{indexed:!1,internalType:"uint256",name:"successCount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"failureCount",type:"uint256"},{indexed:!1,internalType:"uint256[]",name:"failedTokenIds",type:"uint256[]"}],name:"BulkMintPartial",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"buyer",type:"address"},{indexed:!1,internalType:"uint256",name:"count",type:"uint256"},{indexed:!1,internalType:"uint256",name:"totalPaid",type:"uint256"}],name:"BulkPurchaseExecuted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"buyer",type:"address"},{indexed:!1,internalType:"uint256",name:"successCount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"failureCount",type:"uint256"},{indexed:!1,internalType:"uint256[]",name:"failedTokenIds",type:"uint256[]"}],name:"BulkPurchasePartial",type:"event"},{inputs:[],name:"appRegistry",outputs:[{internalType:"contract IAppRegistry",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256[]",name:"tokenIds",type:"uint256[]"}],name:"buildPurchaseParams",outputs:[{components:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"expectedPrice",type:"uint256"},{internalType:"uint32",name:"expectedDuration",type:"uint32"},{internalType:"address",name:"expectedPaymentToken",type:"address"},{internalType:"uint16",name:"expectedProtocolFeeBps",type:"uint16"},{internalType:"uint16",name:"expectedAppFeeBps",type:"uint16"}],internalType:"struct IBatchOperations.BuyParams[]",name:"purchases",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"buyer",type:"address"},{components:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"expectedPrice",type:"uint256"},{internalType:"uint32",name:"expectedDuration",type:"uint32"},{internalType:"address",name:"expectedPaymentToken",type:"address"},{internalType:"uint16",name:"expectedProtocolFeeBps",type:"uint16"},{internalType:"uint16",name:"expectedAppFeeBps",type:"uint16"}],internalType:"struct IBatchOperations.BuyParams[]",name:"purchases",type:"tuple[]"}],name:"bulkBuyAccess",outputs:[{internalType:"uint256",name:"totalPaid",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"buyer",type:"address"},{components:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"expectedPrice",type:"uint256"},{internalType:"uint32",name:"expectedDuration",type:"uint32"},{internalType:"address",name:"expectedPaymentToken",type:"address"},{internalType:"uint16",name:"expectedProtocolFeeBps",type:"uint16"},{internalType:"uint16",name:"expectedAppFeeBps",type:"uint16"}],internalType:"struct IBatchOperations.BuyParams[]",name:"purchases",type:"tuple[]"}],name:"bulkBuyAccessTolerant",outputs:[{components:[{internalType:"uint256",name:"successCount",type:"uint256"},{internalType:"uint256",name:"failureCount",type:"uint256"},{internalType:"uint256",name:"totalSpent",type:"uint256"},{internalType:"uint256",name:"refundAmount",type:"uint256"},{internalType:"uint256[]",name:"failedTokenIds",type:"uint256[]"}],internalType:"struct IBatchOperations.TolerantResult",name:"result",type:"tuple"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes32",name:"creatorContentHash",type:"bytes32"},{internalType:"string",name:"uri",type:"string"},{components:[{internalType:"uint128",name:"price",type:"uint128"},{internalType:"uint32",name:"duration",type:"uint32"},{internalType:"uint16",name:"royaltyBps",type:"uint16"},{internalType:"address",name:"paymentToken",type:"address"},{internalType:"uint8",name:"licenseType",type:"uint8"}],internalType:"struct IBatchOperations.LicenseTermsParam",name:"licenseTerms",type:"tuple"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint256[]",name:"parents",type:"uint256[]"},{internalType:"bool",name:"isIP",type:"bool"},{internalType:"string",name:"appId",type:"string"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct IBatchOperations.MintParams[]",name:"mints",type:"tuple[]"}],name:"bulkMint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes32",name:"creatorContentHash",type:"bytes32"},{internalType:"string",name:"uri",type:"string"},{components:[{internalType:"uint128",name:"price",type:"uint128"},{internalType:"uint32",name:"duration",type:"uint32"},{internalType:"uint16",name:"royaltyBps",type:"uint16"},{internalType:"address",name:"paymentToken",type:"address"},{internalType:"uint8",name:"licenseType",type:"uint8"}],internalType:"struct IBatchOperations.LicenseTermsParam",name:"licenseTerms",type:"tuple"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint256[]",name:"parents",type:"uint256[]"},{internalType:"bool",name:"isIP",type:"bool"},{internalType:"string",name:"appId",type:"string"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct IBatchOperations.MintParams[]",name:"mints",type:"tuple[]"}],name:"bulkMintTolerant",outputs:[{components:[{internalType:"uint256",name:"successCount",type:"uint256"},{internalType:"uint256",name:"failureCount",type:"uint256"},{internalType:"uint256[]",name:"failedTokenIds",type:"uint256[]"}],internalType:"struct IBatchOperations.TolerantMintResult",name:"result",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256[]",name:"tokenIds",type:"uint256[]"}],name:"checkActiveStatus",outputs:[{internalType:"bool[]",name:"activeFlags",type:"bool[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"ipNFT",outputs:[{internalType:"contract IIpNFT",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"marketplace",outputs:[{internalType:"contract IMarketplace",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256[]",name:"tokenIds",type:"uint256[]"}],name:"previewBulkCost",outputs:[{components:[{internalType:"uint256",name:"totalNativeCost",type:"uint256"},{internalType:"uint256",name:"totalERC20Cost",type:"uint256"},{internalType:"uint256",name:"validCount",type:"uint256"},{internalType:"uint256[]",name:"invalidTokenIds",type:"uint256[]"}],internalType:"struct IBatchOperations.BulkCostPreview",name:"preview",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"buyer",type:"address"},{components:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"expectedPrice",type:"uint256"},{internalType:"uint32",name:"expectedDuration",type:"uint32"},{internalType:"address",name:"expectedPaymentToken",type:"address"},{internalType:"uint16",name:"expectedProtocolFeeBps",type:"uint16"},{internalType:"uint16",name:"expectedAppFeeBps",type:"uint16"}],internalType:"struct IBatchOperations.BuyParams",name:"params",type:"tuple"}],name:"tryERC20Purchase",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],_=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"address",name:"target",type:"address"}],name:"AddressEmptyCode",type:"error"},{inputs:[],name:"AlreadyVoted",type:"error"},{inputs:[],name:"CoolDownPeriodActive",type:"error"},{inputs:[],name:"CoolDownPeriodOver",type:"error"},{inputs:[{internalType:"address",name:"implementation",type:"address"}],name:"ERC1967InvalidImplementation",type:"error"},{inputs:[],name:"ERC1967NonPayable",type:"error"},{inputs:[],name:"EvidenceAlreadyUsed",type:"error"},{inputs:[],name:"FailedCall",type:"error"},{inputs:[],name:"InvalidBondFeeBps",type:"error"},{inputs:[],name:"InvalidChildIpId",type:"error"},{inputs:[],name:"InvalidDisputeStatus",type:"error"},{inputs:[],name:"InvalidDisputeTag",type:"error"},{inputs:[],name:"InvalidEvidenceHash",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"InvalidTargetIp",type:"error"},{inputs:[],name:"NoVotingPower",type:"error"},{inputs:[],name:"NotAParentIp",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[],name:"NotInitiator",type:"error"},{inputs:[],name:"NotTokenOwner",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"OwnableInvalidOwner",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"OwnableUnauthorizedAccount",type:"error"},{inputs:[],name:"ParentNotDisputed",type:"error"},{inputs:[],name:"SelfAssertionNotAllowed",type:"error"},{inputs:[],name:"StakedAfterDispute",type:"error"},{inputs:[],name:"TagNotAllowed",type:"error"},{inputs:[],name:"UUPSUnauthorizedCallContext",type:"error"},{inputs:[{internalType:"bytes32",name:"slot",type:"bytes32"}],name:"UUPSUnsupportedProxiableUUID",type:"error"},{inputs:[],name:"VotingPeriodActive",type:"error"},{inputs:[],name:"VotingPeriodOver",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"buyer",type:"address"},{indexed:!1,internalType:"uint32",name:"periods",type:"uint32"},{indexed:!1,internalType:"uint256",name:"newExpiry",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amountPaid",type:"uint256"}],name:"AccessPurchased",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"agentId",type:"uint256"},{indexed:!0,internalType:"uint256",name:"ipNftId",type:"uint256"},{indexed:!1,internalType:"address",name:"agentAddress",type:"address"}],name:"AgentRegistered",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"appRegistry",type:"address"}],name:"AppRegistryUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"uint256",name:"childIp",type:"uint256"},{indexed:!1,internalType:"uint256",name:"parentIp",type:"uint256"}],name:"ChildIpTagged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"creator",type:"address"}],name:"DataDeleted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"creator",type:"address"},{indexed:!1,internalType:"bytes32",name:"contentHash",type:"bytes32"},{indexed:!1,internalType:"uint256[]",name:"parents",type:"uint256[]"}],name:"DataMinted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"counterEvidenceHash",type:"bytes32"}],name:"DisputeAssertion",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"DisputeCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"bool",name:"judgement",type:"bool"}],name:"DisputeJudged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"disputeModule",type:"address"}],name:"DisputeModuleUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"address",name:"initiator",type:"address"},{indexed:!0,internalType:"uint256",name:"targetId",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"disputeTag",type:"bytes32"}],name:"DisputeRaised",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"marketPlace",type:"address"}],name:"MarketPlaceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"childIpId",type:"uint256"},{indexed:!1,internalType:"uint256[]",name:"parentIds",type:"uint256[]"},{indexed:!1,internalType:"uint16",name:"totalRoyaltyBps",type:"uint16"}],name:"ParentIpsSet",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint16",name:"newFeeBps",type:"uint16"}],name:"ProtocolFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"royaltyAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"creator",type:"address"},{indexed:!1,internalType:"uint256",name:"protocolAmount",type:"uint256"}],name:"RoyaltyPaid",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"vault",type:"address"}],name:"RoyaltyVaultDeployed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"royaltyVaultFactory",type:"address"}],name:"RoyaltyVaultFactoryUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"signer",type:"address"}],name:"SignerUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"enum IIpNFT.DataStatus",name:"status",type:"uint8"}],name:"StatusUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint128",name:"newPrice",type:"uint128"},{indexed:!1,internalType:"uint32",name:"newDuration",type:"uint32"},{indexed:!1,internalType:"uint16",name:"newRoyaltyBps",type:"uint16"},{indexed:!1,internalType:"address",name:"paymentToken",type:"address"}],name:"TermsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newTreasury",type:"address"}],name:"TreasuryUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"address",name:"voter",type:"address"},{indexed:!1,internalType:"bool",name:"support",type:"bool"},{indexed:!1,internalType:"uint256",name:"weight",type:"uint256"}],name:"Voted",type:"event"},{inputs:[],name:"UPGRADE_INTERFACE_VERSION",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"cancelDispute",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"},{internalType:"bytes32",name:"_counterEvidenceHash",type:"bytes32"}],name:"disputeAssertion",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"disputeBond",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"disputeCoolDownPeriod",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"disputeCounter",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"disputeJudgementPeriod",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"disputeQuorum",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"disputeToken",outputs:[{internalType:"contract IERC20",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"disputes",outputs:[{internalType:"address",name:"initiator",type:"address"},{internalType:"uint256",name:"targetId",type:"uint256"},{internalType:"bytes32",name:"disputeTag",type:"bytes32"},{internalType:"bytes32",name:"disputeEvidenceHash",type:"bytes32"},{internalType:"bytes32",name:"counterEvidenceHash",type:"bytes32"},{internalType:"uint256",name:"disputeTimestamp",type:"uint256"},{internalType:"uint256",name:"assertionTimestamp",type:"uint256"},{internalType:"uint256",name:"yesVotes",type:"uint256"},{internalType:"uint256",name:"noVotes",type:"uint256"},{internalType:"enum DisputeModule.DisputeStatus",name:"status",type:"uint8"},{internalType:"uint256",name:"bondAmount",type:"uint256"},{internalType:"uint256",name:"protocolFeeAmount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"},{internalType:"address",name:"",type:"address"}],name:"hasVoted",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract IIpNFT",name:"_ipToken",type:"address"},{internalType:"contract IMarketplace",name:"_marketplace",type:"address"},{internalType:"contract IERC20",name:"_disputeToken",type:"address"},{internalType:"uint256",name:"_disputeBond",type:"uint256"},{internalType:"uint256",name:"_disputeCoolDownPeriod",type:"uint256"},{internalType:"uint256",name:"_disputeJudgementPeriod",type:"uint256"},{internalType:"uint16",name:"_bondFeeBPS",type:"uint16"},{internalType:"uint256",name:"_stakingThreshold",type:"uint256"},{internalType:"contract ICampStakingVault",name:"_stakingVault",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"ipToken",outputs:[{internalType:"contract IIpNFT",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"isUsedEvidenceHash",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"marketplace",outputs:[{internalType:"contract IMarketplace",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"protocolDisputeFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"proxiableUUID",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_targetIpId",type:"uint256"},{internalType:"bytes32",name:"_disputeEvidenceHash",type:"bytes32"},{internalType:"bytes32",name:"_disputeTag",type:"bytes32"}],name:"raiseDispute",outputs:[{internalType:"uint256",name:"id",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"resolveDispute",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_disputeQuorum",type:"uint256"}],name:"setDisputeQuorum",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"stakingThreshold",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"stakingVault",outputs:[{internalType:"contract ICampStakingVault",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_childIpId",type:"uint256"},{internalType:"uint256",name:"_infringerDisputeId",type:"uint256"}],name:"tagChildIp",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"},{internalType:"bool",name:"support",type:"bool"}],name:"voteOnDispute",outputs:[],stateMutability:"nonpayable",type:"function"}],k=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"address",name:"target",type:"address"}],name:"AddressEmptyCode",type:"error"},{inputs:[],name:"AppAlreadyActive",type:"error"},{inputs:[],name:"AppAlreadyExists",type:"error"},{inputs:[],name:"AppAlreadyInactive",type:"error"},{inputs:[],name:"AppNotFound",type:"error"},{inputs:[{internalType:"address",name:"implementation",type:"address"}],name:"ERC1967InvalidImplementation",type:"error"},{inputs:[],name:"ERC1967NonPayable",type:"error"},{inputs:[],name:"FailedCall",type:"error"},{inputs:[],name:"InvalidAppId",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"InvalidRoyalty",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"OwnableInvalidOwner",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"OwnableUnauthorizedAccount",type:"error"},{inputs:[],name:"UUPSUnauthorizedCallContext",type:"error"},{inputs:[{internalType:"bytes32",name:"slot",type:"bytes32"}],name:"UUPSUnsupportedProxiableUUID",type:"error"},{inputs:[],name:"ZeroAddress",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"appId",type:"string"}],name:"AppDeactivated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"appId",type:"string"}],name:"AppReactivated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"appId",type:"string"},{indexed:!1,internalType:"address",name:"treasury",type:"address"},{indexed:!1,internalType:"uint16",name:"revenueShareBps",type:"uint16"}],name:"AppRegistered",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"appId",type:"string"},{indexed:!1,internalType:"address",name:"treasury",type:"address"},{indexed:!1,internalType:"uint16",name:"revenueShareBps",type:"uint16"}],name:"AppUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[],name:"UPGRADE_INTERFACE_VERSION",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"string",name:"",type:"string"}],name:"appExists",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"string",name:"",type:"string"}],name:"apps",outputs:[{internalType:"address",name:"treasury",type:"address"},{internalType:"uint16",name:"revenueShareBps",type:"uint16"},{internalType:"bool",name:"isActive",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"string",name:"appId",type:"string"}],name:"deactivateApp",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"appId",type:"string"}],name:"getAppInfo",outputs:[{components:[{internalType:"address",name:"treasury",type:"address"},{internalType:"uint16",name:"revenueShareBps",type:"uint16"},{internalType:"bool",name:"isActive",type:"bool"}],internalType:"struct AppRegistry.AppInfo",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"proxiableUUID",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"string",name:"appId",type:"string"}],name:"reactivateApp",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"appId",type:"string"},{internalType:"address",name:"treasury",type:"address"},{internalType:"uint16",name:"revenueShareBps",type:"uint16"}],name:"registerApp",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"appId",type:"string"},{internalType:"address",name:"treasury",type:"address"},{internalType:"uint16",name:"revenueShareBps",type:"uint16"}],name:"updateApp",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"}],D=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"address",name:"target",type:"address"}],name:"AddressEmptyCode",type:"error"},{inputs:[{internalType:"address",name:"implementation",type:"address"}],name:"ERC1967InvalidImplementation",type:"error"},{inputs:[],name:"ERC1967NonPayable",type:"error"},{inputs:[],name:"FailedCall",type:"error"},{inputs:[],name:"FailedDeployment",type:"error"},{inputs:[{internalType:"uint256",name:"balance",type:"uint256"},{internalType:"uint256",name:"needed",type:"uint256"}],name:"InsufficientBalance",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"OwnableInvalidOwner",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"OwnableUnauthorizedAccount",type:"error"},{inputs:[],name:"UUPSUnauthorizedCallContext",type:"error"},{inputs:[{internalType:"bytes32",name:"slot",type:"bytes32"}],name:"UUPSUnsupportedProxiableUUID",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[],name:"VaultAlreadyExists",type:"error"},{inputs:[],name:"VaultNotFound",type:"error"},{inputs:[],name:"ZeroAddress",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldImplementation",type:"address"},{indexed:!0,internalType:"address",name:"newImplementation",type:"address"}],name:"ImplementationUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"vault",type:"address"},{indexed:!0,internalType:"address",name:"initialOwner",type:"address"}],name:"VaultDeployed",type:"event"},{inputs:[],name:"UPGRADE_INTERFACE_VERSION",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"initialOwner",type:"address"}],name:"deployVault",outputs:[{internalType:"address",name:"vault",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"deployVaultForExistingNFT",outputs:[{internalType:"address",name:"vault",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getVault",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"implementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"ipNft_",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"ipNft",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"isVault",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"predictVaultAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"proxiableUUID",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"setImplementation",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"upgradeToAndCall",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"vaults",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}],R="Connect with Camp Network",N=20971520,M=2628e3,B=86400,F=1e15,O=1,U=1e4;const $={DEVELOPMENT:{NAME:"DEVELOPMENT",AUTH_HUB_BASE_API:"https://origin-backend-iota.vercel.app",ORIGIN_DASHBOARD:"https://origin.campnetwork.xyz",DATANFT_CONTRACT_ADDRESS:"0x4d9aF5800701A4A686Df6b096A27B81486de36eB",MARKETPLACE_CONTRACT_ADDRESS:"0x68B202caA162C418d3A2DF92F29fA1CAF90C58c1",BATCH_OPERATIONS_CONTRACT_ADDRESS:"0xe1247F1663925B99Db62e60480B53e37f2bb8738",DISPUTE_CONTRACT_ADDRESS:"0x45719337b1450b0D105cA671972be4263E6A9380",APP_REGISTRY_CONTRACT_ADDRESS:"0x2096eb980Dd590DDF690Cb698572b80552B6F9Bb",IP_ROYALTY_VAULT_FACTORY_CONTRACT_ADDRESS:"0x16e01D1CB5de9460f8ed9D1883f5aFD377798f38",CHAIN:c,IPNFT_ABI:E,MARKETPLACE_ABI:S,TBA_ABI:P,BATCH_OPERATIONS_ABI:x,DISPUTE_ABI:_,APP_REGISTRY_ABI:k,IP_ROYALTY_VAULT_FACTORY_ABI:D},PRODUCTION:{NAME:"PRODUCTION",AUTH_HUB_BASE_API:"https://origin-backend-mainnet.vercel.app",ORIGIN_DASHBOARD:"https://origin.campnetwork.xyz",DATANFT_CONTRACT_ADDRESS:"0x39EeE1C3989f0dD543Dee60f8582F7F81F522C38",MARKETPLACE_CONTRACT_ADDRESS:"0xc69BAa987757d054455fC0f2d9797684E9FB8b9C",BATCH_OPERATIONS_CONTRACT_ADDRESS:"0x6B89810768b708465f31b6a8B8d753cc986489F1",DISPUTE_CONTRACT_ADDRESS:"0x947A3C4A45f7039e77643026A090025D5412EDa2",
62
62
  // TODO: update with real factory address once deployed
63
- IP_ROYALTY_VAULT_FACTORY_CONTRACT_ADDRESS:"",APP_REGISTRY_CONTRACT_ADDRESS:"0xd09F15aA280F9109aCd403cA920e67D40Cb6C3FA",CHAIN:m,IPNFT_ABI:E,MARKETPLACE_ABI:S,TBA_ABI:x,BATCH_OPERATIONS_ABI:P,DISPUTE_ABI:R,APP_REGISTRY_ABI:D,IP_ROYALTY_VAULT_FACTORY_ABI:_}};let $=[];const H=()=>$,V=e=>{function t(t){$.some((e=>e.info.uuid===t.detail.info.uuid))||($=[...$,t.detail],e($))}if("undefined"!=typeof window)return window.addEventListener("eip6963:announceProvider",t),window.dispatchEvent(new Event("eip6963:requestProvider")),()=>window.removeEventListener("eip6963:announceProvider",t)},j=(e,t,n)=>{const s=[];let r=[],o=!1,p=0;const d=e.length;return new Promise(((u,l)=>{function y(){n(p/d*100)}function c(e,t,n){return a(this,arguments,void 0,(function*(e,t,n,a=0){var s;try{const a=null===(s=(yield i.put(t,e,{headers:{"Content-Type":e.type||"application/octet-stream"},timeout:3e5})).headers.etag)||void 0===s?void 0:s.replace(/"/g,"");if(!a)throw new Error(`Missing ETag for part ${n}`);return{ETag:a,PartNumber:n}}catch(i){if(a<3){const i=1e3*Math.pow(2,a);// Exponential backoff
63
+ IP_ROYALTY_VAULT_FACTORY_CONTRACT_ADDRESS:"",APP_REGISTRY_CONTRACT_ADDRESS:"0xd09F15aA280F9109aCd403cA920e67D40Cb6C3FA",CHAIN:m,IPNFT_ABI:E,MARKETPLACE_ABI:S,TBA_ABI:P,BATCH_OPERATIONS_ABI:x,DISPUTE_ABI:_,APP_REGISTRY_ABI:k,IP_ROYALTY_VAULT_FACTORY_ABI:D}};let H=[];const j=()=>H,V=e=>{function t(t){H.some((e=>e.info.uuid===t.detail.info.uuid))||(H=[...H,t.detail],e(H))}if("undefined"!=typeof window)return window.addEventListener("eip6963:announceProvider",t),window.dispatchEvent(new Event("eip6963:requestProvider")),()=>window.removeEventListener("eip6963:announceProvider",t)},L=(e,t,n)=>{const s=[];let r=[],o=!1,d=0;const p=e.length;return new Promise(((u,l)=>{function y(){n(d/p*100)}function c(e,t,n){return a(this,arguments,void 0,(function*(e,t,n,a=0){var s;try{const a=null===(s=(yield i.put(t,e,{headers:{"Content-Type":e.type||"application/octet-stream"},timeout:3e5})).headers.etag)||void 0===s?void 0:s.replace(/"/g,"");if(!a)throw new Error(`Missing ETag for part ${n}`);return{ETag:a,PartNumber:n}}catch(i){if(a<3){const i=1e3*Math.pow(2,a);// Exponential backoff
64
64
  return yield new Promise((e=>setTimeout(e,i))),c(e,t,n,a+1)}throw new Error(`Part ${n} failed after 3 retries: ${i.message}`)}}))}
65
65
  // Expose abort method
66
- j.abort=()=>{o=!0,i.isCancel("Upload aborted")},y(),// Initial 0%
67
- function(){return a(this,void 0,void 0,(function*(){const n=[];for(let i=0;i<d&&!o;i++){const o=(()=>a(this,void 0,void 0,(function*(){try{if(r.includes(i))return;const n=yield c(e[i],t[i],i+1);s.push(n),p++,y()}catch(e){if(console.error(`Part ${i+1} failed:`,e),r.push(i),r.length>.1*d)
66
+ L.abort=()=>{o=!0,i.isCancel("Upload aborted")},y(),// Initial 0%
67
+ function(){return a(this,void 0,void 0,(function*(){const n=[];for(let i=0;i<p&&!o;i++){const o=(()=>a(this,void 0,void 0,(function*(){try{if(r.includes(i))return;const n=yield c(e[i],t[i],i+1);s.push(n),d++,y()}catch(e){if(console.error(`Part ${i+1} failed:`,e),r.push(i),r.length>.1*p)
68
68
  // Fail fast if >10% fail
69
69
  throw e}})))();n.push(o),
70
70
  // Limit concurrency
71
71
  n.length>=4&&(yield Promise.race(n),
72
72
  // Remove settled promises to continue
73
- n.splice(0,n.length,...(yield Promise.allSettled(n)).map(((e,t)=>n[t])).filter(Boolean)))}yield Promise.allSettled(n),o?l(new Error("Upload aborted by user")):r.length>0?l(new Error(`Failed to upload ${r.length}/${d} parts: ${r.join(", ")}`)):(s.sort(((e,t)=>e.PartNumber-t.PartNumber)),u(s))}))}().catch(l)}))};
73
+ n.splice(0,n.length,...(yield Promise.allSettled(n)).map(((e,t)=>n[t])).filter(Boolean)))}yield Promise.allSettled(n),o?l(new Error("Upload aborted by user")):r.length>0?l(new Error(`Failed to upload ${r.length}/${p} parts: ${r.join(", ")}`)):(s.sort(((e,t)=>e.PartNumber-t.PartNumber)),u(s))}))}().catch(l)}))};
74
74
  /**
75
75
  * Uploads chunks to respective presigned URLs with progress tracking.
76
76
  * Falls back to a simple fetch request if XMLHttpRequest is not available.
@@ -93,9 +93,9 @@ n.splice(0,n.length,...(yield Promise.allSettled(n)).map(((e,t)=>n[t])).filter(B
93
93
  * @param appId Optional app ID for the minting operation.
94
94
  * @returns A promise that resolves when the minting is complete.
95
95
  */
96
- function L(e,t,n,i,s,r,o,p,d,u){return a(this,void 0,void 0,(function*(){var a;
96
+ function z(e,t,n,i,s,r,o,d,p,u){return a(this,void 0,void 0,(function*(){var a;
97
97
  // use provided appId, else use instance appId, else default to empty string
98
- const l=null!==(a=null!=u?u:this.appId)&&void 0!==a?a:"";return yield this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"mintWithSignature",[e,t,s,r,o,p,n,i,l,d],{waitForReceipt:!0})}))}
98
+ const l=null!==(a=null!=u?u:this.appId)&&void 0!==a?a:"";return yield this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"mintWithSignature",[e,t,s,r,o,d,n,i,l,p],{waitForReceipt:!0})}))}
99
99
  /**
100
100
  * Registers a Data NFT with the Origin service in order to obtain a signature for minting.
101
101
  * @param source The source of the Data NFT (e.g., "spotify", "twitter", "tiktok", or "file").
@@ -105,28 +105,28 @@ const l=null!==(a=null!=u?u:this.appId)&&void 0!==a?a:"";return yield this.callC
105
105
  * @param fileKey The file key(s) if the source is "file".
106
106
  * @param parents The IDs of the parent NFTs, if applicable.
107
107
  * @return A promise that resolves with the registration data.
108
- */function z(e,t,n,i,s,r,o,p){return a(this,void 0,void 0,(function*(){var a;const d=null!==(a=null!=p?p:this.appId)&&void 0!==a?a:"",u={source:e,deadline:Number(t),licenseTerms:{price:n.price.toString(),duration:n.duration,royaltyBps:n.royaltyBps,paymentToken:n.paymentToken,licenseType:n.licenseType},appId:d,isIp:s,metadata:i,parentId:o?o.map((e=>e.toString())):[]};void 0!==r&&(u.fileKey=r);const l=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/origin/register`,{method:"POST",headers:{Authorization:`Bearer ${this.getJwt()}`,"Content-Type":"application/json"},body:JSON.stringify(u)}),y=yield l.json();if(y.isError)throw new Error(`Failed to get signature: ${y.message}`);if(!l.ok)throw new Error(`Failed to get signature: ${l.statusText}`);return y.data}))}
108
+ */function q(e,t,n,i,s,r,o,d){return a(this,void 0,void 0,(function*(){var a;const p=null!==(a=null!=d?d:this.appId)&&void 0!==a?a:"",u={source:e,deadline:Number(t),licenseTerms:{price:n.price.toString(),duration:n.duration,royaltyBps:n.royaltyBps,paymentToken:n.paymentToken,licenseType:n.licenseType},appId:p,isIp:s,metadata:i,parentId:o?o.map((e=>e.toString())):[]};void 0!==r&&(u.fileKey=r);const l=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/origin/register`,{method:"POST",headers:{Authorization:`Bearer ${this.getJwt()}`,"Content-Type":"application/json"},body:JSON.stringify(u)}),y=yield l.json();if(y.isError)throw new Error(`Failed to get signature: ${y.message}`);if(!l.ok)throw new Error(`Failed to get signature: ${l.statusText}`);return y.data}))}
109
109
  /**
110
110
  * Updates the license terms of a specified IPNFT.
111
111
  * @param tokenId The ID of the IPNFT to update.
112
112
  * @param newTerms The new license terms to set.
113
113
  * @returns A promise that resolves when the transaction is complete.
114
- */function q(e,t){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"updateTerms",[e,t],{waitForReceipt:!0})}
114
+ */function J(e,t){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"updateTerms",[e,t],{waitForReceipt:!0})}
115
115
  /**
116
116
  * Sets the IPNFT as deleted
117
117
  * @param tokenId The token ID to set as deleted.
118
118
  * @returns A promise that resolves when the transaction is complete.
119
- */function J(e){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"finalizeDelete",[e])}
119
+ */function Y(e){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"finalizeDelete",[e])}
120
120
  /**
121
121
  * Returns the license terms associated with a specific token ID.
122
122
  * @param tokenId The token ID to query.
123
123
  * @returns The license terms of the token ID.
124
- */function Y(e){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"getTerms",[e])}
124
+ */function W(e){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"getTerms",[e])}
125
125
  /**
126
126
  * Returns the owner of the specified IPNFT.
127
127
  * @param tokenId The ID of the IPNFT to query.
128
128
  * @returns The address of the owner of the IPNFT.
129
- */function W(e){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"ownerOf",[e])}
129
+ */function K(e){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"ownerOf",[e])}
130
130
  /**
131
131
  * Returns the number of IPNFTs owned by the given address.
132
132
  * @param owner The address to query.
@@ -136,18 +136,18 @@ const l=null!==(a=null!=u?u:this.appId)&&void 0!==a?a:"";return yield this.callC
136
136
  * Returns the metadata URI associated with a specific token ID.
137
137
  * @param tokenId The token ID to query.
138
138
  * @returns The metadata URI of the token ID.
139
- */function K(e){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"tokenURI",[e])}
139
+ */function Q(e){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"tokenURI",[e])}
140
140
  /**
141
141
  * Returns the data status of the given token ID.
142
142
  * @param tokenId The token ID to query.
143
143
  * @returns The data status of the token ID.
144
- */function Q(e){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"dataStatus",[e])}
144
+ */function X(e){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"dataStatus",[e])}
145
145
  /**
146
146
  * Checks if an operator is approved to manage all assets of a given owner.
147
147
  * @param owner The address of the asset owner.
148
148
  * @param operator The address of the operator to check.
149
149
  * @return A promise that resolves to a boolean indicating if the operator is approved for all assets of the owner.
150
- */function X(e,t){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"isApprovedForAll",[e,t])}function Z(e,t,n){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"transferFrom",[e,t,n])}function ee(e,t,n,i){const a=i?[e,t,n,i]:[e,t,n];return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"safeTransferFrom",a)}function te(e,t){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"approve",[e,t])}function ne(e,t){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"setApprovalForAll",[e,t])}
150
+ */function Z(e,t){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"isApprovedForAll",[e,t])}function ee(e,t,n){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"transferFrom",[e,t,n])}function te(e,t,n,i){const a=i?[e,t,n,i]:[e,t,n];return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"safeTransferFrom",a)}function ne(e,t){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"approve",[e,t])}function ie(e,t){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"setApprovalForAll",[e,t])}
151
151
  /**
152
152
  * Buys access to a data NFT for a specified duration.
153
153
  * @param buyer The address of the buyer.
@@ -159,13 +159,13 @@ const l=null!==(a=null!=u?u:this.appId)&&void 0!==a?a:"";return yield this.callC
159
159
  * @param expectedAppFeeBps The expected app fee in basis points (0-10000). Defaults to 0.
160
160
  * @param value The amount of native token to send (only required if paying with native token).
161
161
  * @returns A promise that resolves when the transaction is confirmed.
162
- */function ie(e,t,n,i,a,s=0,r=0,o){return this.callContractMethod(this.environment.MARKETPLACE_CONTRACT_ADDRESS,this.environment.MARKETPLACE_ABI,"buyAccess",[e,t,n,i,a,s,r],{waitForReceipt:!0,value:o})}
162
+ */function ae(e,t,n,i,a,s=0,r=0,o){return this.callContractMethod(this.environment.MARKETPLACE_CONTRACT_ADDRESS,this.environment.MARKETPLACE_ABI,"buyAccess",[e,t,n,i,a,s,r],{waitForReceipt:!0,value:o})}
163
163
  /**
164
164
  * Checks if a user has access to a specific token based on subscription expiry.
165
165
  * @param user - The address of the user.
166
166
  * @param tokenId - The ID of the token.
167
167
  * @returns A promise that resolves to a boolean indicating if the user has access.
168
- */function ae(e,t){return a(this,void 0,void 0,(function*(){try{const n=yield this.subscriptionExpiry(t,e);return n>BigInt(Math.floor(Date.now()/1e3))}catch(e){return!1}}))}function se(e,t){return this.callContractMethod(this.environment.MARKETPLACE_CONTRACT_ADDRESS,this.environment.MARKETPLACE_ABI,"subscriptionExpiry",[e,t])}
168
+ */function se(e,t){return a(this,void 0,void 0,(function*(){try{const n=yield this.subscriptionExpiry(t,e);return n>BigInt(Math.floor(Date.now()/1e3))}catch(e){return!1}}))}function re(e,t){return this.callContractMethod(this.environment.MARKETPLACE_CONTRACT_ADDRESS,this.environment.MARKETPLACE_ABI,"subscriptionExpiry",[e,t])}
169
169
  /**
170
170
  * Raises a dispute against an IP NFT.
171
171
  * Automatically handles token approval for ERC20 bonds or native token value.
@@ -184,20 +184,20 @@ const l=null!==(a=null!=u?u:this.appId)&&void 0!==a?a:"";return yield this.callC
184
184
  * "0x0100000000000000000000000000000000000000000000000000000000000000" // dispute tag (bytes32)
185
185
  * );
186
186
  * ```
187
- */function re(t,n,i){return a(this,void 0,void 0,(function*(){const a=C(),s=this.environment.DISPUTE_CONTRACT_ADDRESS,r=this.environment.DISPUTE_ABI,[o,p,d]=yield Promise.all([a.readContract({address:s,abi:r,functionName:"disputeBond"}),a.readContract({address:s,abi:r,functionName:"protocolDisputeFee"}),a.readContract({address:s,abi:r,functionName:"disputeToken"})]),u=d===e.zeroAddress,l=o+p;
187
+ */function oe(t,n,i){return a(this,void 0,void 0,(function*(){const a=C(),s=this.environment.DISPUTE_CONTRACT_ADDRESS,r=this.environment.DISPUTE_ABI,[o,d,p]=yield Promise.all([a.readContract({address:s,abi:r,functionName:"disputeBond"}),a.readContract({address:s,abi:r,functionName:"protocolDisputeFee"}),a.readContract({address:s,abi:r,functionName:"disputeToken"})]),u=p===e.zeroAddress,l=o+d;
188
188
  // Call the raiseDispute contract method
189
189
  // Pass the total (bond + protocol fee) as msg.value if using native token
190
- return u||(yield this.approveERC20IfNeeded(d,s,l)),this.callContractMethod(s,r,"raiseDispute",[t,n,i],{waitForReceipt:!0,value:u?l:void 0})}))}
190
+ return u||(yield this.approveERC20IfNeeded(p,s,l)),this.callContractMethod(s,r,"raiseDispute",[t,n,i],{waitForReceipt:!0,value:u?l:void 0})}))}
191
191
  // base-x encoding / decoding
192
192
  // Copyright (c) 2018 base-x contributors
193
193
  // Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)
194
194
  // Distributed under the MIT software license, see the accompanying
195
195
  // file LICENSE or http://www.opensource.org/licenses/mit-license.php.
196
- var oe=function(e){if(e.length>=255)throw new TypeError("Alphabet too long");const t=new Uint8Array(256);for(let e=0;e<t.length;e++)t[e]=255;for(let n=0;n<e.length;n++){const i=e.charAt(n),a=i.charCodeAt(0);if(255!==t[a])throw new TypeError(i+" is ambiguous");t[a]=n}const n=e.length,i=e.charAt(0),a=Math.log(n)/Math.log(256),s=Math.log(256)/Math.log(n);function r(e){if("string"!=typeof e)throw new TypeError("Expected String");if(0===e.length)return new Uint8Array;let s=0,r=0,o=0;
196
+ var de=function(e){if(e.length>=255)throw new TypeError("Alphabet too long");const t=new Uint8Array(256);for(let e=0;e<t.length;e++)t[e]=255;for(let n=0;n<e.length;n++){const i=e.charAt(n),a=i.charCodeAt(0);if(255!==t[a])throw new TypeError(i+" is ambiguous");t[a]=n}const n=e.length,i=e.charAt(0),a=Math.log(n)/Math.log(256),s=Math.log(256)/Math.log(n);function r(e){if("string"!=typeof e)throw new TypeError("Expected String");if(0===e.length)return new Uint8Array;let s=0,r=0,o=0;
197
197
  // Skip and count leading '1's.
198
198
  for(;e[s]===i;)r++,s++;
199
199
  // Allocate enough space in big-endian base256 representation.
200
- const p=(e.length-s)*a+1>>>0,d=new Uint8Array(p);// log(58) / log(256), rounded up.
200
+ const d=(e.length-s)*a+1>>>0,p=new Uint8Array(d);// log(58) / log(256), rounded up.
201
201
  // Process the characters.
202
202
  for(;s<e.length;){
203
203
  // Find code of next character
@@ -207,33 +207,33 @@ if(i>255)return;
207
207
  // Decode character
208
208
  let a=t[i];
209
209
  // Invalid character
210
- if(255===a)return;let r=0;for(let e=p-1;(0!==a||r<o)&&-1!==e;e--,r++)a+=n*d[e]>>>0,d[e]=a%256>>>0,a=a/256>>>0;if(0!==a)throw new Error("Non-zero carry");o=r,s++}
210
+ if(255===a)return;let r=0;for(let e=d-1;(0!==a||r<o)&&-1!==e;e--,r++)a+=n*p[e]>>>0,p[e]=a%256>>>0,a=a/256>>>0;if(0!==a)throw new Error("Non-zero carry");o=r,s++}
211
211
  // Skip leading zeroes in b256.
212
- let u=p-o;for(;u!==p&&0===d[u];)u++;const l=new Uint8Array(r+(p-u));let y=r;for(;u!==p;)l[y++]=d[u++];return l}return{encode:// log(256) / log(BASE), rounded up
212
+ let u=d-o;for(;u!==d&&0===p[u];)u++;const l=new Uint8Array(r+(d-u));let y=r;for(;u!==d;)l[y++]=p[u++];return l}return{encode:// log(256) / log(BASE), rounded up
213
213
  function(t){if(
214
214
  // eslint-disable-next-line no-empty
215
215
  t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";
216
216
  // Skip & count leading zeroes.
217
- let a=0,r=0,o=0;const p=t.length;for(;o!==p&&0===t[o];)o++,a++;
217
+ let a=0,r=0,o=0;const d=t.length;for(;o!==d&&0===t[o];)o++,a++;
218
218
  // Allocate enough space in big-endian base58 representation.
219
- const d=(p-o)*s+1>>>0,u=new Uint8Array(d);
219
+ const p=(d-o)*s+1>>>0,u=new Uint8Array(p);
220
220
  // Process the bytes.
221
- for(;o!==p;){let e=t[o],i=0;
221
+ for(;o!==d;){let e=t[o],i=0;
222
222
  // Apply "b58 = b58 * 256 + ch".
223
- for(let t=d-1;(0!==e||i<r)&&-1!==t;t--,i++)e+=256*u[t]>>>0,u[t]=e%n>>>0,e=e/n>>>0;if(0!==e)throw new Error("Non-zero carry");r=i,o++}
223
+ for(let t=p-1;(0!==e||i<r)&&-1!==t;t--,i++)e+=256*u[t]>>>0,u[t]=e%n>>>0,e=e/n>>>0;if(0!==e)throw new Error("Non-zero carry");r=i,o++}
224
224
  // Skip leading zeroes in base58 result.
225
- let l=d-r;for(;l!==d&&0===u[l];)l++;
225
+ let l=p-r;for(;l!==p&&0===u[l];)l++;
226
226
  // Translate the result into a string.
227
- let y=i.repeat(a);for(;l<d;++l)y+=e.charAt(u[l]);return y},decodeUnsafe:r,decode:function(e){const t=r(e);if(t)return t;throw new Error("Non-base"+n+" character")}}}("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");
227
+ let y=i.repeat(a);for(;l<p;++l)y+=e.charAt(u[l]);return y},decodeUnsafe:r,decode:function(e){const t=r(e);if(t)return t;throw new Error("Non-base"+n+" character")}}}("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");
228
228
  // RFC 4648 base32 alphabet (lowercase)
229
229
  const pe="abcdefghijklmnopqrstuvwxyz234567";
230
230
  /**
231
231
  * Encode a CID to bytes32 by extracting the 32-byte SHA-256 digest.
232
232
  * Supports both CIDv0 (starts with "Qm") and CIDv1 (starts with "bafy").
233
233
  */
234
- function de(e){let t;if(e.startsWith("Qm")){
234
+ function ue(e){let t;if(e.startsWith("Qm")){
235
235
  // CIDv0: base58-encoded multihash (0x1220 + 32-byte digest)
236
- const n=oe.decode(e);if(18!==n[0]||32!==n[1]||34!==n.length)throw new Error("Invalid CIDv0: expected SHA-256 multihash");t=n.slice(2)}else{if(!e.startsWith("b"))throw new Error("Unsupported CID format: must start with 'Qm' or 'b'");{
236
+ const n=de.decode(e);if(18!==n[0]||32!==n[1]||34!==n.length)throw new Error("Invalid CIDv0: expected SHA-256 multihash");t=n.slice(2)}else{if(!e.startsWith("b"))throw new Error("Unsupported CID format: must start with 'Qm' or 'b'");{
237
237
  // CIDv1: multibase 'b' prefix + base32-encoded (version + codec + multihash)
238
238
  const n=function(e){const t={};for(let e=0;e<32;e++)t[pe[e]]=e;let n=0,i=0;const a=[];for(const s of e.toLowerCase()){if(!(s in t))throw new Error(`Invalid base32 character: ${s}`);i=i<<5|t[s],n+=5,n>=8&&(n-=8,a.push(i>>n&255))}return new Uint8Array(a)}(e.slice(1));
239
239
  // CIDv1 structure: version (1 byte) + codec (varint) + multihash
@@ -273,7 +273,7 @@ if(1!==n[0]||36!==n.length)throw new Error("Invalid CIDv1: expected version 1 wi
273
273
  * // https://ipfs.io/ipfs/{result.evidenceCid}
274
274
  * ```
275
275
  */
276
- function ue(e,t,n){return a(this,void 0,void 0,(function*(){const i=yield this.uploadJSONToIPFS(t),a=de(i);return{transactionResult:yield this.raiseDispute(e,a,n),evidenceCid:i,evidenceHash:a}}))}
276
+ function le(e,t,n){return a(this,void 0,void 0,(function*(){const i=yield this.uploadJSONToIPFS(t),a=ue(i);return{transactionResult:yield this.raiseDispute(e,a,n),evidenceCid:i,evidenceHash:a}}))}
277
277
  /**
278
278
  * Asserts a dispute as the IP owner with counter-evidence.
279
279
  * Must be called by the owner of the disputed IP within the cooldown period.
@@ -286,7 +286,7 @@ function ue(e,t,n){return a(this,void 0,void 0,(function*(){const i=yield this.u
286
286
  * ```typescript
287
287
  * await origin.disputeAssertion(1n, "0x1234..."); // counter-evidence hash
288
288
  * ```
289
- */function le(e,t){return a(this,void 0,void 0,(function*(){return this.callContractMethod(this.environment.DISPUTE_CONTRACT_ADDRESS,this.environment.DISPUTE_ABI,"disputeAssertion",[e,t],{waitForReceipt:!0})}))}
289
+ */function ye(e,t){return a(this,void 0,void 0,(function*(){return this.callContractMethod(this.environment.DISPUTE_CONTRACT_ADDRESS,this.environment.DISPUTE_ABI,"disputeAssertion",[e,t],{waitForReceipt:!0})}))}
290
290
  /**
291
291
  * Asserts a dispute with automatic counter-evidence upload to IPFS.
292
292
  * Uploads counter-evidence JSON to IPFS, encodes the CID to bytes32 for on-chain storage,
@@ -315,7 +315,7 @@ function ue(e,t,n){return a(this,void 0,void 0,(function*(){const i=yield this.u
315
315
  * // Fetch counter-evidence via IPFS gateway
316
316
  * // https://ipfs.io/ipfs/{result.counterEvidenceCid}
317
317
  * ```
318
- */function ye(e,t){return a(this,void 0,void 0,(function*(){const n=yield this.uploadJSONToIPFS(t),i=de(n);return{transactionResult:yield this.disputeAssertion(e,i),counterEvidenceCid:n,counterEvidenceHash:i}}))}
318
+ */function ce(e,t){return a(this,void 0,void 0,(function*(){const n=yield this.uploadJSONToIPFS(t),i=ue(n);return{transactionResult:yield this.disputeAssertion(e,i),counterEvidenceCid:n,counterEvidenceHash:i}}))}
319
319
  /**
320
320
  * Votes on a dispute as a CAMP token staker.
321
321
  * Only users who staked before the dispute was raised can vote.
@@ -333,7 +333,7 @@ function ue(e,t,n){return a(this,void 0,void 0,(function*(){const i=yield this.u
333
333
  * // Vote against the dispute
334
334
  * await origin.voteOnDispute(1n, false);
335
335
  * ```
336
- */function ce(e,t){return a(this,void 0,void 0,(function*(){return this.callContractMethod(this.environment.DISPUTE_CONTRACT_ADDRESS,this.environment.DISPUTE_ABI,"voteOnDispute",[e,t],{waitForReceipt:!0})}))}
336
+ */function me(e,t){return a(this,void 0,void 0,(function*(){return this.callContractMethod(this.environment.DISPUTE_CONTRACT_ADDRESS,this.environment.DISPUTE_ABI,"voteOnDispute",[e,t],{waitForReceipt:!0})}))}
337
337
  /**
338
338
  * Resolves a dispute after the voting period has ended.
339
339
  * Can be called by anyone - resolution is deterministic based on votes and quorum.
@@ -347,7 +347,7 @@ function ue(e,t,n){return a(this,void 0,void 0,(function*(){const i=yield this.u
347
347
  * ```typescript
348
348
  * await origin.resolveDispute(1n);
349
349
  * ```
350
- */function me(e){return a(this,void 0,void 0,(function*(){return this.callContractMethod(this.environment.DISPUTE_CONTRACT_ADDRESS,this.environment.DISPUTE_ABI,"resolveDispute",[e],{waitForReceipt:!0})}))}
350
+ */function he(e){return a(this,void 0,void 0,(function*(){return this.callContractMethod(this.environment.DISPUTE_CONTRACT_ADDRESS,this.environment.DISPUTE_ABI,"resolveDispute",[e],{waitForReceipt:!0})}))}
351
351
  /**
352
352
  * Cancels a dispute that is still in the raised state.
353
353
  * Can only be called by the dispute initiator during the cooldown period.
@@ -360,7 +360,7 @@ function ue(e,t,n){return a(this,void 0,void 0,(function*(){const i=yield this.u
360
360
  * ```typescript
361
361
  * await origin.cancelDispute(1n);
362
362
  * ```
363
- */function he(e){return a(this,void 0,void 0,(function*(){return this.callContractMethod(this.environment.DISPUTE_CONTRACT_ADDRESS,this.environment.DISPUTE_ABI,"cancelDispute",[e],{waitForReceipt:!0})}))}
363
+ */function Te(e){return a(this,void 0,void 0,(function*(){return this.callContractMethod(this.environment.DISPUTE_CONTRACT_ADDRESS,this.environment.DISPUTE_ABI,"cancelDispute",[e],{waitForReceipt:!0})}))}
364
364
  /**
365
365
  * Tags a child IP as disputed if its parent has been successfully disputed.
366
366
  * This propagates the dispute status to derivative IPs.
@@ -374,7 +374,7 @@ function ue(e,t,n){return a(this,void 0,void 0,(function*(){const i=yield this.u
374
374
  * // After parent IP (tokenId 1) has been disputed, tag child IP (tokenId 2)
375
375
  * await origin.tagChildIp(2n, 1n); // childIpId, disputeId of parent
376
376
  * ```
377
- */function Te(e,t){return a(this,void 0,void 0,(function*(){return this.callContractMethod(this.environment.DISPUTE_CONTRACT_ADDRESS,this.environment.DISPUTE_ABI,"tagChildIp",[e,t],{waitForReceipt:!0})}))}
377
+ */function fe(e,t){return a(this,void 0,void 0,(function*(){return this.callContractMethod(this.environment.DISPUTE_CONTRACT_ADDRESS,this.environment.DISPUTE_ABI,"tagChildIp",[e,t],{waitForReceipt:!0})}))}
378
378
  /**
379
379
  * Gets the details of a dispute by its ID.
380
380
  *
@@ -388,9 +388,9 @@ function ue(e,t,n){return a(this,void 0,void 0,(function*(){const i=yield this.u
388
388
  * console.log(`Yes votes: ${dispute.yesVotes}`);
389
389
  * console.log(`No votes: ${dispute.noVotes}`);
390
390
  * ```
391
- */function fe(e){return a(this,void 0,void 0,(function*(){const t=yield this.callContractMethod(this.environment.DISPUTE_CONTRACT_ADDRESS,this.environment.DISPUTE_ABI,"disputes",[e]),[n,i,a,s,r,o,p,d,u,l,y,c]=t;
391
+ */function ve(e){return a(this,void 0,void 0,(function*(){const t=yield this.callContractMethod(this.environment.DISPUTE_CONTRACT_ADDRESS,this.environment.DISPUTE_ABI,"disputes",[e]),[n,i,a,s,r,o,d,p,u,l,y,c]=t;
392
392
  // Contract returns a tuple, map it to the Dispute interface
393
- return{initiator:n,targetId:i,disputeTag:a,disputeEvidenceHash:s,counterEvidenceHash:r,disputeTimestamp:o,assertionTimestamp:p,yesVotes:d,noVotes:u,status:l,bondAmount:y,protocolFeeAmount:c}}))}
393
+ return{initiator:n,targetId:i,disputeTag:a,disputeEvidenceHash:s,counterEvidenceHash:r,disputeTimestamp:o,assertionTimestamp:d,yesVotes:p,noVotes:u,status:l,bondAmount:y,protocolFeeAmount:c}}))}
394
394
  /**
395
395
  * Resolves a wallet address from an optional address parameter or connected wallet.
396
396
  * Checks viemClient.account first, then falls back to eth_requestAccounts.
@@ -399,21 +399,21 @@ return{initiator:n,targetId:i,disputeTag:a,disputeEvidenceHash:s,counterEvidence
399
399
  * @param address Optional address to use directly.
400
400
  * @returns The resolved wallet address.
401
401
  * @throws Error if no address provided and no wallet connected or no accounts found.
402
- */var ve,we,Ae;
402
+ */var we,Ae,Ie;
403
403
  /**
404
404
  * Enum representing the type of license for an IP NFT.
405
405
  * - DURATION_BASED: License expires after a set duration (subscription model).
406
406
  * - SINGLE_PAYMENT: One-time payment for perpetual access.
407
407
  * - X402: HTTP 402-based micropayment license (no on-chain payments).
408
408
  */
409
- exports.LicenseType=void 0,(ve=exports.LicenseType||(exports.LicenseType={}))[ve.DURATION_BASED=0]="DURATION_BASED",ve[ve.SINGLE_PAYMENT=1]="SINGLE_PAYMENT",ve[ve.X402=2]="X402",
409
+ exports.LicenseType=void 0,(we=exports.LicenseType||(exports.LicenseType={}))[we.DURATION_BASED=0]="DURATION_BASED",we[we.SINGLE_PAYMENT=1]="SINGLE_PAYMENT",we[we.X402=2]="X402",
410
410
  /**
411
411
  * Enum representing the status of data in the system.
412
412
  * - ACTIVE: The data is currently active and available.
413
413
  * - DELETED: The data has been deleted and is no longer available.
414
414
  * - DISPUTED: The data has been disputed and marked as potentially infringing.
415
415
  */
416
- exports.DataStatus=void 0,(we=exports.DataStatus||(exports.DataStatus={}))[we.ACTIVE=0]="ACTIVE",we[we.DELETED=1]="DELETED",we[we.DISPUTED=2]="DISPUTED",
416
+ exports.DataStatus=void 0,(Ae=exports.DataStatus||(exports.DataStatus={}))[Ae.ACTIVE=0]="ACTIVE",Ae[Ae.DELETED=1]="DELETED",Ae[Ae.DISPUTED=2]="DISPUTED",
417
417
  /**
418
418
  * Enum representing the status of a dispute.
419
419
  * - Uninitialized: Dispute does not exist.
@@ -422,7 +422,7 @@ exports.DataStatus=void 0,(we=exports.DataStatus||(exports.DataStatus={}))[we.AC
422
422
  * - Resolved: Dispute has been resolved (either valid or invalid).
423
423
  * - Cancelled: Dispute was cancelled by the initiator.
424
424
  */
425
- exports.DisputeStatus=void 0,(Ae=exports.DisputeStatus||(exports.DisputeStatus={}))[Ae.Uninitialized=0]="Uninitialized",Ae[Ae.Raised=1]="Raised",Ae[Ae.Asserted=2]="Asserted",Ae[Ae.Resolved=3]="Resolved",Ae[Ae.Cancelled=4]="Cancelled";
425
+ exports.DisputeStatus=void 0,(Ie=exports.DisputeStatus||(exports.DisputeStatus={}))[Ie.Uninitialized=0]="Uninitialized",Ie[Ie.Raised=1]="Raised",Ie[Ie.Asserted=2]="Asserted",Ie[Ie.Resolved=3]="Resolved",Ie[Ie.Cancelled=4]="Cancelled";
426
426
  /**
427
427
  * Creates license terms for a digital asset.
428
428
  * @param price The price of the asset in wei.
@@ -432,7 +432,7 @@ exports.DisputeStatus=void 0,(Ae=exports.DisputeStatus||(exports.DisputeStatus={
432
432
  * @param licenseType The type of license (defaults to DURATION_BASED).
433
433
  * @returns The created license terms.
434
434
  */
435
- const Ie=[{inputs:[{name:"account",type:"address"}],name:"balanceOf",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{name:"account",type:"address"}],name:"userStakeTimestamp",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"}];
435
+ const ge=[{inputs:[{name:"account",type:"address"}],name:"balanceOf",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{name:"account",type:"address"}],name:"userStakeTimestamp",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"}];
436
436
  // minimal ABI for staking vault
437
437
  /**
438
438
  * Checks if a user meets the requirements to vote on a dispute.
@@ -454,15 +454,15 @@ const Ie=[{inputs:[{name:"account",type:"address"}],name:"balanceOf",outputs:[{n
454
454
  * }
455
455
  * ```
456
456
  */
457
- function be(e,t){return a(this,void 0,void 0,(function*(){const n=yield function(e,t){return a(this,void 0,void 0,(function*(){if(t)return t;if(!e)throw new Error("No address provided and no wallet connected. Please provide an address or connect a wallet.");if(e.account)return e.account.address;const n=yield e.request({method:"eth_requestAccounts",params:[]});if(!n||0===n.length)throw new Error("No accounts found in connected wallet.");return n[0]}))}(this.viemClient,t),i=C(),s=this.environment.DISPUTE_CONTRACT_ADDRESS,r=this.environment.DISPUTE_ABI,[o,p,d,u,l,y]=yield Promise.all([this.getDispute(e),i.readContract({address:s,abi:r,functionName:"stakingVault",args:[]}),i.readContract({address:s,abi:r,functionName:"stakingThreshold",args:[]}),i.readContract({address:s,abi:r,functionName:"disputeCoolDownPeriod",args:[]}),i.readContract({address:s,abi:r,functionName:"disputeJudgementPeriod",args:[]}),i.readContract({address:s,abi:r,functionName:"hasVoted",args:[e,n]})]),c=o.status,m=o.disputeTimestamp,h=o.assertionTimestamp,[T,f]=yield Promise.all([i.readContract({address:p,abi:Ie,functionName:"userStakeTimestamp",args:[n]}),i.readContract({address:p,abi:Ie,functionName:"balanceOf",args:[n]})]),v=BigInt(Math.floor(Date.now()/1e3));let w,A=!1;c===exports.DisputeStatus.Asserted?(
457
+ function be(e,t){return a(this,void 0,void 0,(function*(){const n=yield function(e,t){return a(this,void 0,void 0,(function*(){if(t)return t;if(!e)throw new Error("No address provided and no wallet connected. Please provide an address or connect a wallet.");if(e.account)return e.account.address;const n=yield e.request({method:"eth_requestAccounts",params:[]});if(!n||0===n.length)throw new Error("No accounts found in connected wallet.");return n[0]}))}(this.viemClient,t),i=C(),s=this.environment.DISPUTE_CONTRACT_ADDRESS,r=this.environment.DISPUTE_ABI,[o,d,p,u,l,y]=yield Promise.all([this.getDispute(e),i.readContract({address:s,abi:r,functionName:"stakingVault",args:[]}),i.readContract({address:s,abi:r,functionName:"stakingThreshold",args:[]}),i.readContract({address:s,abi:r,functionName:"disputeCoolDownPeriod",args:[]}),i.readContract({address:s,abi:r,functionName:"disputeJudgementPeriod",args:[]}),i.readContract({address:s,abi:r,functionName:"hasVoted",args:[e,n]})]),c=o.status,m=o.disputeTimestamp,h=o.assertionTimestamp,[T,f]=yield Promise.all([i.readContract({address:d,abi:ge,functionName:"userStakeTimestamp",args:[n]}),i.readContract({address:d,abi:ge,functionName:"balanceOf",args:[n]})]),v=BigInt(Math.floor(Date.now()/1e3));let w,A=!1;c===exports.DisputeStatus.Asserted?(
458
458
  // for asserted disputes, voting period is relative to assertion timestamp
459
459
  w=h+l,A=v<=w):c===exports.DisputeStatus.Raised&&(
460
460
  // for raised disputes, voting period extends from cooldown through judgement
461
461
  w=m+u+l,A=v<=w);
462
462
  // build base result
463
- const I={canVote:!1,votingWeight:f,stakingThreshold:d,hasAlreadyVoted:y,userStakeTimestamp:T,disputeTimestamp:m,disputeStatus:c,isVotingPeriodActive:A};
463
+ const I={canVote:!1,votingWeight:f,stakingThreshold:p,hasAlreadyVoted:y,userStakeTimestamp:T,disputeTimestamp:m,disputeStatus:c,isVotingPeriodActive:A};
464
464
  // check all requirements
465
- return c!==exports.DisputeStatus.Raised&&c!==exports.DisputeStatus.Asserted?Object.assign(Object.assign({},I),{reason:`Dispute is not in a voteable status (current: ${exports.DisputeStatus[c]})`}):A?y?Object.assign(Object.assign({},I),{reason:"You have already voted on this dispute"}):T===BigInt(0)?Object.assign(Object.assign({},I),{reason:"You have never staked CAMP tokens"}):T>=m?Object.assign(Object.assign({},I),{reason:"You staked after this dispute was raised (vote recycling prevention)"}):f<d?Object.assign(Object.assign({},I),{reason:`Insufficient stake: you have ${f} but need at least ${d}`}):Object.assign(Object.assign({},I),{canVote:!0}):Object.assign(Object.assign({},I),{reason:"Voting period has ended"})}))}
465
+ return c!==exports.DisputeStatus.Raised&&c!==exports.DisputeStatus.Asserted?Object.assign(Object.assign({},I),{reason:`Dispute is not in a voteable status (current: ${exports.DisputeStatus[c]})`}):A?y?Object.assign(Object.assign({},I),{reason:"You have already voted on this dispute"}):T===BigInt(0)?Object.assign(Object.assign({},I),{reason:"You have never staked CAMP tokens"}):T>=m?Object.assign(Object.assign({},I),{reason:"You staked after this dispute was raised (vote recycling prevention)"}):f<p?Object.assign(Object.assign({},I),{reason:`Insufficient stake: you have ${f} but need at least ${p}`}):Object.assign(Object.assign({},I),{canVote:!0}):Object.assign(Object.assign({},I),{reason:"Voting period has ended"})}))}
466
466
  /**
467
467
  * Gets detailed progress and voting statistics for a dispute.
468
468
  * Includes vote counts, percentages, quorum progress, and timeline.
@@ -484,17 +484,17 @@ return c!==exports.DisputeStatus.Raised&&c!==exports.DisputeStatus.Asserted?Obje
484
484
  * console.log(`Can resolve in ${progress.timeline.timeUntilResolution} seconds`);
485
485
  * }
486
486
  * ```
487
- */function ge(e){return a(this,void 0,void 0,(function*(){var t,n,i,a,s,r,o,p,d;const u=C(),l=this.environment.DISPUTE_CONTRACT_ADDRESS,y=this.environment.DISPUTE_ABI,[c,m,h,T]=yield Promise.all([u.readContract({address:l,abi:y,functionName:"disputes",args:[e]}),u.readContract({address:l,abi:y,functionName:"disputeQuorum",args:[]}),u.readContract({address:l,abi:y,functionName:"disputeCoolDownPeriod",args:[]}),u.readContract({address:l,abi:y,functionName:"disputeJudgementPeriod",args:[]})]),f=Number(null!==(t=c.status)&&void 0!==t?t:c[9]),v=BigInt(null!==(i=null!==(n=c.disputeTimestamp)&&void 0!==n?n:c[5])&&void 0!==i?i:0),w=BigInt(null!==(s=null!==(a=c.assertionTimestamp)&&void 0!==a?a:c[6])&&void 0!==s?s:0),A=BigInt(null!==(o=null!==(r=c.yesVotes)&&void 0!==r?r:c[7])&&void 0!==o?o:0),I=BigInt(null!==(d=null!==(p=c.noVotes)&&void 0!==p?p:c[8])&&void 0!==d?d:0),b=A+I;let g=0,E=0;b>BigInt(0)&&(g=Number(A*BigInt(1e4)/b)/100,E=Number(I*BigInt(1e4)/b)/100);
487
+ */function Ce(e){return a(this,void 0,void 0,(function*(){var t,n,i,a,s,r,o,d,p;const u=C(),l=this.environment.DISPUTE_CONTRACT_ADDRESS,y=this.environment.DISPUTE_ABI,[c,m,h,T]=yield Promise.all([u.readContract({address:l,abi:y,functionName:"disputes",args:[e]}),u.readContract({address:l,abi:y,functionName:"disputeQuorum",args:[]}),u.readContract({address:l,abi:y,functionName:"disputeCoolDownPeriod",args:[]}),u.readContract({address:l,abi:y,functionName:"disputeJudgementPeriod",args:[]})]),f=Number(null!==(t=c.status)&&void 0!==t?t:c[9]),v=BigInt(null!==(i=null!==(n=c.disputeTimestamp)&&void 0!==n?n:c[5])&&void 0!==i?i:0),w=BigInt(null!==(s=null!==(a=c.assertionTimestamp)&&void 0!==a?a:c[6])&&void 0!==s?s:0),A=BigInt(null!==(o=null!==(r=c.yesVotes)&&void 0!==r?r:c[7])&&void 0!==o?o:0),I=BigInt(null!==(p=null!==(d=c.noVotes)&&void 0!==d?d:c[8])&&void 0!==p?p:0),g=A+I;let b=0,E=0;g>BigInt(0)&&(b=Number(A*BigInt(1e4)/g)/100,E=Number(I*BigInt(1e4)/g)/100);
488
488
  // calculate quorum progress
489
- let S=0;m>BigInt(0)&&(S=Number(b*BigInt(1e4)/m)/100);const x=b>=m;
489
+ let S=0;m>BigInt(0)&&(S=Number(g*BigInt(1e4)/m)/100);const P=g>=m;
490
490
  // determine projected outcome
491
- let P;P=x?A>I?"dispute_succeeds":"dispute_fails":"no_quorum";
491
+ let x;x=P?A>I?"dispute_succeeds":"dispute_fails":"no_quorum";
492
492
  // calculate timeline
493
- const R=BigInt(Math.floor(Date.now()/1e3)),D=new Date(1e3*Number(v)),_=new Date(1e3*Number(v+h));let k,N;f===exports.DisputeStatus.Asserted?(
493
+ const _=BigInt(Math.floor(Date.now()/1e3)),k=new Date(1e3*Number(v)),D=new Date(1e3*Number(v+h));let R,N;f===exports.DisputeStatus.Asserted?(
494
494
  // for asserted disputes, voting ends relative to assertion
495
- k=new Date(1e3*Number(w+T)),N=w+T):(
495
+ R=new Date(1e3*Number(w+T)),N=w+T):(
496
496
  // for raised disputes, voting ends after cooldown + judgement
497
- k=new Date(1e3*Number(v+h+T)),N=v+h+T);const M=(f===exports.DisputeStatus.Raised||f===exports.DisputeStatus.Asserted)&&R>N,O=M?0:Number(N-R);return{disputeId:e,status:f,yesVotes:A,noVotes:I,totalVotes:b,yesPercentage:g,noPercentage:E,quorum:m,quorumPercentage:S,quorumMet:x,projectedOutcome:P,timeline:{raisedAt:D,cooldownEndsAt:_,votingEndsAt:k,canResolveNow:M,timeUntilResolution:O}}}))}
497
+ R=new Date(1e3*Number(v+h+T)),N=v+h+T);const M=(f===exports.DisputeStatus.Raised||f===exports.DisputeStatus.Asserted)&&_>N,B=M?0:Number(N-_);return{disputeId:e,status:f,yesVotes:A,noVotes:I,totalVotes:g,yesPercentage:b,noPercentage:E,quorum:m,quorumPercentage:S,quorumMet:P,projectedOutcome:x,timeline:{raisedAt:k,cooldownEndsAt:D,votingEndsAt:R,canResolveNow:M,timeUntilResolution:B}}}))}
498
498
  /**
499
499
  * Gets the requirements for raising a dispute, including balance check.
500
500
  *
@@ -508,22 +508,22 @@ k=new Date(1e3*Number(v+h+T)),N=v+h+T);const M=(f===exports.DisputeStatus.Raised
508
508
  * console.log(`Need ${requirements.totalRequired} but only have ${requirements.userBalance}`);
509
509
  * }
510
510
  * ```
511
- */function Ce(t){return a(this,void 0,void 0,(function*(){const n=C(),i=this.environment.DISPUTE_CONTRACT_ADDRESS,a=this.environment.DISPUTE_ABI,[s,r,o]=yield Promise.all([n.readContract({address:i,abi:a,functionName:"disputeBond"}),n.readContract({address:i,abi:a,functionName:"protocolDisputeFee"}),n.readContract({address:i,abi:a,functionName:"disputeToken"})]),p=o===e.zeroAddress,d=s+r;
511
+ */function Ee(t){return a(this,void 0,void 0,(function*(){const n=C(),i=this.environment.DISPUTE_CONTRACT_ADDRESS,a=this.environment.DISPUTE_ABI,[s,r,o]=yield Promise.all([n.readContract({address:i,abi:a,functionName:"disputeBond"}),n.readContract({address:i,abi:a,functionName:"protocolDisputeFee"}),n.readContract({address:i,abi:a,functionName:"disputeToken"})]),d=o===e.zeroAddress,p=s+r;
512
512
  // Get user's balance
513
- let u;return u=p?yield n.getBalance({address:t}):yield n.readContract({address:o,abi:e.erc20Abi,functionName:"balanceOf",args:[t]}),{bondAmount:s,protocolFee:r,totalRequired:d,tokenAddress:o,isNativeToken:p,userBalance:u,hasSufficientBalance:u>=d}}))}
513
+ let u;return u=d?yield n.getBalance({address:t}):yield n.readContract({address:o,abi:e.erc20Abi,functionName:"balanceOf",args:[t]}),{bondAmount:s,protocolFee:r,totalRequired:p,tokenAddress:o,isNativeToken:d,userBalance:u,hasSufficientBalance:u>=p}}))}
514
514
  /**
515
515
  * Gets the royalty vault address for a given token ID.
516
516
  * Returns null if no vault has been deployed yet.
517
517
  *
518
518
  * @param tokenId The token ID to look up.
519
519
  * @returns The vault address, or null if no vault exists.
520
- */function Ee(t){return a(this,void 0,void 0,(function*(){const n=yield this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"getRoyaltyVault",[t]);return n&&n!==e.zeroAddress?n:null}))}
520
+ */function Se(t){return a(this,void 0,void 0,(function*(){const n=yield this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"getRoyaltyVault",[t]);return n&&n!==e.zeroAddress?n:null}))}
521
521
  /**
522
522
  * Gets the list of revenue token addresses that have accumulated in a token's vault.
523
523
  *
524
524
  * @param tokenId The token ID to look up.
525
525
  * @returns An array of ERC20 token addresses with revenue in the vault.
526
- */function Se(e){return a(this,void 0,void 0,(function*(){return(yield this.callContractMethod(this.environment.MARKETPLACE_CONTRACT_ADDRESS,this.environment.MARKETPLACE_ABI,"getVaultRevenueTokens",[e]))||[]}))}
526
+ */function Pe(e){return a(this,void 0,void 0,(function*(){return(yield this.callContractMethod(this.environment.MARKETPLACE_CONTRACT_ADDRESS,this.environment.MARKETPLACE_ABI,"getVaultRevenueTokens",[e]))||[]}))}
527
527
  /**
528
528
  * Returns the amount of revenue claimable by a holder for a given token and revenue token.
529
529
  * If no holder is provided, the connected wallet address is used,
@@ -542,7 +542,7 @@ let u;return u=p?yield n.getBalance({address:t}):yield n.readContract({address:o
542
542
  * @param tokenId The token ID whose vault to claim from.
543
543
  * @param revenueToken The ERC20 revenue token address to claim.
544
544
  * @returns The transaction result.
545
- */function Pe(e,t){return a(this,void 0,void 0,(function*(){return this.callContractMethod(this.environment.MARKETPLACE_CONTRACT_ADDRESS,this.environment.MARKETPLACE_ABI,"claimRevenue",[e,t],{waitForReceipt:!0})}))}
545
+ */function _e(e,t){return a(this,void 0,void 0,(function*(){return this.callContractMethod(this.environment.MARKETPLACE_CONTRACT_ADDRESS,this.environment.MARKETPLACE_ABI,"claimRevenue",[e,t],{waitForReceipt:!0})}))}
546
546
  /**
547
547
  * Claims accumulated revenue for a token from multiple revenue tokens in a single transaction.
548
548
  * The connected wallet must hold Royalty Tokens for the given token.
@@ -551,14 +551,14 @@ let u;return u=p?yield n.getBalance({address:t}):yield n.readContract({address:o
551
551
  * @param tokenId The token ID whose vault to claim from.
552
552
  * @param revenueTokens Array of ERC20 revenue token addresses to claim.
553
553
  * @returns The transaction result.
554
- */function Re(e,t){return a(this,void 0,void 0,(function*(){return this.callContractMethod(this.environment.MARKETPLACE_CONTRACT_ADDRESS,this.environment.MARKETPLACE_ABI,"claimRevenueBatch",[e,t],{waitForReceipt:!0})}))}
554
+ */function ke(e,t){return a(this,void 0,void 0,(function*(){return this.callContractMethod(this.environment.MARKETPLACE_CONTRACT_ADDRESS,this.environment.MARKETPLACE_ABI,"claimRevenueBatch",[e,t],{waitForReceipt:!0})}))}
555
555
  /**
556
556
  * Deploys a new royalty vault for an existing NFT that was minted before the vault system.
557
557
  * This is used to migrate old NFTs to the new royalty vault system.
558
558
  *
559
559
  * @param tokenId The token ID to deploy a vault for.
560
560
  * @returns The transaction result including the new vault address.
561
- */function De(e){return a(this,void 0,void 0,(function*(){return this.callContractMethod(this.environment.IP_ROYALTY_VAULT_FACTORY_CONTRACT_ADDRESS,this.environment.IP_ROYALTY_VAULT_FACTORY_ABI,"deployVaultForExistingNFT",[e],{waitForReceipt:!0})}))}const _e=[{inputs:[{name:"owner",type:"address"}],name:"balanceOf",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],stateMutability:"view",type:"function"}];
561
+ */function De(e){return a(this,void 0,void 0,(function*(){return this.callContractMethod(this.environment.IP_ROYALTY_VAULT_FACTORY_CONTRACT_ADDRESS,this.environment.IP_ROYALTY_VAULT_FACTORY_ABI,"deployVaultForExistingNFT",[e],{waitForReceipt:!0})}))}const Re=[{inputs:[{name:"owner",type:"address"}],name:"balanceOf",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],stateMutability:"view",type:"function"}];
562
562
  /**
563
563
  * Gets the Royalty Token balance for a holder in a token's vault.
564
564
  * If no holder is provided, the connected wallet address is used,
@@ -567,13 +567,13 @@ let u;return u=p?yield n.getBalance({address:t}):yield n.readContract({address:o
567
567
  * @param tokenId The token ID whose vault to query.
568
568
  * @param holder Optional holder address. Defaults to the connected wallet.
569
569
  * @returns The royalty token balance info including vault address, balance, total supply, percentage, and decimals.
570
- */function ke(t,n){return a(this,void 0,void 0,(function*(){
570
+ */function Ne(t,n){return a(this,void 0,void 0,(function*(){
571
571
  // Default to the connected wallet, since RT tokens are sent there directly
572
572
  const i=n||(yield this.getWalletAddress()),a=yield this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"getRoyaltyVault",[t]);
573
573
  // Get vault address
574
- if(!a||a===e.zeroAddress)throw new Error(`No royalty vault found for token ${t}. Deploy a vault first using deployVaultForExistingNFT.`);const s=C(),[r,o,p]=yield Promise.all([s.readContract({address:a,abi:_e,functionName:"balanceOf",args:[i]}),s.readContract({address:a,abi:_e,functionName:"totalSupply"}),s.readContract({address:a,abi:_e,functionName:"decimals"})]);
574
+ if(!a||a===e.zeroAddress)throw new Error(`No royalty vault found for token ${t}. Deploy a vault first using deployVaultForExistingNFT.`);const s=C(),[r,o,d]=yield Promise.all([s.readContract({address:a,abi:Re,functionName:"balanceOf",args:[i]}),s.readContract({address:a,abi:Re,functionName:"totalSupply"}),s.readContract({address:a,abi:Re,functionName:"decimals"})]);
575
575
  // Read balance, totalSupply, and decimals in parallel
576
- return{vaultAddress:a,balance:r,totalSupply:o,percentage:o>BigInt(0)?Number(r*BigInt(1e4)/o)/100:0,decimals:Number(p)}}))}
576
+ return{vaultAddress:a,balance:r,totalSupply:o,percentage:o>BigInt(0)?Number(r*BigInt(1e4)/o)/100:0,decimals:Number(d)}}))}
577
577
  /**
578
578
  * Gets information about a registered app from the AppRegistry.
579
579
  *
@@ -587,15 +587,15 @@ return{vaultAddress:a,balance:r,totalSupply:o,percentage:o>BigInt(0)?Number(r*Bi
587
587
  * console.log(`Revenue Share: ${appInfo.revenueShareBps / 100}%`);
588
588
  * console.log(`Active: ${appInfo.isActive}`);
589
589
  * ```
590
- */function Ne(e){return a(this,void 0,void 0,(function*(){return this.callContractMethod(this.environment.APP_REGISTRY_CONTRACT_ADDRESS,this.environment.APP_REGISTRY_ABI,"getAppInfo",[e])}))}
590
+ */function Me(e){return a(this,void 0,void 0,(function*(){return this.callContractMethod(this.environment.APP_REGISTRY_CONTRACT_ADDRESS,this.environment.APP_REGISTRY_ABI,"getAppInfo",[e])}))}
591
591
  /**
592
592
  * Approves a spender to spend a specified amount of tokens on behalf of the owner.
593
593
  * If the current allowance is less than the specified amount, it will perform the approval.
594
594
  * Waits for the approval transaction to be confirmed before returning.
595
595
  * @param {ApproveParams} params - The parameters for the approval.
596
- */function Me(t){return a(this,arguments,void 0,(function*({walletClient:t,publicClient:n,tokenAddress:i,owner:a,spender:s,amount:r,chain:o}){if((yield n.readContract({address:i,abi:e.erc20Abi,functionName:"allowance",args:[a,s]}))<r){const p=yield t.writeContract({address:i,account:a,abi:e.erc20Abi,functionName:"approve",args:[s,r],chain:o});
596
+ */function Be(t){return a(this,arguments,void 0,(function*({walletClient:t,publicClient:n,tokenAddress:i,owner:a,spender:s,amount:r,chain:o}){if((yield n.readContract({address:i,abi:e.erc20Abi,functionName:"allowance",args:[a,s]}))<r){const d=yield t.writeContract({address:i,account:a,abi:e.erc20Abi,functionName:"approve",args:[s,r],chain:o});
597
597
  // Wait for the approval transaction to be confirmed with extra confirmations
598
- yield n.waitForTransactionReceipt({hash:p,confirmations:2}),yield new Promise((e=>setTimeout(e,1e3)))}}))}
598
+ yield n.waitForTransactionReceipt({hash:d,confirmations:2}),yield new Promise((e=>setTimeout(e,1e3)))}}))}
599
599
  /**
600
600
  * Executes an atomic bulk purchase of multiple IP-NFT licenses.
601
601
  * All purchases succeed or all fail together.
@@ -614,7 +614,7 @@ yield n.waitForTransactionReceipt({hash:p,confirmations:2}),yield new Promise((e
614
614
  * const totalValue = 3000000000000000n;
615
615
  * await origin.bulkBuyAccess(buyerAddress, purchases, totalValue);
616
616
  * ```
617
- */function Oe(e,t,n){return this.callContractMethod(this.environment.BATCH_OPERATIONS_CONTRACT_ADDRESS,this.environment.BATCH_OPERATIONS_ABI,"bulkBuyAccess",[e,t],{waitForReceipt:!0,value:n})}
617
+ */function Fe(e,t,n){return this.callContractMethod(this.environment.BATCH_OPERATIONS_CONTRACT_ADDRESS,this.environment.BATCH_OPERATIONS_ABI,"bulkBuyAccess",[e,t],{waitForReceipt:!0,value:n})}
618
618
  /**
619
619
  * Executes a fault-tolerant bulk purchase of multiple IP-NFT licenses.
620
620
  * Individual purchases can fail without reverting the entire transaction.
@@ -631,7 +631,7 @@ yield n.waitForTransactionReceipt({hash:p,confirmations:2}),yield new Promise((e
631
631
  * console.log(`Purchased ${result.successCount} of ${purchases.length} IPs`);
632
632
  * console.log(`Failed tokens: ${result.failedTokenIds}`);
633
633
  * ```
634
- */function Be(e,t,n){return this.callContractMethod(this.environment.BATCH_OPERATIONS_CONTRACT_ADDRESS,this.environment.BATCH_OPERATIONS_ABI,"bulkBuyAccessTolerant",[e,t],{waitForReceipt:!0,value:n})}
634
+ */function Oe(e,t,n){return this.callContractMethod(this.environment.BATCH_OPERATIONS_CONTRACT_ADDRESS,this.environment.BATCH_OPERATIONS_ABI,"bulkBuyAccessTolerant",[e,t],{waitForReceipt:!0,value:n})}
635
635
  /**
636
636
  * Previews the total cost of purchasing multiple IP-NFT licenses.
637
637
  * This is a view function that doesn't require a transaction.
@@ -645,7 +645,7 @@ yield n.waitForTransactionReceipt({hash:p,confirmations:2}),yield new Promise((e
645
645
  * console.log(`Total cost: ${preview.totalNativeCost} wei`);
646
646
  * console.log(`Valid tokens: ${preview.validCount}`);
647
647
  * ```
648
- */function Fe(e){return this.callContractMethod(this.environment.BATCH_OPERATIONS_CONTRACT_ADDRESS,this.environment.BATCH_OPERATIONS_ABI,"previewBulkCost",[e])}
648
+ */function Ue(e){return this.callContractMethod(this.environment.BATCH_OPERATIONS_CONTRACT_ADDRESS,this.environment.BATCH_OPERATIONS_ABI,"previewBulkCost",[e])}
649
649
  /**
650
650
  * Builds purchase parameters for multiple tokens by fetching their current license terms.
651
651
  * This is a view function that doesn't require a transaction.
@@ -658,7 +658,7 @@ yield n.waitForTransactionReceipt({hash:p,confirmations:2}),yield new Promise((e
658
658
  * const params = await origin.buildPurchaseParams([1n, 2n, 3n]);
659
659
  * await origin.bulkBuyAccess(buyer, params, totalValue);
660
660
  * ```
661
- */function Ue(e){return this.callContractMethod(this.environment.BATCH_OPERATIONS_CONTRACT_ADDRESS,this.environment.BATCH_OPERATIONS_ABI,"buildPurchaseParams",[e])}
661
+ */function $e(e){return this.callContractMethod(this.environment.BATCH_OPERATIONS_CONTRACT_ADDRESS,this.environment.BATCH_OPERATIONS_ABI,"buildPurchaseParams",[e])}
662
662
  /**
663
663
  * Checks the active status of multiple tokens.
664
664
  *
@@ -670,7 +670,7 @@ yield n.waitForTransactionReceipt({hash:p,confirmations:2}),yield new Promise((e
670
670
  * const activeFlags = await origin.checkActiveStatus([1n, 2n, 3n]);
671
671
  * const activeTokens = tokenIds.filter((_, i) => activeFlags[i]);
672
672
  * ```
673
- */function $e(e){return this.callContractMethod(this.environment.BATCH_OPERATIONS_CONTRACT_ADDRESS,this.environment.BATCH_OPERATIONS_ABI,"checkActiveStatus",[e])}
673
+ */function He(e){return this.callContractMethod(this.environment.BATCH_OPERATIONS_CONTRACT_ADDRESS,this.environment.BATCH_OPERATIONS_ABI,"checkActiveStatus",[e])}
674
674
  /**
675
675
  * Smart bulk purchase that automatically fetches terms and handles the entire purchase flow.
676
676
  * This is the recommended method for most use cases.
@@ -687,7 +687,7 @@ yield n.waitForTransactionReceipt({hash:p,confirmations:2}),yield new Promise((e
687
687
  * // Tolerant purchase - continue even if some fail
688
688
  * const result = await origin.bulkBuyAccessSmart([1n, 2n, 3n], { tolerant: true });
689
689
  * ```
690
- */function He(t,n){return a(this,void 0,void 0,(function*(){if(!t||0===t.length)throw new T("No token IDs provided for bulk purchase. Please provide at least one token ID.");
690
+ */function je(t,n){return a(this,void 0,void 0,(function*(){if(!t||0===t.length)throw new T("No token IDs provided for bulk purchase. Please provide at least one token ID.");
691
691
  // Get the buyer's wallet address
692
692
  const i=this.viemClient;if(!i)throw new v("Cannot perform bulk purchase: wallet not connected. Please connect a wallet first.");let a;if(i.account)a=i.account.address;else{const e=yield i.request({method:"eth_requestAccounts",params:[]});if(!e||0===e.length)throw new v("No accounts found in connected wallet. Please unlock your wallet or add an account.");a=e[0]}
693
693
  // Build purchase params from on-chain data
@@ -697,7 +697,7 @@ let r=BigInt(0);const o=[];for(const t of s)if(t.expectedPaymentToken===e.zeroAd
697
697
  // Group ERC20 purchases by token
698
698
  const e=o.find((e=>e.token===t.expectedPaymentToken));e?e.amount+=t.expectedPrice:o.push({token:t.expectedPaymentToken,amount:t.expectedPrice})}
699
699
  // Approve ERC20 tokens if needed
700
- const p=C();for(const e of o)yield Me({walletClient:i,publicClient:p,tokenAddress:e.token,owner:a,spender:this.environment.BATCH_OPERATIONS_CONTRACT_ADDRESS,amount:e.amount,chain:this.environment.CHAIN});
700
+ const d=C();for(const e of o)yield Be({walletClient:i,publicClient:d,tokenAddress:e.token,owner:a,spender:this.environment.BATCH_OPERATIONS_CONTRACT_ADDRESS,amount:e.amount,chain:this.environment.CHAIN});
701
701
  // Execute the purchase
702
702
  return(null==n?void 0:n.tolerant)?this.bulkBuyAccessTolerant(a,s,r):this.bulkBuyAccess(a,s,r)}))}
703
703
  /**
@@ -716,7 +716,7 @@ return(null==n?void 0:n.tolerant)?this.bulkBuyAccessTolerant(a,s,r):this.bulkBuy
716
716
  * creatorContentHash: "0x...",
717
717
  * uri: "ipfs://...",
718
718
  * licenseTerms: { price: 1000n, duration: 86400, royaltyBps: 500, paymentToken: zeroAddress, licenseType: 0 },
719
- * deadline: BigInt(Date.now() + 600000),
719
+ * deadline: BigInt(Math.floor(Date.now() / 1000) + 600),
720
720
  * parents: [],
721
721
  * isIP: true,
722
722
  * appId: "myApp",
@@ -739,50 +739,121 @@ return(null==n?void 0:n.tolerant)?this.bulkBuyAccessTolerant(a,s,r):this.bulkBuy
739
739
  * console.log(`Minted ${result.successCount} of ${mints.length} tokens`);
740
740
  * console.log(`Failed tokens: ${result.failedTokenIds}`);
741
741
  * ```
742
- */function je(e){return this.callContractMethod(this.environment.BATCH_OPERATIONS_CONTRACT_ADDRESS,this.environment.BATCH_OPERATIONS_ABI,"bulkMintTolerant",[e],{waitForReceipt:!0})}var Le,ze,qe,Je,Ye,We,Ge,Ke,Qe,Xe,Ze,et,tt,nt,it,at,st,rt,ot,pt,dt,ut;
742
+ */function Le(e){return this.callContractMethod(this.environment.BATCH_OPERATIONS_CONTRACT_ADDRESS,this.environment.BATCH_OPERATIONS_ABI,"bulkMintTolerant",[e],{waitForReceipt:!0})}
743
+ /**
744
+ * Save IPFS credentials for large file uploads.
745
+ * Users can configure their own IPFS pinning service (Pinata, Infura, or web3.storage).
746
+ * @param credentials The IPFS credentials to save.
747
+ * @throws {APIError} If saving credentials fails.
748
+ * @example
749
+ * ```typescript
750
+ * // Save Pinata credentials
751
+ * await origin.saveIpfsCredentials({
752
+ * provider: 'pinata',
753
+ * jwt: 'your-pinata-jwt-token'
754
+ * });
755
+ *
756
+ * // Save Infura credentials
757
+ * await origin.saveIpfsCredentials({
758
+ * provider: 'infura',
759
+ * projectId: 'your-project-id',
760
+ * projectSecret: 'your-project-secret'
761
+ * });
762
+ * ```
763
+ */
764
+ function ze(e){return a(this,void 0,void 0,(function*(){if(!this.jwt)throw new h("JWT token required for IPFS credentials management");
765
+ // Validate credentials before sending
766
+ !function(e){switch(e.provider){case"pinata":if(!(e.jwt||e.apiKey&&e.apiSecret))throw new T("Pinata requires either 'jwt' or both 'apiKey' and 'apiSecret'");break;case"infura":if(!e.projectId||!e.projectSecret)throw new T("Infura requires both 'projectId' and 'projectSecret'");break;case"web3storage":if(!e.token)throw new T("web3.storage requires 'token'");break;default:throw new T(`Unsupported IPFS provider: ${e.provider}`)}}(e);const t=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/ipfs/credentials`,{method:"POST",headers:{Authorization:`Bearer ${this.jwt}`,"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok){const e=yield t.json().catch((()=>({})));throw new h(e.message||`Failed to save IPFS credentials (HTTP ${t.status})`,t.status)}}))}
767
+ /**
768
+ * Verify that saved IPFS credentials are valid.
769
+ * @returns Object with valid boolean and optional error message.
770
+ * @throws {APIError} If verification request fails.
771
+ */function qe(){return a(this,void 0,void 0,(function*(){if(!this.jwt)throw new h("JWT token required for IPFS credentials management");const e=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/ipfs/credentials/verify`,{method:"POST",headers:{Authorization:`Bearer ${this.jwt}`,"Content-Type":"application/json"}});if(!e.ok){if(404===e.status)return{valid:!1,error:"No IPFS credentials configured"};const t=yield e.json().catch((()=>({})));throw new h(t.message||`Failed to verify IPFS credentials (HTTP ${e.status})`,e.status)}return(yield e.json()).data}))}
772
+ /**
773
+ * Delete saved IPFS credentials.
774
+ * @throws {APIError} If deletion fails.
775
+ */function Je(){return a(this,void 0,void 0,(function*(){if(!this.jwt)throw new h("JWT token required for IPFS credentials management");const e=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/ipfs/credentials`,{method:"DELETE",headers:{Authorization:`Bearer ${this.jwt}`}});if(!e.ok){const t=yield e.json().catch((()=>({})));throw new h(t.message||`Failed to delete IPFS credentials (HTTP ${e.status})`,e.status)}}))}
776
+ /**
777
+ * Check if user has IPFS credentials configured.
778
+ * @returns True if credentials are configured, false otherwise.
779
+ */function Ye(){return a(this,void 0,void 0,(function*(){var e;if(!this.jwt)return!1;try{const t=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/ipfs/credentials`,{method:"GET",headers:{Authorization:`Bearer ${this.jwt}`}});if(!t.ok)return!1;return(null===(e=(yield t.json()).data)||void 0===e?void 0:e.hasCredentials)||!1}catch(e){return!1}}))}
780
+ /**
781
+ * Get IPFS upload config for client-side uploads.
782
+ * @returns IPFS config or null if not configured.
783
+ */function We(){return a(this,void 0,void 0,(function*(){if(!this.jwt)return null;try{const e=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/ipfs/upload-config`,{method:"GET",headers:{Authorization:`Bearer ${this.jwt}`}});if(!e.ok)return null;return(yield e.json()).data||null}catch(e){return null}}))}
784
+ /**
785
+ * Upload a file to user's IPFS pinning service.
786
+ * @param file The file to upload.
787
+ * @param config The IPFS upload config.
788
+ * @param progressCallback Optional progress callback with intermediate upload progress.
789
+ * @returns The IPFS CID of the uploaded file.
790
+ */function Ke(e,t,n){return a(this,void 0,void 0,(function*(){var a,s,r,o,d,p,u,l,y,c,m,f,v,w,A,I;
791
+ // Validate file input
792
+ if(!(e&&e instanceof File))throw new T("Invalid file: must be a File object");if(0===e.size)throw new T("Cannot upload empty file");null==n||n(0);const g=n?e=>{if(e.total){const t=Math.round(e.loaded/e.total*100);n(t)}}:void 0;let b;switch(t.provider){case"pinata":{const n=new FormData;n.append("file",e);const c={};(null===(a=t.pinata)||void 0===a?void 0:a.jwt)?c.Authorization=`Bearer ${t.pinata.jwt}`:(null===(s=t.pinata)||void 0===s?void 0:s.apiKey)&&(null===(r=t.pinata)||void 0===r?void 0:r.apiSecret)&&(c.pinata_api_key=t.pinata.apiKey,c.pinata_secret_api_key=t.pinata.apiSecret);try{b=(yield i.post("https://api.pinata.cloud/pinning/pinFileToIPFS",n,{headers:c,onUploadProgress:g,timeout:6e5})).data.IpfsHash}catch(e){const t=null===(o=e.response)||void 0===o?void 0:o.status,n=(null===(u=null===(p=null===(d=e.response)||void 0===d?void 0:d.data)||void 0===p?void 0:p.error)||void 0===u?void 0:u.details)||(null===(y=null===(l=e.response)||void 0===l?void 0:l.data)||void 0===y?void 0:y.message)||e.message;throw new h(`Pinata IPFS upload failed: ${n}`,t)}break}case"infura":{if(!t.infura)throw new Error("Infura config missing");const n=new FormData;n.append("file",e);const a=btoa(`${t.infura.projectId}:${t.infura.projectSecret}`);try{b=(yield i.post(`${t.infura.endpoint}/api/v0/add`,n,{headers:{Authorization:`Basic ${a}`},onUploadProgress:g,timeout:6e5})).data.Hash}catch(e){const t=null===(c=e.response)||void 0===c?void 0:c.status,n=(null===(f=null===(m=e.response)||void 0===m?void 0:m.data)||void 0===f?void 0:f.Message)||e.message;throw new h(`Infura IPFS upload failed: ${n}`,t)}break}case"web3storage":if(!(null===(v=t.web3storage)||void 0===v?void 0:v.token))throw new Error("web3.storage config missing");try{b=(yield i.post("https://api.web3.storage/upload",e,{headers:{Authorization:`Bearer ${t.web3storage.token}`,"X-Name":e.name},onUploadProgress:g,timeout:6e5})).data.cid}catch(e){const t=null===(w=e.response)||void 0===w?void 0:w.status,n=(null===(I=null===(A=e.response)||void 0===A?void 0:A.data)||void 0===I?void 0:I.message)||e.message;throw new h(`web3.storage IPFS upload failed: ${n}`,t)}break;default:throw new T(`Unsupported IPFS provider: ${t.provider}. Supported providers: pinata, infura, web3storage`)}if(!b||"string"!=typeof b)throw new h(`IPFS upload to ${t.provider} succeeded but returned no CID`);return null==n||n(100),b}))}
793
+ /**
794
+ * Register an IPFS file with the backend after client-side upload.
795
+ * @param cid The IPFS CID of the uploaded file.
796
+ * @param fileName The original file name.
797
+ * @param fileType The file MIME type.
798
+ * @returns The registered file key.
799
+ */function Ge(e,t,n){return a(this,void 0,void 0,(function*(){if(!this.jwt)throw new h("JWT token required for IPFS file registration");const i=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/ipfs/register-file`,{method:"POST",headers:{Authorization:`Bearer ${this.jwt}`,"Content-Type":"application/json"},body:JSON.stringify({cid:e,fileName:t,fileType:n})});if(!i.ok){const e=yield i.json().catch((()=>({})));throw new h(e.message||`Failed to register IPFS file (HTTP ${i.status})`,i.status)}return{fileKey:(yield i.json()).data.fileKey}}))}var Qe,Xe,Ze,et,tt,nt,it,at,st,rt,ot,dt,pt,ut,lt,yt,ct,mt,ht,Tt,ft,vt;
743
800
  /**
744
801
  * The Origin class
745
802
  * Handles interactions with Origin protocol.
746
- */class lt{constructor(e,t,n,i,a){Le.add(this),t?this.jwt=t:console.warn("JWT not provided. Some features may be unavailable."),this.viemClient=n,this.environment="string"==typeof e?U[e]:e||U.DEVELOPMENT,this.baseParentId=i,this.appId=a,
803
+ */class wt{constructor(e,t,n,i,a){Qe.add(this),t?this.jwt=t:console.warn("JWT not provided. Some features may be unavailable."),this.viemClient=n,this.environment="string"==typeof e?$[e]:e||$.DEVELOPMENT,this.baseParentId=i,this.appId=a,
747
804
  // DataNFT methods
748
- this.mintWithSignature=L.bind(this),this.registerIpNFT=z.bind(this),this.updateTerms=q.bind(this),this.finalizeDelete=J.bind(this),this.getTerms=Y.bind(this),this.ownerOf=W.bind(this),this.balanceOf=G.bind(this),this.tokenURI=K.bind(this),this.dataStatus=Q.bind(this),this.isApprovedForAll=X.bind(this),this.transferFrom=Z.bind(this),this.safeTransferFrom=ee.bind(this),this.approve=te.bind(this),this.setApprovalForAll=ne.bind(this),
805
+ this.mintWithSignature=z.bind(this),this.registerIpNFT=q.bind(this),this.updateTerms=J.bind(this),this.finalizeDelete=Y.bind(this),this.getTerms=W.bind(this),this.ownerOf=K.bind(this),this.balanceOf=G.bind(this),this.tokenURI=Q.bind(this),this.dataStatus=X.bind(this),this.isApprovedForAll=Z.bind(this),this.transferFrom=ee.bind(this),this.safeTransferFrom=te.bind(this),this.approve=ne.bind(this),this.setApprovalForAll=ie.bind(this),
749
806
  // Marketplace methods
750
- this.buyAccess=ie.bind(this),this.hasAccess=ae.bind(this),this.subscriptionExpiry=se.bind(this),
807
+ this.buyAccess=ae.bind(this),this.hasAccess=se.bind(this),this.subscriptionExpiry=re.bind(this),
751
808
  // Bulk purchase methods
752
- this.bulkBuyAccess=Oe.bind(this),this.bulkBuyAccessTolerant=Be.bind(this),this.bulkBuyAccessSmart=He.bind(this),this.previewBulkCost=Fe.bind(this),this.buildPurchaseParams=Ue.bind(this),this.checkActiveStatus=$e.bind(this),
809
+ this.bulkBuyAccess=Fe.bind(this),this.bulkBuyAccessTolerant=Oe.bind(this),this.bulkBuyAccessSmart=je.bind(this),this.previewBulkCost=Ue.bind(this),this.buildPurchaseParams=$e.bind(this),this.checkActiveStatus=He.bind(this),
753
810
  // Bulk mint methods
754
- this.bulkMint=Ve.bind(this),this.bulkMintTolerant=je.bind(this),
811
+ this.bulkMint=Ve.bind(this),this.bulkMintTolerant=Le.bind(this),
755
812
  // Dispute module methods
756
- this.raiseDispute=re.bind(this),this.raiseDisputeSmart=ue.bind(this),this.disputeAssertion=le.bind(this),this.disputeAssertionSmart=ye.bind(this),this.voteOnDispute=ce.bind(this),this.resolveDispute=me.bind(this),this.cancelDispute=he.bind(this),this.tagChildIp=Te.bind(this),this.getDispute=fe.bind(this),this.canVoteOnDispute=be.bind(this),this.getDisputeProgress=ge.bind(this),this.getDisputeRequirements=Ce.bind(this),
813
+ this.raiseDispute=oe.bind(this),this.raiseDisputeSmart=le.bind(this),this.disputeAssertion=ye.bind(this),this.disputeAssertionSmart=ce.bind(this),this.voteOnDispute=me.bind(this),this.resolveDispute=he.bind(this),this.cancelDispute=Te.bind(this),this.tagChildIp=fe.bind(this),this.getDispute=ve.bind(this),this.canVoteOnDispute=be.bind(this),this.getDisputeProgress=Ce.bind(this),this.getDisputeRequirements=Ee.bind(this),
757
814
  // Royalty vault module methods
758
- this.getRoyaltyVault=Ee.bind(this),this.getVaultRevenueTokens=Se.bind(this),this.claimableRevenue=xe.bind(this),this.claimRevenue=Pe.bind(this),this.claimRevenueBatch=Re.bind(this),this.deployVaultForExistingNFT=De.bind(this),this.getRoyaltyTokenBalance=ke.bind(this),
815
+ this.getRoyaltyVault=Se.bind(this),this.getVaultRevenueTokens=Pe.bind(this),this.claimableRevenue=xe.bind(this),this.claimRevenue=_e.bind(this),this.claimRevenueBatch=ke.bind(this),this.deployVaultForExistingNFT=De.bind(this),this.getRoyaltyTokenBalance=Ne.bind(this),
759
816
  // AppRegistry module methods
760
- this.getAppInfo=Ne.bind(this)}getJwt(){return this.jwt}setViemClient(e){this.viemClient=e}
817
+ this.getAppInfo=Me.bind(this),
818
+ // IPFS credentials methods
819
+ this.saveIpfsCredentials=ze.bind(this),this.verifyIpfsCredentials=qe.bind(this),this.deleteIpfsCredentials=Je.bind(this),this.hasIpfsCredentials=Ye.bind(this),this.getIpfsUploadConfig=We.bind(this),this.uploadToUserIPFS=Ke.bind(this),this.registerIpfsFile=Ge.bind(this)}getJwt(){return this.jwt}setViemClient(e){this.viemClient=e}
761
820
  /**
762
821
  * Approves an ERC20 token for spending by a spender address if the current allowance is insufficient.
763
822
  * Waits for the approval transaction to be confirmed before returning.
764
823
  * @param tokenAddress The address of the ERC20 token.
765
824
  * @param spender The address that will be approved to spend the tokens.
766
825
  * @param amount The amount of tokens to approve.
767
- */approveERC20IfNeeded(e,t,n){return a(this,void 0,void 0,(function*(){const i=yield s(this,Le,"m",Ze).call(this);yield Me({walletClient:this.viemClient,publicClient:C(),tokenAddress:e,owner:i,spender:t,amount:n,chain:this.environment.CHAIN})}))}
826
+ */approveERC20IfNeeded(e,t,n){return a(this,void 0,void 0,(function*(){const i=yield s(this,Qe,"m",ot).call(this);yield Be({walletClient:this.viemClient,publicClient:C(),tokenAddress:e,owner:i,spender:t,amount:n,chain:this.environment.CHAIN})}))}
768
827
  /**
769
828
  * Uploads a JSON object to IPFS and returns the resulting CID.
770
829
  * @param data The JSON object to upload.
771
830
  * @returns The CID of the uploaded JSON.
772
831
  * @throws {APIError} If the upload fails.
773
- */uploadJSONToIPFS(e){return a(this,void 0,void 0,(function*(){const t=JSON.stringify(e),n=new File([t],"evidence.json",{type:"application/json"}),i=yield s(this,Le,"m",Je).call(this,n);if(!i)throw new h("Failed to upload evidence to IPFS");return i}))}
832
+ */uploadJSONToIPFS(e){return a(this,void 0,void 0,(function*(){const t=JSON.stringify(e),n=new File([t],"evidence.json",{type:"application/json"}),i=yield s(this,Qe,"m",et).call(this,n);if(!i)throw new h("Failed to upload evidence to IPFS");return i}))}
774
833
  /**
775
834
  * Mints a file-based IpNFT.
776
835
  * @param file The file to mint.
777
836
  * @param metadata The metadata associated with the file.
778
837
  * @param license The license terms for the IpNFT.
779
838
  * @param parents Optional parent token IDs for lineage tracking.
780
- * @param options Optional parameters including progress callback, preview image, and use asset as preview flag.
839
+ * @param options Optional parameters including progress callback, preview image, use asset as preview flag, and forceIpfs.
781
840
  * @returns The token ID of the minted IpNFT as a string, or null if minting failed.
782
- */mintFile(e,t,n,i,r){return a(this,void 0,void 0,(function*(){let a,o=null;try{o=yield s(this,Le,"m",Ke).call(this)}catch(t){throw new v(`Cannot mint file "${e.name}": wallet not connected. Please connect a wallet first.`)}try{if(a=yield s(this,Le,"m",Ye).call(this,e,r),!a||!a.key)throw new h(`Failed to upload file "${e.name}": no upload info returned from server`)}catch(t){if(t instanceof h||t instanceof v)throw t;throw new h(`Failed to upload file "${e.name}": ${A(t)}`)}e.type&&(t.mimetype=e.type);let p=null;(null==r?void 0:r.previewImage)&&(null==r?void 0:r.previewImage.type.startsWith("image/"))?p=yield s(this,Le,"m",Je).call(this,r.previewImage):(null==r?void 0:r.useAssetAsPreview)&&e.type.startsWith("image/")&&(p=yield s(this,Le,"m",Je).call(this,e)),p&&(t.image=`ipfs://${p}`);const d=BigInt(Date.now()+6e5);// 10 minutes from now
783
- let u;this.baseParentId&&(i||(i=[]),i.unshift(this.baseParentId));try{u=yield this.registerIpNFT("file",d,n,t,!0,// isIp
784
- a.key,// fileKey
785
- i,this.appId)}catch(e){throw yield s(this,Le,"m",qe).call(this,a.key,a.uploadId,[]),new Error(`Failed to register IpNFT: ${e instanceof Error?e.message:String(e)}`)}const{tokenId:l,signerAddress:y,creatorContentHash:c,signature:m,uri:T}=u;if(!(l&&y&&c&&void 0!==m&&T))throw new Error("Failed to register IpNFT: Missing required fields in registration response.");try{const e=yield this.mintWithSignature(o,l,i||[],!0,c,T,n,d,m,this.appId);if(-1===["0x1","success"].indexOf(e.receipt.status))throw yield s(this,Le,"m",qe).call(this,a.key,a.uploadId,[]),new Error(`Minting failed with status: ${e.receipt.status}`)}catch(e){throw yield s(this,Le,"m",qe).call(this,a.key,a.uploadId,[]),new Error(`Minting transaction failed: ${e instanceof Error?e.message:String(e)}`)}return l.toString()}))}
841
+ */mintFile(e,t,n,i,r){return a(this,void 0,void 0,(function*(){let a=null;try{a=yield s(this,Qe,"m",at).call(this)}catch(t){throw new v(`Cannot mint file "${e.name}": wallet not connected. Please connect a wallet first.`)}
842
+ // Check if we should use IPFS for this file
843
+ let o;if((null==r?void 0:r.forceIpfs)||e.size>N){
844
+ // Large file - use user's IPFS pinning service
845
+ const t=yield this.getIpfsUploadConfig();if(!t)throw new h(`File "${e.name}" exceeds 20MB limit. Please configure your IPFS pinning service in Settings to upload large files.`);try{const n=yield this.uploadToUserIPFS(e,t,null==r?void 0:r.progressCallback),{fileKey:i}=yield this.registerIpfsFile(n,e.name,e.type);o={key:i,uploadId:""}}catch(t){throw new h(`Failed to upload file "${e.name}" to IPFS: ${A(t)}`)}}else
846
+ // Normal file - use S3
847
+ try{if(o=yield s(this,Qe,"m",tt).call(this,e,r),!o||!o.key)throw new h(`Failed to upload file "${e.name}": no upload info returned from server`)}catch(t){if(t instanceof h||t instanceof v)throw t;throw new h(`Failed to upload file "${e.name}": ${A(t)}`)}e.type&&(t.mimetype=e.type);let d=null;(null==r?void 0:r.previewImage)&&(null==r?void 0:r.previewImage.type.startsWith("image/"))?d=yield s(this,Qe,"m",et).call(this,r.previewImage):(null==r?void 0:r.useAssetAsPreview)&&e.type.startsWith("image/")&&(d=yield s(this,Qe,"m",et).call(this,e)),d&&(t.image=`ipfs://${d}`);const p=BigInt(Math.floor(Date.now()/1e3)+600);// 10 minutes from now
848
+ let u;this.baseParentId&&(i||(i=[]),i.unshift(this.baseParentId));try{u=yield this.registerIpNFT("file",p,n,t,!0,// isIp
849
+ o.key,// fileKey
850
+ i,this.appId)}catch(e){
851
+ // Only update S3 status if we have an uploadId (non-IPFS flow)
852
+ throw o.uploadId&&(yield s(this,Qe,"m",Ze).call(this,o.key,o.uploadId,[])),new Error(`Failed to register IpNFT: ${e instanceof Error?e.message:String(e)}`)}const{tokenId:l,signerAddress:y,creatorContentHash:c,signature:m,uri:T}=u;if(!(l&&y&&c&&void 0!==m&&T))throw new Error("Failed to register IpNFT: Missing required fields in registration response.");try{const e=yield this.mintWithSignature(a,l,i||[],!0,c,T,n,p,m,this.appId);if(-1===["0x1","success"].indexOf(e.receipt.status))
853
+ // Only update S3 status if we have an uploadId (non-IPFS flow)
854
+ throw o.uploadId&&(yield s(this,Qe,"m",Ze).call(this,o.key,o.uploadId,[])),new Error(`Minting failed with status: ${e.receipt.status}`)}catch(e){
855
+ // Only update S3 status if we have an uploadId (non-IPFS flow)
856
+ throw o.uploadId&&(yield s(this,Qe,"m",Ze).call(this,o.key,o.uploadId,[])),new Error(`Minting transaction failed: ${e instanceof Error?e.message:String(e)}`)}return l.toString()}))}
786
857
  /**
787
858
  * Mints multiple file-based IpNFTs in a single transaction using the BatchOperations contract.
788
859
  * Each file is uploaded and registered individually, then all mints are batched into one on-chain call.
@@ -802,33 +873,33 @@ i,this.appId)}catch(e){throw yield s(this,Le,"m",qe).call(this,a.key,a.uploadId,
802
873
  * // Tolerant mode - continue even if some mints fail
803
874
  * const result = await origin.bulkMintFile(entries, { tolerant: true });
804
875
  * ```
805
- */bulkMintFile(e,t){return a(this,void 0,void 0,(function*(){var n,i;if(!e||0===e.length)throw new T("No file entries provided for bulk mint. Please provide at least one entry.");let a=null;try{a=yield s(this,Le,"m",Ke).call(this)}catch(e){throw new v("Cannot bulk mint files: wallet not connected. Please connect a wallet first.")}const r=[],o=[],p=[];for(let d=0;d<e.length;d++){const u=e[d],{file:l,metadata:y,license:c}=u;let m,{parents:T}=u;
876
+ */bulkMintFile(e,t){return a(this,void 0,void 0,(function*(){var n,i;if(!e||0===e.length)throw new T("No file entries provided for bulk mint. Please provide at least one entry.");let a=null;try{a=yield s(this,Qe,"m",at).call(this)}catch(e){throw new v("Cannot bulk mint files: wallet not connected. Please connect a wallet first.")}const r=[],o=[],d=[];for(let p=0;p<e.length;p++){const u=e[p],{file:l,metadata:y,license:c}=u;let{parents:m}=u;
806
877
  // Upload file
807
- try{if(m=yield s(this,Le,"m",Ye).call(this,l,{progressCallback:n=>{var i;null===(i=null==t?void 0:t.progressCallback)||void 0===i||i.call(t,{fileIndex:d,fileCount:e.length,stage:"uploading",percent:n})}}),!m||!m.key)throw new h(`Failed to upload file "${l.name}": no upload info returned from server`)}catch(e){if(e instanceof h||e instanceof v)throw e;throw new h(`Failed to upload file "${l.name}": ${A(e)}`)}p.push(m),
878
+ let T;if((null==t?void 0:t.forceIpfs)||l.size>N){const n=yield this.getIpfsUploadConfig();if(!n)throw new h(`File "${l.name}" exceeds 20MB limit. Please configure your IPFS pinning service in Settings to upload large files.`);try{const i=yield this.uploadToUserIPFS(l,n,(n=>{var i;null===(i=null==t?void 0:t.progressCallback)||void 0===i||i.call(t,{fileIndex:p,fileCount:e.length,stage:"uploading",percent:n})})),{fileKey:a}=yield this.registerIpfsFile(i,l.name,l.type);T={key:a,uploadId:""}}catch(e){if(e instanceof h)throw e;throw new h(`Failed to upload file "${l.name}" to IPFS: ${A(e)}`)}}else try{if(T=yield s(this,Qe,"m",tt).call(this,l,{progressCallback:n=>{var i;null===(i=null==t?void 0:t.progressCallback)||void 0===i||i.call(t,{fileIndex:p,fileCount:e.length,stage:"uploading",percent:n})}}),!T||!T.key)throw new h(`Failed to upload file "${l.name}": no upload info returned from server`)}catch(e){if(e instanceof h||e instanceof v)throw e;throw new h(`Failed to upload file "${l.name}": ${A(e)}`)}d.push(T),
808
879
  // Set mimetype
809
880
  l.type&&(y.mimetype=l.type);
810
881
  // Handle preview image
811
- let f=null;u.previewImage&&u.previewImage.type.startsWith("image/")?f=yield s(this,Le,"m",Je).call(this,u.previewImage):u.useAssetAsPreview&&l.type.startsWith("image/")&&(f=yield s(this,Le,"m",Je).call(this,l)),f&&(y.image=`ipfs://${f}`);const w=BigInt(Date.now()+6e5);// 10 minutes from now
882
+ let f=null;u.previewImage&&u.previewImage.type.startsWith("image/")?f=yield s(this,Qe,"m",et).call(this,u.previewImage):u.useAssetAsPreview&&l.type.startsWith("image/")&&(f=yield s(this,Qe,"m",et).call(this,l)),f&&(y.image=`ipfs://${f}`);const w=BigInt(Math.floor(Date.now()/1e3)+600);// 10 minutes from now
812
883
  // Prepare parents
813
- let I;this.baseParentId&&(T||(T=[]),T=[this.baseParentId,...T]),
884
+ let I;this.baseParentId&&(m||(m=[]),m=[this.baseParentId,...m]),
814
885
  // Register IpNFT to get signature
815
- null===(n=null==t?void 0:t.progressCallback)||void 0===n||n.call(t,{fileIndex:d,fileCount:e.length,stage:"registering",percent:100});try{I=yield this.registerIpNFT("file",w,c,y,!0,// isIp
816
- m.key,// fileKey
817
- T,this.appId)}catch(e){throw yield s(this,Le,"m",qe).call(this,m.key,m.uploadId,[]),new Error(`Failed to register IpNFT for file "${l.name}": ${e instanceof Error?e.message:String(e)}`)}const{tokenId:b,creatorContentHash:g,signature:C,uri:E}=I;if(!b||!g||void 0===C||!E)throw yield s(this,Le,"m",qe).call(this,m.key,m.uploadId,[]),new Error(`Failed to register IpNFT for file "${l.name}": Missing required fields in registration response.`);o.push(b.toString()),r.push({to:a,tokenId:BigInt(b),creatorContentHash:g,uri:E,licenseTerms:c,deadline:w,parents:T||[],isIP:!0,appId:null!==(i=this.appId)&&void 0!==i?i:"",signature:C})}
886
+ null===(n=null==t?void 0:t.progressCallback)||void 0===n||n.call(t,{fileIndex:p,fileCount:e.length,stage:"registering",percent:100});try{I=yield this.registerIpNFT("file",w,c,y,!0,// isIp
887
+ T.key,// fileKey
888
+ m,this.appId)}catch(e){throw T.uploadId&&(yield s(this,Qe,"m",Ze).call(this,T.key,T.uploadId,[])),new Error(`Failed to register IpNFT for file "${l.name}": ${e instanceof Error?e.message:String(e)}`)}const{tokenId:g,creatorContentHash:b,signature:C,uri:E}=I;if(!g||!b||void 0===C||!E)throw T.uploadId&&(yield s(this,Qe,"m",Ze).call(this,T.key,T.uploadId,[])),new Error(`Failed to register IpNFT for file "${l.name}": Missing required fields in registration response.`);o.push(g.toString()),r.push({to:a,tokenId:BigInt(g),creatorContentHash:b,uri:E,licenseTerms:c,deadline:w,parents:m||[],isIP:!0,appId:null!==(i=this.appId)&&void 0!==i?i:"",signature:C})}
818
889
  // Execute bulk mint
819
890
  try{let e;return e=(null==t?void 0:t.tolerant)?yield this.bulkMintTolerant(r):yield this.bulkMint(r),{tokenIds:o,result:e}}catch(e){
820
- // Mark all uploads as failed
821
- for(const e of p)try{yield s(this,Le,"m",qe).call(this,e.key,e.uploadId,[])}catch(e){}throw new Error(`Bulk mint transaction failed: ${e instanceof Error?e.message:String(e)}`)}}))}
891
+ // Mark all S3 uploads as failed (skip IPFS entries with no uploadId)
892
+ for(const e of d)if(e.uploadId)try{yield s(this,Qe,"m",Ze).call(this,e.key,e.uploadId,[])}catch(e){}throw new Error(`Bulk mint transaction failed: ${e instanceof Error?e.message:String(e)}`)}}))}
822
893
  /**
823
894
  * Mints a social IpNFT.
824
895
  * @param source The social media source (spotify, twitter, tiktok).
825
896
  * @param metadata The metadata associated with the social media content.
826
897
  * @param license The license terms for the IpNFT.
827
898
  * @return The token ID of the minted IpNFT as a string, or null if minting failed.
828
- */mintSocial(e,t,n){return a(this,void 0,void 0,(function*(){let i=null;try{i=yield s(this,Le,"m",Ke).call(this)}catch(t){throw new v(`Cannot mint ${e} social IP: wallet not connected. Please connect a wallet first.`)}t.mimetype=`social/${e}`;const a=BigInt(Math.floor(Date.now()/1e3)+600);// 10 minutes from now
899
+ */mintSocial(e,t,n){return a(this,void 0,void 0,(function*(){let i=null;try{i=yield s(this,Qe,"m",at).call(this)}catch(t){throw new v(`Cannot mint ${e} social IP: wallet not connected. Please connect a wallet first.`)}t.mimetype=`social/${e}`;const a=BigInt(Math.floor(Date.now()/1e3)+600);// 10 minutes from now
829
900
  let r,o=this.baseParentId?[this.baseParentId]:[];try{r=yield this.registerIpNFT(e,a,n,t,!0,// isIp
830
901
  void 0,// fileKey
831
- o,this.appId)}catch(e){throw new Error(`Failed to register Social IpNFT: ${e instanceof Error?e.message:String(e)}`)}const{tokenId:p,signerAddress:d,creatorContentHash:u,signature:l,uri:y}=r;if(!(p&&d&&u&&void 0!==l&&y))throw new Error("Failed to register Social IpNFT: Missing required fields in registration response.");try{const e=yield this.mintWithSignature(i,p,o,!0,u,y,n,a,l,this.appId);if(-1===["0x1","success"].indexOf(e.receipt.status))throw new Error(`Minting Social IpNFT failed with status: ${e.receipt.status}`)}catch(e){throw new Error(`Minting transaction failed: ${e instanceof Error?e.message:String(e)}`)}return p.toString()}))}
902
+ o,this.appId)}catch(e){throw new Error(`Failed to register Social IpNFT: ${e instanceof Error?e.message:String(e)}`)}const{tokenId:d,signerAddress:p,creatorContentHash:u,signature:l,uri:y}=r;if(!(d&&p&&u&&void 0!==l&&y))throw new Error("Failed to register Social IpNFT: Missing required fields in registration response.");try{const e=yield this.mintWithSignature(i,d,o,!0,u,y,n,a,l,this.appId);if(-1===["0x1","success"].indexOf(e.receipt.status))throw new Error(`Minting Social IpNFT failed with status: ${e.receipt.status}`)}catch(e){throw new Error(`Minting transaction failed: ${e instanceof Error?e.message:String(e)}`)}return d.toString()}))}
832
903
  /**
833
904
  * Call a contract method.
834
905
  * @param {string} contractAddress The contract address.
@@ -838,9 +909,9 @@ o,this.appId)}catch(e){throw new Error(`Failed to register Social IpNFT: ${e ins
838
909
  * @param {CallOptions} [options] The call options.
839
910
  * @returns {Promise<any>} A promise that resolves with the result of the contract call or transaction hash.
840
911
  * @throws {Error} - Throws an error if the wallet client is not connected and the method is not a view function.
841
- */callContractMethod(t,n,i,r){return a(this,arguments,void 0,(function*(t,n,i,a,r={}){var o,p;let d=null;try{d=yield s(this,Le,"m",Ke).call(this)}catch(e){throw new v(`Cannot call "${i}" on contract ${t}: wallet not connected`)}const u=e.getAbiItem({abi:n,name:i});if(u&&"stateMutability"in u&&("view"===u.stateMutability||"pure"===u.stateMutability)){const e=C();return null!==(o=yield e.readContract({address:t,abi:n,functionName:i,args:a}))&&void 0!==o?o:null}yield s(this,Le,"m",Ge).call(this,this.environment.CHAIN);const l=C(),{result:y,request:c}=yield l.simulateContract({account:d,address:t,abi:n,functionName:i,args:a,value:r.value});
912
+ */callContractMethod(t,n,i,r){return a(this,arguments,void 0,(function*(t,n,i,a,r={}){var o,d;let p=null;try{p=yield s(this,Qe,"m",at).call(this)}catch(e){throw new v(`Cannot call "${i}" on contract ${t}: wallet not connected`)}const u=e.getAbiItem({abi:n,name:i});if(u&&"stateMutability"in u&&("view"===u.stateMutability||"pure"===u.stateMutability)){const e=C();return null!==(o=yield e.readContract({address:t,abi:n,functionName:i,args:a}))&&void 0!==o?o:null}yield s(this,Qe,"m",it).call(this,this.environment.CHAIN);const l=C(),{result:y,request:c}=yield l.simulateContract({account:p,address:t,abi:n,functionName:i,args:a,value:r.value});
842
913
  // simulate
843
- if(r.simulate)return y;try{const e=yield null===(p=this.viemClient)||void 0===p?void 0:p.writeContract(c);if("string"!=typeof e)throw new w(`Transaction for "${i}" failed to send: no transaction hash returned`,{contractName:t,methodName:i});if(!r.waitForReceipt)return{txHash:e,simulatedResult:y};return{txHash:e,receipt:yield s(this,Le,"m",We).call(this,e),simulatedResult:y}}catch(e){if(e instanceof w||e instanceof v)throw e;throw new w(`Transaction for "${i}" failed: ${A(e)}`,{contractName:t,methodName:i})}}))}
914
+ if(r.simulate)return y;try{const e=yield null===(d=this.viemClient)||void 0===d?void 0:d.writeContract(c);if("string"!=typeof e)throw new w(`Transaction for "${i}" failed to send: no transaction hash returned`,{contractName:t,methodName:i});if(!r.waitForReceipt)return{txHash:e,simulatedResult:y};return{txHash:e,receipt:yield s(this,Qe,"m",nt).call(this,e),simulatedResult:y}}catch(e){if(e instanceof w||e instanceof v)throw e;throw new w(`Transaction for "${i}" failed: ${A(e)}`,{contractName:t,methodName:i})}}))}
844
915
  /**
845
916
  * Gets comprehensive token information in a single call.
846
917
  * Combines owner, status, terms, URI, and access information.
@@ -860,11 +931,11 @@ if(r.simulate)return y;try{const e=yield null===(p=this.viemClient)||void 0===p?
860
931
  // Resolve the address to check access for
861
932
  let i;if(t)i=t;else if(null===(n=this.viemClient)||void 0===n?void 0:n.account)i=this.viemClient.account.address;else if(this.viemClient)try{const e=yield this.viemClient.request({method:"eth_requestAccounts",params:[]});i=e&&e.length>0?e[0]:"0x0000000000000000000000000000000000000000"}catch(e){i="0x0000000000000000000000000000000000000000"}else i="0x0000000000000000000000000000000000000000";
862
933
  // Fetch all information in parallel
863
- const[a,s,r,o,p]=yield Promise.all([this.ownerOf(e),this.tokenURI(e),this.dataStatus(e),this.getTerms(e),this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"tokenInfo",[e]).catch((()=>({appId:""})))]);
934
+ const[a,s,r,o,d]=yield Promise.all([this.ownerOf(e),this.tokenURI(e),this.dataStatus(e),this.getTerms(e),this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"tokenInfo",[e]).catch((()=>({appId:""})))]);
864
935
  // Get access info if we have a valid address
865
- let d=!1,u=null;if("0x0000000000000000000000000000000000000000"!==i)try{[d,u]=yield Promise.all([this.hasAccess(i,e),this.subscriptionExpiry(e,i)])}catch(e){
936
+ let p=!1,u=null;if("0x0000000000000000000000000000000000000000"!==i)try{[p,u]=yield Promise.all([this.hasAccess(i,e),this.subscriptionExpiry(e,i)])}catch(e){
866
937
  // Access check failed, defaults are fine
867
- }return{tokenId:e,owner:a,uri:s,status:r,terms:o,hasAccess:d,accessExpiry:u,appId:(null==p?void 0:p.appId)||""}}))}
938
+ }return{tokenId:e,owner:a,uri:s,status:r,terms:o,hasAccess:p,accessExpiry:u,appId:(null==d?void 0:d.appId)||""}}))}
868
939
  /**
869
940
  * Buy access to an asset by first checking its price via getTerms, then calling buyAccess.
870
941
  * Automatically fetches protocol and app fees from the contracts.
@@ -882,13 +953,13 @@ let d=!1,u=null;if("0x0000000000000000000000000000000000000000"!==i)try{[d,u]=yi
882
953
  * console.log("Access purchased:", result.txHash);
883
954
  * }
884
955
  * ```
885
- */buyAccessSmart(t){return a(this,void 0,void 0,(function*(){let n=null;try{n=yield s(this,Le,"m",Ke).call(this)}catch(e){throw new v(`Cannot buy access to token ${t}: wallet not connected. Please connect a wallet first.`)}
956
+ */buyAccessSmart(t){return a(this,void 0,void 0,(function*(){let n=null;try{n=yield s(this,Qe,"m",at).call(this)}catch(e){throw new v(`Cannot buy access to token ${t}: wallet not connected. Please connect a wallet first.`)}
886
957
  // Check if user already has access
887
958
  if(yield this.hasAccess(n,t))return console.log("User already has access to this asset"),null;const i=yield this.getTerms(t);if(!i)throw new h(`Failed to fetch license terms for token ${t}: no terms returned`);const{price:a,paymentToken:r,duration:o}=i;if(void 0===a||void 0===r||void 0===o)throw new h(`Invalid license terms for token ${t}: missing price, paymentToken, or duration`);
888
959
  // Fetch protocol fee from marketplace
889
- const p=yield s(this,Le,"m",Qe).call(this),d=yield s(this,Le,"m",Xe).call(this,t),u=a;
960
+ const d=yield s(this,Qe,"m",st).call(this),p=yield s(this,Qe,"m",rt).call(this,t),u=a;
890
961
  // Fetch app fee from token's appId
891
- return r===e.zeroAddress?this.buyAccess(n,t,u,o,r,p,d,u):(yield Me({walletClient:this.viemClient,publicClient:C(),tokenAddress:r,owner:n,spender:this.environment.MARKETPLACE_CONTRACT_ADDRESS,amount:u,chain:this.environment.CHAIN}),this.buyAccess(n,t,u,o,r,p,d))}))}
962
+ return r===e.zeroAddress?this.buyAccess(n,t,u,o,r,d,p,u):(yield Be({walletClient:this.viemClient,publicClient:C(),tokenAddress:r,owner:n,spender:this.environment.MARKETPLACE_CONTRACT_ADDRESS,amount:u,chain:this.environment.CHAIN}),this.buyAccess(n,t,u,o,r,d,p))}))}
892
963
  /**
893
964
  * Fetch the underlying data associated with a specific token ID.
894
965
  * @param {bigint} tokenId - The token ID to fetch data for.
@@ -938,30 +1009,30 @@ const t=[{inputs:[{name:"owner",type:"address"}],name:"balanceOf",outputs:[{name
938
1009
  * // Claim ERC20 token royalties to a specific address
939
1010
  * await origin.claimRoyalties(1n, "0xRecipient...", "0xToken...");
940
1011
  * ```
941
- */claimRoyalties(t,n,i){return a(this,void 0,void 0,(function*(){const a=yield s(this,Le,"m",Ze).call(this,n),r=yield this.getTokenBoundAccount(t),o=(yield this.getRoyalties(t,i)).balance;if(o===BigInt(0))throw new Error("No royalties available to claim");let p,d,u;
1012
+ */claimRoyalties(t,n,i){return a(this,void 0,void 0,(function*(){const a=yield s(this,Qe,"m",ot).call(this,n),r=yield this.getTokenBoundAccount(t),o=(yield this.getRoyalties(t,i)).balance;if(o===BigInt(0))throw new Error("No royalties available to claim");let d,p,u;
942
1013
  // Call execute on the TBA
943
1014
  return i&&i!==e.zeroAddress?(
944
1015
  // ERC20 token transfer
945
- p=i,d=BigInt(0),
1016
+ d=i,p=BigInt(0),
946
1017
  // Encode ERC20 transfer call: transfer(address to, uint256 amount)
947
1018
  u=e.encodeFunctionData({abi:[{inputs:[{name:"to",type:"address"},{name:"amount",type:"uint256"}],name:"transfer",outputs:[{name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}],functionName:"transfer",args:[a,o]})):(
948
1019
  // Native token transfer
949
- p=a,d=o,u="0x"),this.callContractMethod(r,this.environment.TBA_ABI,"execute",[p,d,u,0],// operation: 0 = CALL
1020
+ d=a,p=o,u="0x"),this.callContractMethod(r,this.environment.TBA_ABI,"execute",[d,p,u,0],// operation: 0 = CALL
950
1021
  {waitForReceipt:!0,value:BigInt(0)})}))}
951
1022
  /**
952
1023
  * Get the connected wallet address.
953
1024
  * @returns {Promise<Address>} The connected wallet address.
954
1025
  * @throws {WalletError} Throws if no wallet is connected.
955
- */getWalletAddress(){return a(this,void 0,void 0,(function*(){return s(this,Le,"m",Ze).call(this)}))}}Le=new WeakSet,ze=function(e,t){return a(this,void 0,void 0,(function*(){try{const n=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/origin/upload-url`,{method:"POST",body:JSON.stringify({name:e.name,type:e.type,partCount:t}),headers:{Authorization:`Bearer ${this.jwt}`,"Content-Type":"application/json"}});if(!n.ok)throw new Error(`HTTP ${n.status}: ${n.statusText}`);const i=yield n.json();if(i.isError)throw new Error(i.message||"Failed to generate upload URL");return i.data}catch(e){throw console.error("Failed to generate upload URL:",e),e}}))},qe=function(e,t,n){return a(this,void 0,void 0,(function*(){try{const i=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/origin/update-status`,{method:"PATCH",body:JSON.stringify({fileKey:e,uploadId:t,parts:n}),headers:{Authorization:`Bearer ${this.jwt}`,"Content-Type":"application/json"}});if(!i.ok){const e=yield i.text().catch((()=>"Unknown error"));throw new Error(`HTTP ${i.status}: ${e}`)}return!0}catch(e){throw console.error("Failed to update origin status:",e),e}}))},Je=function(e){return a(this,void 0,void 0,(function*(){var t;if(!e)return null;try{const n=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/origin/upload-url-ipfs`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.jwt}`},body:JSON.stringify({fileName:e.name,fileType:e.type})});if(!n.ok){const e=yield n.text().catch((()=>"Unknown error"));throw new Error(`Failed to get presigned URL (HTTP ${n.status}): ${e}`)}const i=yield n.json(),{isError:a,data:s,message:r}=i;if(a||!s)throw new Error(`Failed to get presigned URL: ${r||"No URL returned from server"}`);const o=new FormData;o.append("file",e);const p=yield fetch(s,{method:"POST",body:o});if(!p.ok){const e=yield p.text().catch((()=>p.statusText));throw new Error(`Failed to upload preview image to IPFS (HTTP ${p.status}): ${e}`)}const d=yield p.json();if(!d||!d.data)throw new Error("Invalid response from IPFS upload: Missing data field");return null===(t=d.data)||void 0===t?void 0:t.cid}catch(e){const t=e instanceof Error?e.message:String(e);throw console.error("Error uploading preview image to IPFS:",t),new Error(`Failed to upload preview image to IPFS: ${t}`)}}))},Ye=function(e,t){return a(this,void 0,void 0,(function*(){let n,i;try{i=((e,t)=>{const n=[];let i=0;for(;i<e.size;)n.push(e.slice(i,i+t)),i+=t;return n})(e,10485760),n=yield s(this,Le,"m",ze).call(this,e,i.length)}catch(e){throw console.error("Failed to generate upload URL:",e),new Error(`Failed to generate upload URL: ${e instanceof Error?e.message:String(e)}`)}if(!n)throw new Error("Failed to generate upload URL: No upload info returned");let a;try{a=yield j(i,n.urls,(null==t?void 0:t.progressCallback)||(()=>{}))}catch(e){try{yield s(this,Le,"m",qe).call(this,n.key,n.uploadId,a||[])}catch(e){console.error("Failed to update status to failed:",e)}const t=e instanceof Error?e.message:String(e);throw new Error(`Failed to upload file: ${t}`)}try{yield s(this,Le,"m",qe).call(this,n.key,n.uploadId,a)}catch(e){console.error("Failed to update status to success:",e)}return n}))},We=function(e){return a(this,arguments,void 0,(function*(e,t={}){var n,i,a;const s=C();let r=e;const o=null!==(n=t.confirmations)&&void 0!==n?n:1,p=null!==(i=t.timeoutMs)&&void 0!==i?i:18e4,d=null!==(a=t.pollingIntervalMs)&&void 0!==a?a:1500;try{return yield s.waitForTransactionReceipt({hash:r,confirmations:o,timeout:p,pollingInterval:d,onReplaced:e=>{r=e.transaction.hash}})}catch(e){
1026
+ */getWalletAddress(){return a(this,void 0,void 0,(function*(){return s(this,Qe,"m",ot).call(this)}))}}Qe=new WeakSet,Xe=function(e,t){return a(this,void 0,void 0,(function*(){try{const n=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/origin/upload-url`,{method:"POST",body:JSON.stringify({name:e.name,type:e.type,partCount:t}),headers:{Authorization:`Bearer ${this.jwt}`,"Content-Type":"application/json"}});if(!n.ok)throw new Error(`HTTP ${n.status}: ${n.statusText}`);const i=yield n.json();if(i.isError)throw new Error(i.message||"Failed to generate upload URL");return i.data}catch(e){throw console.error("Failed to generate upload URL:",e),e}}))},Ze=function(e,t,n){return a(this,void 0,void 0,(function*(){try{const i=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/origin/update-status`,{method:"PATCH",body:JSON.stringify({fileKey:e,uploadId:t,parts:n}),headers:{Authorization:`Bearer ${this.jwt}`,"Content-Type":"application/json"}});if(!i.ok){const e=yield i.text().catch((()=>"Unknown error"));throw new Error(`HTTP ${i.status}: ${e}`)}return!0}catch(e){throw console.error("Failed to update origin status:",e),e}}))},et=function(e){return a(this,void 0,void 0,(function*(){var t;if(!e)return null;try{const n=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/origin/upload-url-ipfs`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.jwt}`},body:JSON.stringify({fileName:e.name,fileType:e.type})});if(!n.ok){const e=yield n.text().catch((()=>"Unknown error"));throw new Error(`Failed to get presigned URL (HTTP ${n.status}): ${e}`)}const i=yield n.json(),{isError:a,data:s,message:r}=i;if(a||!s)throw new Error(`Failed to get presigned URL: ${r||"No URL returned from server"}`);const o=new FormData;o.append("file",e);const d=yield fetch(s,{method:"POST",body:o});if(!d.ok){const e=yield d.text().catch((()=>d.statusText));throw new Error(`Failed to upload preview image to IPFS (HTTP ${d.status}): ${e}`)}const p=yield d.json();if(!p||!p.data)throw new Error("Invalid response from IPFS upload: Missing data field");return null===(t=p.data)||void 0===t?void 0:t.cid}catch(e){const t=e instanceof Error?e.message:String(e);throw console.error("Error uploading preview image to IPFS:",t),new Error(`Failed to upload preview image to IPFS: ${t}`)}}))},tt=function(e,t){return a(this,void 0,void 0,(function*(){let n,i;try{i=((e,t)=>{const n=[];let i=0;for(;i<e.size;)n.push(e.slice(i,i+t)),i+=t;return n})(e,10485760),n=yield s(this,Qe,"m",Xe).call(this,e,i.length)}catch(e){throw console.error("Failed to generate upload URL:",e),new Error(`Failed to generate upload URL: ${e instanceof Error?e.message:String(e)}`)}if(!n)throw new Error("Failed to generate upload URL: No upload info returned");let a;try{a=yield L(i,n.urls,(null==t?void 0:t.progressCallback)||(()=>{}))}catch(e){try{yield s(this,Qe,"m",Ze).call(this,n.key,n.uploadId,a||[])}catch(e){console.error("Failed to update status to failed:",e)}const t=e instanceof Error?e.message:String(e);throw new Error(`Failed to upload file: ${t}`)}try{yield s(this,Qe,"m",Ze).call(this,n.key,n.uploadId,a)}catch(e){console.error("Failed to update status to success:",e)}return n}))},nt=function(e){return a(this,arguments,void 0,(function*(e,t={}){var n,i,a;const s=C();let r=e;const o=null!==(n=t.confirmations)&&void 0!==n?n:1,d=null!==(i=t.timeoutMs)&&void 0!==i?i:18e4,p=null!==(a=t.pollingIntervalMs)&&void 0!==a?a:1500;try{return yield s.waitForTransactionReceipt({hash:r,confirmations:o,timeout:d,pollingInterval:p,onReplaced:e=>{r=e.transaction.hash}})}catch(e){
956
1027
  // fallback
957
- const t=Date.now();for(;Date.now()-t<p;){try{const e=yield s.getTransactionReceipt({hash:r});if(e&&e.blockNumber)return e}catch(e){}yield new Promise((e=>setTimeout(e,d)))}throw e}}))},Ge=function(e){return a(this,void 0,void 0,(function*(){if(!this.viemClient)throw new v(`Cannot switch to chain "${e.name}": wallet not connected. Please connect a wallet first.`);let t=yield this.viemClient.request({method:"eth_chainId",params:[]});if("string"==typeof t&&(t=parseInt(t,16)),t!==e.id){(e=>{g=e,b=null})// reset public client to be recreated with new chain
1028
+ const t=Date.now();for(;Date.now()-t<d;){try{const e=yield s.getTransactionReceipt({hash:r});if(e&&e.blockNumber)return e}catch(e){}yield new Promise((e=>setTimeout(e,p)))}throw e}}))},it=function(e){return a(this,void 0,void 0,(function*(){if(!this.viemClient)throw new v(`Cannot switch to chain "${e.name}": wallet not connected. Please connect a wallet first.`);let t=yield this.viemClient.request({method:"eth_chainId",params:[]});if("string"==typeof t&&(t=parseInt(t,16)),t!==e.id){(e=>{b=e,g=null})// reset public client to be recreated with new chain
958
1029
  (e);try{yield this.viemClient.request({method:"wallet_switchEthereumChain",params:[{chainId:"0x"+BigInt(e.id).toString(16)}]})}catch(t){
959
1030
  // Unrecognized chain
960
- if(4902!==t.code)throw t;yield this.viemClient.request({method:"wallet_addEthereumChain",params:[{chainId:"0x"+BigInt(e.id).toString(16),chainName:e.name,rpcUrls:e.rpcUrls.default.http,nativeCurrency:e.nativeCurrency}]}),yield this.viemClient.request({method:"wallet_switchEthereumChain",params:[{chainId:"0x"+BigInt(e.id).toString(16)}]})}}}))},Ke=function(){return a(this,void 0,void 0,(function*(){if(!this.viemClient)throw new v("No wallet connected. Please connect a wallet to perform this action.");
1031
+ if(4902!==t.code)throw t;yield this.viemClient.request({method:"wallet_addEthereumChain",params:[{chainId:"0x"+BigInt(e.id).toString(16),chainName:e.name,rpcUrls:e.rpcUrls.default.http,nativeCurrency:e.nativeCurrency}]}),yield this.viemClient.request({method:"wallet_switchEthereumChain",params:[{chainId:"0x"+BigInt(e.id).toString(16)}]})}}}))},at=function(){return a(this,void 0,void 0,(function*(){if(!this.viemClient)throw new v("No wallet connected. Please connect a wallet to perform this action.");
961
1032
  // If account is already set on the client, return it directly
962
1033
  if(this.viemClient.account)return this.viemClient.account.address;
963
1034
  // Otherwise request accounts (browser wallet flow)
964
- const e=yield this.viemClient.request({method:"eth_requestAccounts",params:[]});if(!e||0===e.length)throw new v("No accounts found in connected wallet. Please unlock your wallet or add an account.");return e[0]}))},Qe=function(){return a(this,void 0,void 0,(function*(){try{const e=yield this.callContractMethod(this.environment.MARKETPLACE_CONTRACT_ADDRESS,this.environment.MARKETPLACE_ABI,"protocolFeeBps",[]);return Number(e)}catch(e){return console.warn("Failed to fetch protocol fee, defaulting to 0:",e),0}}))},Xe=function(e){return a(this,void 0,void 0,(function*(){try{
1035
+ const e=yield this.viemClient.request({method:"eth_requestAccounts",params:[]});if(!e||0===e.length)throw new v("No accounts found in connected wallet. Please unlock your wallet or add an account.");return e[0]}))},st=function(){return a(this,void 0,void 0,(function*(){try{const e=yield this.callContractMethod(this.environment.MARKETPLACE_CONTRACT_ADDRESS,this.environment.MARKETPLACE_ABI,"protocolFeeBps",[]);return Number(e)}catch(e){return console.warn("Failed to fetch protocol fee, defaulting to 0:",e),0}}))},rt=function(e){return a(this,void 0,void 0,(function*(){try{
965
1036
  // First, get the token info to find its appId
966
1037
  const t=yield this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"tokenInfo",[e]),n=null==t?void 0:t.appId;if(!n||""===n)return 0;
967
1038
  // Check if app registry is configured
@@ -969,11 +1040,11 @@ if(!this.environment.APP_REGISTRY_CONTRACT_ADDRESS||!this.environment.APP_REGIST
969
1040
  // Fetch app info from registry
970
1041
  const i=yield this.callContractMethod(this.environment.APP_REGISTRY_CONTRACT_ADDRESS,this.environment.APP_REGISTRY_ABI,"getAppInfo",[n]);
971
1042
  // Only return fee if app is active
972
- return(null==i?void 0:i.isActive)?Number(i.revenueShareBps):0}catch(e){return console.warn("Failed to fetch app fee, defaulting to 0:",e),0}}))},Ze=function(e){return a(this,void 0,void 0,(function*(){if(e)return e;if(!this.viemClient)throw new v("No wallet address provided and no wallet connected. Please provide an address or connect a wallet.");
1043
+ return(null==i?void 0:i.isActive)?Number(i.revenueShareBps):0}catch(e){return console.warn("Failed to fetch app fee, defaulting to 0:",e),0}}))},ot=function(e){return a(this,void 0,void 0,(function*(){if(e)return e;if(!this.viemClient)throw new v("No wallet address provided and no wallet connected. Please provide an address or connect a wallet.");
973
1044
  // If account is already set on the client, return it directly
974
1045
  if(this.viemClient.account)return this.viemClient.account.address;
975
1046
  // Otherwise request accounts (browser wallet flow)
976
- const t=yield this.viemClient.request({method:"eth_requestAccounts",params:[]});if(!t||0===t.length)throw new v("No accounts found in connected wallet. Please unlock your wallet or add an account.");return t[0]}))};tt=new WeakMap,nt=new WeakMap,it=new WeakMap,at=new WeakMap,et=new WeakSet,st=function(e,t){s(this,tt,"f")[e]&&s(this,tt,"f")[e].forEach((e=>e(t)))},rt=function(e){return a(this,void 0,void 0,(function*(){const t=yield s(this,at,"f").getItem("camp-sdk:wallet-address"),n=yield s(this,at,"f").getItem("camp-sdk:user-id"),i=yield s(this,at,"f").getItem("camp-sdk:jwt"),a=yield s(this,at,"f").getItem("camp-sdk:environment");t&&n&&i&&(a===this.environment.NAME||!a)?(this.walletAddress=t,this.userId=n,this.jwt=i,this.origin=new lt(this.environment,this.jwt,this.viem,this.baseParentId,this.appId),this.isAuthenticated=!0,e?this.setProvider({provider:e.provider,info:e.info||{name:"Unknown"},address:t}):s(this,nt,"f")||(console.warn("No matching provider was given for the stored wallet address. Trying to recover provider."),yield this.recoverProvider())):this.isAuthenticated=!1}))},ot=function(){return a(this,void 0,void 0,(function*(){try{const[t]=yield this.viem.requestAddresses();return this.walletAddress=e.checksumAddress(t),this.walletAddress}catch(e){throw new v(`Failed to connect wallet: ${A(e)}`)}}))},pt=function(){return a(this,void 0,void 0,(function*(){try{const e=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/client-user/nonce`,{method:"POST",headers:{"Content-Type":"application/json","x-client-id":this.clientId},body:JSON.stringify({walletAddress:this.walletAddress})}),t=yield e.json();if(200!==e.status)throw new h(t.message||`Failed to fetch nonce (HTTP ${e.status})`,e.status);return t.data}catch(e){if(e instanceof h)throw e;throw new h(`Failed to fetch nonce: ${A(e)}`)}}))},dt=function(e,t){return a(this,void 0,void 0,(function*(){try{const n=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/client-user/verify`,{method:"POST",headers:{"Content-Type":"application/json","x-client-id":this.clientId},body:JSON.stringify({message:e,signature:t,walletAddress:this.walletAddress})}),i=yield n.json(),a=i.data.split(".")[1],s=JSON.parse(atob(a));return{success:!i.isError,userId:s.id,token:i.data}}catch(e){throw new h(`Failed to verify signature: ${A(e)}`)}}))},ut=function(e,t,i){return n.createSiweMessage({domain:t||(s(this,nt,"f")?"localhost":window.location.host),address:this.walletAddress,statement:k,uri:i||(s(this,nt,"f")?"http://localhost":window.location.origin),version:"1",chainId:this.environment.CHAIN.id,nonce:e})},exports.Auth=
1047
+ const t=yield this.viemClient.request({method:"eth_requestAccounts",params:[]});if(!t||0===t.length)throw new v("No accounts found in connected wallet. Please unlock your wallet or add an account.");return t[0]}))};pt=new WeakMap,ut=new WeakMap,lt=new WeakMap,yt=new WeakMap,dt=new WeakSet,ct=function(e,t){s(this,pt,"f")[e]&&s(this,pt,"f")[e].forEach((e=>e(t)))},mt=function(e){return a(this,void 0,void 0,(function*(){const t=yield s(this,yt,"f").getItem("camp-sdk:wallet-address"),n=yield s(this,yt,"f").getItem("camp-sdk:user-id"),i=yield s(this,yt,"f").getItem("camp-sdk:jwt"),a=yield s(this,yt,"f").getItem("camp-sdk:environment");t&&n&&i&&(a===this.environment.NAME||!a)?(this.walletAddress=t,this.userId=n,this.jwt=i,this.origin=new wt(this.environment,this.jwt,this.viem,this.baseParentId,this.appId),this.isAuthenticated=!0,e?this.setProvider({provider:e.provider,info:e.info||{name:"Unknown"},address:t}):s(this,ut,"f")||(console.warn("No matching provider was given for the stored wallet address. Trying to recover provider."),yield this.recoverProvider())):this.isAuthenticated=!1}))},ht=function(){return a(this,void 0,void 0,(function*(){try{const[t]=yield this.viem.requestAddresses();return this.walletAddress=e.checksumAddress(t),this.walletAddress}catch(e){throw new v(`Failed to connect wallet: ${A(e)}`)}}))},Tt=function(){return a(this,void 0,void 0,(function*(){try{const e=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/client-user/nonce`,{method:"POST",headers:{"Content-Type":"application/json","x-client-id":this.clientId},body:JSON.stringify({walletAddress:this.walletAddress})}),t=yield e.json();if(200!==e.status)throw new h(t.message||`Failed to fetch nonce (HTTP ${e.status})`,e.status);return t.data}catch(e){if(e instanceof h)throw e;throw new h(`Failed to fetch nonce: ${A(e)}`)}}))},ft=function(e,t){return a(this,void 0,void 0,(function*(){try{const n=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/client-user/verify`,{method:"POST",headers:{"Content-Type":"application/json","x-client-id":this.clientId},body:JSON.stringify({message:e,signature:t,walletAddress:this.walletAddress})}),i=yield n.json(),a=i.data.split(".")[1],s=JSON.parse(atob(a));return{success:!i.isError,userId:s.id,token:i.data}}catch(e){throw new h(`Failed to verify signature: ${A(e)}`)}}))},vt=function(e,t,i){return n.createSiweMessage({domain:t||(s(this,ut,"f")?"localhost":window.location.host),address:this.walletAddress,statement:R,uri:i||(s(this,ut,"f")?"http://localhost":window.location.origin),version:"1",chainId:this.environment.CHAIN.id,nonce:e})},exports.Auth=
977
1048
  /**
978
1049
  * The Auth class.
979
1050
  * @class
@@ -989,13 +1060,13 @@ class{
989
1060
  * @param {StorageAdapter} [options.storage] Custom storage adapter. Defaults to localStorage in browser, memory storage in Node.js.
990
1061
  * @throws {APIError} - Throws an error if the clientId is not provided.
991
1062
  */
992
- constructor({clientId:e,appId:t,redirectUri:n,environment:i="DEVELOPMENT",baseParentId:a,storage:o}){if(et.add(this),tt.set(this,void 0),nt.set(this,void 0),it.set(this,void 0),at.set(this,void 0),!e)throw new T("clientId is required");
1063
+ constructor({clientId:e,appId:t,redirectUri:n,environment:i="DEVELOPMENT",baseParentId:a,storage:o}){if(dt.add(this),pt.set(this,void 0),ut.set(this,void 0),lt.set(this,void 0),yt.set(this,void 0),!e)throw new T("clientId is required");
993
1064
  // if (!appId) {
994
1065
  // throw new ValidationError("appId is required");
995
1066
  // }
996
- if(-1===["PRODUCTION","DEVELOPMENT"].indexOf(i))throw new T(`Invalid environment "${i}". Must be "DEVELOPMENT" or "PRODUCTION"`);r(this,nt,"undefined"==typeof window,"f"),r(this,at,o||(s(this,nt,"f")?new y:new l),"f"),this.viem=null,this.environment=U[i],this.baseParentId=a,this.redirectUri=(e=>{const t=["twitter","spotify"];return"object"==typeof e?t.reduce(((t,n)=>(t[n]=e[n]||("undefined"!=typeof window?window.location.href:""),t)),{}):"string"==typeof e?t.reduce(((t,n)=>(t[n]=e,t)),{}):e?{}:t.reduce(((e,t)=>(e[t]="undefined"!=typeof window?window.location.href:"",e)),{})})(n),this.clientId=e,this.appId=t,this.isAuthenticated=!1,this.jwt=null,this.origin=null,this.walletAddress=null,this.userId=null,r(this,tt,{},"f"),
1067
+ if(-1===["PRODUCTION","DEVELOPMENT"].indexOf(i))throw new T(`Invalid environment "${i}". Must be "DEVELOPMENT" or "PRODUCTION"`);r(this,ut,"undefined"==typeof window,"f"),r(this,yt,o||(s(this,ut,"f")?new y:new l),"f"),this.viem=null,this.environment=$[i],this.baseParentId=a,this.redirectUri=(e=>{const t=["twitter","spotify"];return"object"==typeof e?t.reduce(((t,n)=>(t[n]=e[n]||("undefined"!=typeof window?window.location.href:""),t)),{}):"string"==typeof e?t.reduce(((t,n)=>(t[n]=e,t)),{}):e?{}:t.reduce(((e,t)=>(e[t]="undefined"!=typeof window?window.location.href:"",e)),{})})(n),this.clientId=e,this.appId=t,this.isAuthenticated=!1,this.jwt=null,this.origin=null,this.walletAddress=null,this.userId=null,r(this,pt,{},"f"),
997
1068
  // only subscribe to providers in browser environment
998
- s(this,nt,"f")||V((e=>{s(this,et,"m",st).call(this,"providers",e)})),s(this,et,"m",rt).call(this)}
1069
+ s(this,ut,"f")||V((e=>{s(this,dt,"m",ct).call(this,"providers",e)})),s(this,dt,"m",mt).call(this)}
999
1070
  /**
1000
1071
  * Subscribe to an event. Possible events are "state", "provider", "providers", and "viem".
1001
1072
  * @param {("state"|"provider"|"providers"|"viem")} event The event.
@@ -1005,26 +1076,26 @@ s(this,nt,"f")||V((e=>{s(this,et,"m",st).call(this,"providers",e)})),s(this,et,"
1005
1076
  * auth.on("state", (state) => {
1006
1077
  * console.log(state);
1007
1078
  * });
1008
- */on(e,t){s(this,tt,"f")[e]||(s(this,tt,"f")[e]=[]),s(this,tt,"f")[e].push(t),"providers"===e&&t(H())}
1079
+ */on(e,t){s(this,pt,"f")[e]||(s(this,pt,"f")[e]=[]),s(this,pt,"f")[e].push(t),"providers"===e&&t(j())}
1009
1080
  /**
1010
1081
  * Unsubscribe from an event. Possible events are "state", "provider", "providers", and "viem".
1011
1082
  * @param {("state"|"provider"|"providers"|"viem")} event The event.
1012
1083
  * @param {function} callback The callback function.
1013
1084
  * @returns {void}
1014
- */off(e,t){s(this,tt,"f")[e]&&(s(this,tt,"f")[e]=s(this,tt,"f")[e].filter((e=>e!==t)))}
1085
+ */off(e,t){s(this,pt,"f")[e]&&(s(this,pt,"f")[e]=s(this,pt,"f")[e].filter((e=>e!==t)))}
1015
1086
  /**
1016
1087
  * Set the loading state.
1017
1088
  * @param {boolean} loading The loading state.
1018
1089
  * @returns {void}
1019
- */setLoading(e){s(this,et,"m",st).call(this,"state",e?"loading":this.isAuthenticated?"authenticated":"unauthenticated")}
1090
+ */setLoading(e){s(this,dt,"m",ct).call(this,"state",e?"loading":this.isAuthenticated?"authenticated":"unauthenticated")}
1020
1091
  /**
1021
1092
  * Set the provider. This is useful for setting the provider when the user selects a provider from the UI or when dApp wishes to use a specific provider.
1022
1093
  * @param {object} options The options object. Includes the provider and the provider info.
1023
1094
  * @returns {void}
1024
1095
  * @throws {APIError} - Throws an error if the provider is not provided.
1025
- */setProvider({provider:n,info:i,address:a}){if(!n)throw new h("provider is required");this.viem=((n,i="window.ethereum",a,s)=>{var r,o;if(!n&&!I)return console.warn("Provider is required to create a client."),null;const p=a||c;if(!I||I.transport.name!==i&&n||s!==(null===(r=I.account)||void 0===r?void 0:r.address)&&n||(null==g?void 0:g.id)!==p.id){const a={chain:p,transport:e.custom(n,{name:i})};s&&(a.account=t.toAccount(s)),I=e.createWalletClient(a),g=p,b&&(null===(o=b.chain)||void 0===o?void 0:o.id)!==p.id&&(b=null)}return I})(n,i.name,this.environment.CHAIN,a),this.origin&&this.origin.setViemClient(this.viem),
1096
+ */setProvider({provider:n,info:i,address:a}){if(!n)throw new h("provider is required");this.viem=((n,i="window.ethereum",a,s)=>{var r,o;if(!n&&!I)return console.warn("Provider is required to create a client."),null;const d=a||c;if(!I||I.transport.name!==i&&n||s!==(null===(r=I.account)||void 0===r?void 0:r.address)&&n||(null==b?void 0:b.id)!==d.id){const a={chain:d,transport:e.custom(n,{name:i})};s&&(a.account=t.toAccount(s)),I=e.createWalletClient(a),b=d,g&&(null===(o=g.chain)||void 0===o?void 0:o.id)!==d.id&&(g=null)}return I})(n,i.name,this.environment.CHAIN,a),this.origin&&this.origin.setViemClient(this.viem),
1026
1097
  // TODO: only use one of these
1027
- s(this,et,"m",st).call(this,"viem",this.viem),s(this,et,"m",st).call(this,"provider",{provider:n,info:i}),s(this,at,"f").setItem("camp-sdk:provider",JSON.stringify(i))}
1098
+ s(this,dt,"m",ct).call(this,"viem",this.viem),s(this,dt,"m",ct).call(this,"provider",{provider:n,info:i}),s(this,yt,"f").setItem("camp-sdk:provider",JSON.stringify(i))}
1028
1099
  /**
1029
1100
  * Set the wallet address. This is useful for edge cases where the provider can't return the wallet address. Don't use this unless you know what you're doing.
1030
1101
  * @param {string} walletAddress The wallet address.
@@ -1033,7 +1104,7 @@ s(this,et,"m",st).call(this,"viem",this.viem),s(this,et,"m",st).call(this,"provi
1033
1104
  /**
1034
1105
  * Recover the provider from local storage.
1035
1106
  * @returns {Promise<void>}
1036
- */recoverProvider(){return a(this,void 0,void 0,(function*(){var e,t,n,i,a,r,o,p,d,u,l,y,c;if(!this.walletAddress)return void console.warn("No wallet address found in local storage. Please connect your wallet again.");const m=yield s(this,at,"f").getItem("camp-sdk:provider");if(!m)return;const h=JSON.parse(m);let T;const f=null!==(e=H())&&void 0!==e?e:[];
1107
+ */recoverProvider(){return a(this,void 0,void 0,(function*(){var e,t,n,i,a,r,o,d,p,u,l,y,c;if(!this.walletAddress)return void console.warn("No wallet address found in local storage. Please connect your wallet again.");const m=yield s(this,yt,"f").getItem("camp-sdk:provider");if(!m)return;const h=JSON.parse(m);let T;const f=null!==(e=j())&&void 0!==e?e:[];
1037
1108
  // first pass: try to find provider by UUID/name and check if it has the right address
1038
1109
  // without prompting (using eth_accounts)
1039
1110
  for(const e of f)try{if(h.uuid&&(null===(t=e.info)||void 0===t?void 0:t.uuid)===h.uuid||h.name&&(null===(n=e.info)||void 0===n?void 0:n.name)===h.name){
@@ -1043,19 +1114,19 @@ const t=yield e.provider.request({method:"eth_accounts"});if(t.length>0&&(null==
1043
1114
  // but still avoid prompting
1044
1115
  if(!T)for(const e of f)try{
1045
1116
  // skip providers we already checked in the first pass
1046
- if(h.uuid&&(null===(r=e.info)||void 0===r?void 0:r.uuid)===h.uuid||h.name&&(null===(o=e.info)||void 0===o?void 0:o.name)===h.name)continue;const t=yield e.provider.request({method:"eth_accounts"});if(t.length>0&&(null===(p=t[0])||void 0===p?void 0:p.toLowerCase())===(null===(d=this.walletAddress)||void 0===d?void 0:d.toLowerCase())){T=e;break}}catch(e){console.warn("Failed to fetch accounts from provider:",e)}
1117
+ if(h.uuid&&(null===(r=e.info)||void 0===r?void 0:r.uuid)===h.uuid||h.name&&(null===(o=e.info)||void 0===o?void 0:o.name)===h.name)continue;const t=yield e.provider.request({method:"eth_accounts"});if(t.length>0&&(null===(d=t[0])||void 0===d?void 0:d.toLowerCase())===(null===(p=this.walletAddress)||void 0===p?void 0:p.toLowerCase())){T=e;break}}catch(e){console.warn("Failed to fetch accounts from provider:",e)}
1047
1118
  // third pass: if still no provider found and we have UUID/name info,
1048
1119
  // try prompting the user (only for the stored provider)
1049
1120
  if(!T&&(h.uuid||h.name))for(const e of f)try{if(h.uuid&&(null===(u=e.info)||void 0===u?void 0:u.uuid)===h.uuid||h.name&&(null===(l=e.info)||void 0===l?void 0:l.name)===h.name){const t=yield e.provider.request({method:"eth_requestAccounts"});if(t.length>0&&(null===(y=t[0])||void 0===y?void 0:y.toLowerCase())===(null===(c=this.walletAddress)||void 0===c?void 0:c.toLowerCase())){T=e;break}}}catch(e){console.warn("Failed to reconnect to stored provider:",e)}T?this.setProvider({provider:T.provider,info:T.info||{name:"Unknown"},address:this.walletAddress}):console.warn("No matching provider found for the stored wallet address. Please connect your wallet again.")}))}
1050
1121
  /**
1051
1122
  * Disconnect the user.
1052
1123
  * @returns {Promise<void>}
1053
- */disconnect(){return a(this,void 0,void 0,(function*(){this.isAuthenticated&&(s(this,et,"m",st).call(this,"state","unauthenticated"),this.isAuthenticated=!1,this.walletAddress=null,this.userId=null,this.jwt=null,this.origin=null,r(this,it,void 0,"f"),yield s(this,at,"f").removeItem("camp-sdk:wallet-address"),yield s(this,at,"f").removeItem("camp-sdk:user-id"),yield s(this,at,"f").removeItem("camp-sdk:jwt"),yield s(this,at,"f").removeItem("camp-sdk:environment"))}))}
1124
+ */disconnect(){return a(this,void 0,void 0,(function*(){this.isAuthenticated&&(s(this,dt,"m",ct).call(this,"state","unauthenticated"),this.isAuthenticated=!1,this.walletAddress=null,this.userId=null,this.jwt=null,this.origin=null,r(this,lt,void 0,"f"),yield s(this,yt,"f").removeItem("camp-sdk:wallet-address"),yield s(this,yt,"f").removeItem("camp-sdk:user-id"),yield s(this,yt,"f").removeItem("camp-sdk:jwt"),yield s(this,yt,"f").removeItem("camp-sdk:environment"))}))}
1054
1125
  /**
1055
1126
  * Connect the user's wallet and sign the message.
1056
1127
  * @returns {Promise<{ success: boolean; message: string; walletAddress: string }>} A promise that resolves with the authentication result.
1057
1128
  * @throws {APIError} - Throws an error if the user cannot be authenticated.
1058
- */connect(){return a(this,void 0,void 0,(function*(){s(this,et,"m",st).call(this,"state","loading");try{this.walletAddress||(yield s(this,et,"m",ot).call(this)),this.walletAddress=e.checksumAddress(this.walletAddress);const t=yield s(this,et,"m",pt).call(this),n=s(this,et,"m",ut).call(this,t),i=yield this.viem.signMessage({account:this.walletAddress,message:n}),a=yield s(this,et,"m",dt).call(this,n,i);if(a.success)return this.isAuthenticated=!0,this.userId=a.userId,this.jwt=a.token,this.origin=new lt(this.environment,this.jwt,this.viem,this.baseParentId,this.appId),yield s(this,at,"f").setItem("camp-sdk:jwt",this.jwt),yield s(this,at,"f").setItem("camp-sdk:wallet-address",this.walletAddress),yield s(this,at,"f").setItem("camp-sdk:user-id",this.userId),yield s(this,at,"f").setItem("camp-sdk:environment",this.environment.NAME),s(this,et,"m",st).call(this,"state","authenticated"),{success:!0,message:"Successfully authenticated",walletAddress:this.walletAddress};throw this.isAuthenticated=!1,s(this,et,"m",st).call(this,"state","unauthenticated"),new h("Failed to authenticate: signature verification failed")}catch(e){if(this.isAuthenticated=!1,s(this,et,"m",st).call(this,"state","unauthenticated"),e instanceof h||e instanceof v)throw e;throw new h(`Failed to authenticate: ${A(e)}`)}}))}
1129
+ */connect(){return a(this,void 0,void 0,(function*(){s(this,dt,"m",ct).call(this,"state","loading");try{this.walletAddress||(yield s(this,dt,"m",ht).call(this)),this.walletAddress=e.checksumAddress(this.walletAddress);const t=yield s(this,dt,"m",Tt).call(this),n=s(this,dt,"m",vt).call(this,t),i=yield this.viem.signMessage({account:this.walletAddress,message:n}),a=yield s(this,dt,"m",ft).call(this,n,i);if(a.success)return this.isAuthenticated=!0,this.userId=a.userId,this.jwt=a.token,this.origin=new wt(this.environment,this.jwt,this.viem,this.baseParentId,this.appId),yield s(this,yt,"f").setItem("camp-sdk:jwt",this.jwt),yield s(this,yt,"f").setItem("camp-sdk:wallet-address",this.walletAddress),yield s(this,yt,"f").setItem("camp-sdk:user-id",this.userId),yield s(this,yt,"f").setItem("camp-sdk:environment",this.environment.NAME),s(this,dt,"m",ct).call(this,"state","authenticated"),{success:!0,message:"Successfully authenticated",walletAddress:this.walletAddress};throw this.isAuthenticated=!1,s(this,dt,"m",ct).call(this,"state","unauthenticated"),new h("Failed to authenticate: signature verification failed")}catch(e){if(this.isAuthenticated=!1,s(this,dt,"m",ct).call(this,"state","unauthenticated"),e instanceof h||e instanceof v)throw e;throw new h(`Failed to authenticate: ${A(e)}`)}}))}
1059
1130
  /**
1060
1131
  * Connect with a custom signer (for Node.js or custom wallet implementations).
1061
1132
  * This method bypasses browser wallet interactions and uses the provided signer directly.
@@ -1074,9 +1145,9 @@ if(!T&&(h.uuid||h.name))for(const e of f)try{if(h.uuid&&(null===(u=e.info)||void
1074
1145
  * const account = privateKeyToAccount('0x...');
1075
1146
  * const client = createWalletClient({ account, chain: mainnet, transport: http() });
1076
1147
  * await auth.connectWithSigner(client);
1077
- */connectWithSigner(t,n){return a(this,void 0,void 0,(function*(){s(this,et,"m",st).call(this,"state","loading");try{r(this,it,u(t),"f"),this.walletAddress=e.checksumAddress(yield s(this,it,"f").getAddress()),
1148
+ */connectWithSigner(t,n){return a(this,void 0,void 0,(function*(){s(this,dt,"m",ct).call(this,"state","loading");try{r(this,lt,u(t),"f"),this.walletAddress=e.checksumAddress(yield s(this,lt,"f").getAddress()),
1078
1149
  // store the signer as viem client if it's a viem client, otherwise keep adapter
1079
- "viem"===s(this,it,"f").type&&(this.viem=t);const i=yield s(this,et,"m",pt).call(this),a=s(this,et,"m",ut).call(this,i,null==n?void 0:n.domain,null==n?void 0:n.uri),o=yield s(this,it,"f").signMessage(a),p=yield s(this,et,"m",dt).call(this,a,o);if(p.success)return this.isAuthenticated=!0,this.userId=p.userId,this.jwt=p.token,this.origin=new lt(this.environment,this.jwt,this.viem,this.baseParentId,this.appId),yield s(this,at,"f").setItem("camp-sdk:jwt",this.jwt),yield s(this,at,"f").setItem("camp-sdk:wallet-address",this.walletAddress),yield s(this,at,"f").setItem("camp-sdk:user-id",this.userId),yield s(this,at,"f").setItem("camp-sdk:environment",this.environment.NAME),s(this,et,"m",st).call(this,"state","authenticated"),{success:!0,message:"Successfully authenticated",walletAddress:this.walletAddress};throw this.isAuthenticated=!1,s(this,et,"m",st).call(this,"state","unauthenticated"),new h("Failed to authenticate: signature verification failed")}catch(e){if(this.isAuthenticated=!1,r(this,it,void 0,"f"),s(this,et,"m",st).call(this,"state","unauthenticated"),e instanceof h||e instanceof v)throw e;throw new h(`Failed to authenticate: ${A(e)}`)}}))}
1150
+ "viem"===s(this,lt,"f").type&&(this.viem=t);const i=yield s(this,dt,"m",Tt).call(this),a=s(this,dt,"m",vt).call(this,i,null==n?void 0:n.domain,null==n?void 0:n.uri),o=yield s(this,lt,"f").signMessage(a),d=yield s(this,dt,"m",ft).call(this,a,o);if(d.success)return this.isAuthenticated=!0,this.userId=d.userId,this.jwt=d.token,this.origin=new wt(this.environment,this.jwt,this.viem,this.baseParentId,this.appId),yield s(this,yt,"f").setItem("camp-sdk:jwt",this.jwt),yield s(this,yt,"f").setItem("camp-sdk:wallet-address",this.walletAddress),yield s(this,yt,"f").setItem("camp-sdk:user-id",this.userId),yield s(this,yt,"f").setItem("camp-sdk:environment",this.environment.NAME),s(this,dt,"m",ct).call(this,"state","authenticated"),{success:!0,message:"Successfully authenticated",walletAddress:this.walletAddress};throw this.isAuthenticated=!1,s(this,dt,"m",ct).call(this,"state","unauthenticated"),new h("Failed to authenticate: signature verification failed")}catch(e){if(this.isAuthenticated=!1,r(this,lt,void 0,"f"),s(this,dt,"m",ct).call(this,"state","unauthenticated"),e instanceof h||e instanceof v)throw e;throw new h(`Failed to authenticate: ${A(e)}`)}}))}
1080
1151
  /**
1081
1152
  * Get the user's linked social accounts.
1082
1153
  * @returns {Promise<Record<string, boolean>>} A promise that resolves with the user's linked social accounts.
@@ -1090,17 +1161,17 @@ if(!T&&(h.uuid||h.name))for(const e of f)try{if(h.uuid&&(null===(u=e.info)||void
1090
1161
  * Link the user's Twitter account.
1091
1162
  * @returns {Promise<void>}
1092
1163
  * @throws {Error} - Throws an error if the user is not authenticated or in Node.js environment.
1093
- */linkTwitter(){return a(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new f("User must be authenticated to link Twitter account");if(s(this,nt,"f"))throw new h("Cannot link Twitter: OAuth flow requires a browser environment");window.location.href=`${this.environment.AUTH_HUB_BASE_API}/twitter/connect?clientId=${this.clientId}&userId=${this.userId}&redirect_url=${this.redirectUri.twitter}`}))}
1164
+ */linkTwitter(){return a(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new f("User must be authenticated to link Twitter account");if(s(this,ut,"f"))throw new h("Cannot link Twitter: OAuth flow requires a browser environment");window.location.href=`${this.environment.AUTH_HUB_BASE_API}/twitter/connect?clientId=${this.clientId}&userId=${this.userId}&redirect_url=${this.redirectUri.twitter}`}))}
1094
1165
  /**
1095
1166
  * Link the user's Discord account.
1096
1167
  * @returns {Promise<void>}
1097
1168
  * @throws {Error} - Throws an error if the user is not authenticated or in Node.js environment.
1098
- */linkDiscord(){return a(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new f("User must be authenticated to link Discord account");if(s(this,nt,"f"))throw new h("Cannot link Discord: OAuth flow requires a browser environment");window.location.href=`${this.environment.AUTH_HUB_BASE_API}/discord/connect?clientId=${this.clientId}&userId=${this.userId}&redirect_url=${this.redirectUri.discord}`}))}
1169
+ */linkDiscord(){return a(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new f("User must be authenticated to link Discord account");if(s(this,ut,"f"))throw new h("Cannot link Discord: OAuth flow requires a browser environment");window.location.href=`${this.environment.AUTH_HUB_BASE_API}/discord/connect?clientId=${this.clientId}&userId=${this.userId}&redirect_url=${this.redirectUri.discord}`}))}
1099
1170
  /**
1100
1171
  * Link the user's Spotify account.
1101
1172
  * @returns {Promise<void>}
1102
1173
  * @throws {Error} - Throws an error if the user is not authenticated or in Node.js environment.
1103
- */linkSpotify(){return a(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new f("User must be authenticated to link Spotify account");if(s(this,nt,"f"))throw new h("Cannot link Spotify: OAuth flow requires a browser environment");window.location.href=`${this.environment.AUTH_HUB_BASE_API}/spotify/connect?clientId=${this.clientId}&userId=${this.userId}&redirect_url=${this.redirectUri.spotify}`}))}
1174
+ */linkSpotify(){return a(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new f("User must be authenticated to link Spotify account");if(s(this,ut,"f"))throw new h("Cannot link Spotify: OAuth flow requires a browser environment");window.location.href=`${this.environment.AUTH_HUB_BASE_API}/spotify/connect?clientId=${this.clientId}&userId=${this.userId}&redirect_url=${this.redirectUri.spotify}`}))}
1104
1175
  /**
1105
1176
  * Link the user's TikTok account.
1106
1177
  * @param {string} handle The user's TikTok handle.
@@ -1150,7 +1221,7 @@ if(!T&&(h.uuid||h.name))for(const e of f)try{if(h.uuid&&(null===(u=e.info)||void
1150
1221
  * @returns {Promise<any>} A promise that resolves with the unlink result.
1151
1222
  * @throws {Error} - Throws an error if the user is not authenticated.
1152
1223
  * @throws {APIError} - Throws an error if the request fails.
1153
- */unlinkTelegram(){return a(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new f("User must be authenticated to unlink Telegram account");const e=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/telegram/disconnect-sdk`,{method:"POST",redirect:"follow",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"},body:JSON.stringify({userId:this.userId})}).then((e=>e.json()));if(e.isError)throw new h(e.message||"Failed to unlink Telegram account");return e.data}))}},exports.BrowserStorage=l,exports.CustomSignerAdapter=d,exports.EthersSignerAdapter=p,exports.MemoryStorage=y,exports.Origin=lt,exports.ViemSignerAdapter=o,exports.campMainnet=m,exports.campTestnet=c,exports.createLicenseTerms=(e,t,n,i,a=exports.LicenseType.DURATION_BASED)=>{if(n<B||n>F)throw new Error(`Royalty basis points must be between ${B} and ${F}`);if(a===exports.LicenseType.DURATION_BASED){if(t<M||t>N)throw new Error(`Duration must be between ${M} and ${N} seconds for DURATION_BASED licenses`)}else if((a===exports.LicenseType.SINGLE_PAYMENT||a===exports.LicenseType.X402)&&t>0)throw new Error(`Duration must be 0 for ${exports.LicenseType[a]} licenses`);if(e<O)throw new Error(`Price must be at least ${O} wei`);return{price:e,duration:t,royaltyBps:n,paymentToken:i,licenseType:a}},exports.createNodeWalletClient=function(t,n,i){return e.createWalletClient({account:t,chain:n,transport:e.http(i)})},exports.createSignerAdapter=u,exports.decodeCidFromBytes32=function(e){const t=Buffer.from(e.slice(2),"hex");if(32!==t.length)throw new Error("Invalid bytes32: expected 32-byte digest");
1224
+ */unlinkTelegram(){return a(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new f("User must be authenticated to unlink Telegram account");const e=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/telegram/disconnect-sdk`,{method:"POST",redirect:"follow",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"},body:JSON.stringify({userId:this.userId})}).then((e=>e.json()));if(e.isError)throw new h(e.message||"Failed to unlink Telegram account");return e.data}))}},exports.BrowserStorage=l,exports.CustomSignerAdapter=p,exports.EthersSignerAdapter=d,exports.MemoryStorage=y,exports.Origin=wt,exports.ViemSignerAdapter=o,exports.campMainnet=m,exports.campTestnet=c,exports.createLicenseTerms=(e,t,n,i,a=exports.LicenseType.DURATION_BASED)=>{if(n<O||n>U)throw new Error(`Royalty basis points must be between ${O} and ${U}`);if(a===exports.LicenseType.DURATION_BASED){if(t<B||t>M)throw new Error(`Duration must be between ${B} and ${M} seconds for DURATION_BASED licenses`)}else if((a===exports.LicenseType.SINGLE_PAYMENT||a===exports.LicenseType.X402)&&t>0)throw new Error(`Duration must be 0 for ${exports.LicenseType[a]} licenses`);if(e<F)throw new Error(`Price must be at least ${F} wei`);return{price:e,duration:t,royaltyBps:n,paymentToken:i,licenseType:a}},exports.createNodeWalletClient=function(t,n,i){return e.createWalletClient({account:t,chain:n,transport:e.http(i)})},exports.createSignerAdapter=u,exports.decodeCidFromBytes32=function(e){const t=Buffer.from(e.slice(2),"hex");if(32!==t.length)throw new Error("Invalid bytes32: expected 32-byte digest");
1154
1225
  // Build CIDv1: version (0x01) + raw codec (0x55) + sha2-256 (0x12) + length (0x20) + digest
1155
1226
  const n=new Uint8Array(36);
1156
1227
  // Encode with base32 and add 'b' multibase prefix
@@ -1158,4 +1229,4 @@ return n[0]=1,// CIDv1
1158
1229
  n[1]=85,// raw codec (used by Pinata for raw data uploads like JSON)
1159
1230
  n[2]=18,// sha2-256 hash function
1160
1231
  n[3]=32,// 32 byte length
1161
- n.set(t,4),"b"+function(e){let t="",n=0,i=0;for(const a of e)for(i=i<<8|a,n+=8;n>=5;)n-=5,t+=pe[i>>n&31];return n>0&&(t+=pe[i<<5-n&31]),t}(n)},exports.encodeCidToBytes32=de;
1232
+ n.set(t,4),"b"+function(e){let t="",n=0,i=0;for(const a of e)for(i=i<<8|a,n+=8;n>=5;)n-=5,t+=pe[i>>n&31];return n>0&&(t+=pe[i<<5-n&31]),t}(n)},exports.encodeCidToBytes32=ue;