@campnetwork/origin 1.2.6-0 → 1.2.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 +54 -54
- package/dist/core.d.ts +0 -1
- package/dist/core.esm.d.ts +0 -1
- package/dist/core.esm.js +66 -66
- package/dist/react/index.esm.d.ts +0 -1
- package/dist/react/index.esm.js +1 -113
- package/package.json +1 -1
package/dist/core.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{createWalletClient as e,http as t,custom as n,createPublicClient as i,encodeFunctionData as
|
|
1
|
+
import{createWalletClient as e,http as t,custom as n,createPublicClient as i,encodeFunctionData as r,checksumAddress as a,zeroAddress as s,keccak256 as o,toBytes as d,erc20Abi as u,getAbiItem as p,formatEther as l,formatUnits as y}from"viem";import{toAccount as c}from"viem/accounts";import{createSiweMessage as m}from"viem/siwe";import h from"axios";
|
|
2
2
|
/******************************************************************************
|
|
3
3
|
Copyright (c) Microsoft Corporation.
|
|
4
4
|
|
|
@@ -13,7 +13,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
|
13
13
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
14
|
PERFORMANCE OF THIS SOFTWARE.
|
|
15
15
|
***************************************************************************** */
|
|
16
|
-
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */function f(e,t,n,i){return new(n||(n=Promise))((function(a
|
|
16
|
+
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */function f(e,t,n,i){return new(n||(n=Promise))((function(r,a){function s(e){try{d(i.next(e))}catch(e){a(e)}}function o(e){try{d(i.throw(e))}catch(e){a(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,o)}d((i=i.apply(e,t||[])).next())}))}function T(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 v(e,t,n,i,r){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!r)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?r.call(e,n):r?r.value=n:t.set(e,n),n}"function"==typeof SuppressedError&&SuppressedError;
|
|
17
17
|
/**
|
|
18
18
|
* Adapter for viem WalletClient
|
|
19
19
|
*/
|
|
@@ -55,9 +55,9 @@ e._isSigner||e.provider&&"function"==typeof e.signMessage?new g(e):new A(e)}
|
|
|
55
55
|
* @param chain The chain to use
|
|
56
56
|
* @param rpcUrl Optional RPC URL (defaults to chain's default RPC)
|
|
57
57
|
* @returns WalletClient
|
|
58
|
-
*/function C(n,i,
|
|
58
|
+
*/function C(n,i,r){return e({account:n,chain:i,transport:t(r)})}const k={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/"}}},P={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 _ 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}}}
|
|
59
59
|
// @ts-ignore
|
|
60
|
-
let x=null,S=null,N=null;const M=e=>{var n;const a=N||_;return S&&(null===(n=S.chain)||void 0===n?void 0:n.id)===a.id||(S=i({chain:a,transport:t()})),S};var D=[{type:"function",name:"UPGRADE_INTERFACE_VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"approve",inputs:[{name:"to",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"balanceOf",inputs:[{name:"owner",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"dataStatus",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"uint8",internalType:"enum IIpNFT.DataStatus"}],stateMutability:"view"},{type:"function",name:"disputeModule",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"erc6551Account",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IERC6551Account"}],stateMutability:"view"},{type:"function",name:"erc6551Registry",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IERC6551Registry"}],stateMutability:"view"},{type:"function",name:"finalizeDelete",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getAccount",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"account",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"getApproved",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getTerms",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"tuple",internalType:"struct IIpNFT.LicenseTerms",components:[{name:"price",type:"uint128",internalType:"uint128"},{name:"duration",type:"uint32",internalType:"uint32"},{name:"royaltyBps",type:"uint16",internalType:"uint16"},{name:"paymentToken",type:"address",internalType:"address"}]}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[{name:"name_",type:"string",internalType:"string"},{name:"symbol_",type:"string",internalType:"string"},{name:"maxTermDuration_",type:"uint256",internalType:"uint256"},{name:"signer_",type:"address",internalType:"address"},{name:"wCAMP_",type:"address",internalType:"address"},{name:"minTermDuration_",type:"uint256",internalType:"uint256"},{name:"minPrice_",type:"uint256",internalType:"uint256"},{name:"maxRoyaltyBps_",type:"uint256",internalType:"uint256"},{name:"registry_",type:"address",internalType:"contract IERC6551Registry"},{name:"implementation_",type:"address",internalType:"contract IERC6551Account"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"isApprovedForAll",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"operator",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"markDisputed",inputs:[{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"marketPlace",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IMarketplace"}],stateMutability:"view"},{type:"function",name:"maxRoyaltyBps",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"maxTermDuration",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"minPrice",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"minTermDuration",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"mintWithSignature",inputs:[{name:"to",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"},{name:"creatorContentHash",type:"bytes32",internalType:"bytes32"},{name:"uri",type:"string",internalType:"string"},{name:"licenseTerms",type:"tuple",internalType:"struct IIpNFT.LicenseTerms",components:[{name:"price",type:"uint128",internalType:"uint128"},{name:"duration",type:"uint32",internalType:"uint32"},{name:"royaltyBps",type:"uint16",internalType:"uint16"},{name:"paymentToken",type:"address",internalType:"address"}]},{name:"deadline",type:"uint256",internalType:"uint256"},{name:"parents",type:"uint256[]",internalType:"uint256[]"},{name:"isIP",type:"bool",internalType:"bool"},{name:"signature",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"name",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownerOf",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"pause",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"paused",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"proxiableUUID",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"safeTransferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"safeTransferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setApprovalForAll",inputs:[{name:"operator",type:"address",internalType:"address"},{name:"approved",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setDisputeModule",inputs:[{name:"_disputeModule",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setMarketPlace",inputs:[{name:"_marketPlace",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setSigner",inputs:[{name:"_signer",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"signer",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"symbol",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"tokenInfo",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"tuple",internalType:"struct IIpNFT.TokenInfo",components:[{name:"tokenURI",type:"string",internalType:"string"},{name:"isIP",type:"bool",internalType:"bool"},{name:"contentHash",type:"bytes32",internalType:"bytes32"},{name:"terms",type:"tuple",internalType:"struct IIpNFT.LicenseTerms",components:[{name:"price",type:"uint128",internalType:"uint128"},{name:"duration",type:"uint32",internalType:"uint32"},{name:"royaltyBps",type:"uint16",internalType:"uint16"},{name:"paymentToken",type:"address",internalType:"address"}]},{name:"status",type:"uint8",internalType:"enum IIpNFT.DataStatus"}]}],stateMutability:"view"},{type:"function",name:"tokenURI",inputs:[{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"transferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"unpause",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"updateTerms",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"},{name:"newTerms",type:"tuple",internalType:"struct IIpNFT.LicenseTerms",components:[{name:"price",type:"uint128",internalType:"uint128"},{name:"duration",type:"uint32",internalType:"uint32"},{name:"royaltyBps",type:"uint16",internalType:"uint16"},{name:"paymentToken",type:"address",internalType:"address"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"upgradeToAndCall",inputs:[{name:"newImplementation",type:"address",internalType:"address"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"wCAMP",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"event",name:"AccessPurchased",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"buyer",type:"address",indexed:!0,internalType:"address"},{name:"periods",type:"uint32",indexed:!1,internalType:"uint32"},{name:"newExpiry",type:"uint256",indexed:!1,internalType:"uint256"},{name:"amountPaid",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"AgentRegistered",inputs:[{name:"agentId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"ipNftId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"agentAddress",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"approved",type:"address",indexed:!0,internalType:"address"},{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"ApprovalForAll",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"operator",type:"address",indexed:!0,internalType:"address"},{name:"approved",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"ChildIpTagged",inputs:[{name:"id",type:"uint256",indexed:!0,internalType:"uint256"},{name:"childIp",type:"uint256",indexed:!0,internalType:"uint256"},{name:"parentIp",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"DataDeleted",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"creator",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"DataMinted",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"creator",type:"address",indexed:!0,internalType:"address"},{name:"contentHash",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"parents",type:"uint256[]",indexed:!1,internalType:"uint256[]"}],anonymous:!1},{type:"event",name:"DisputeAssertion",inputs:[{name:"id",type:"uint256",indexed:!0,internalType:"uint256"},{name:"counterEvidenceHash",type:"bytes32",indexed:!1,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"DisputeCancelled",inputs:[{name:"id",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"DisputeJudged",inputs:[{name:"id",type:"uint256",indexed:!0,internalType:"uint256"},{name:"judgement",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"DisputeModuleUpdated",inputs:[{name:"disputeModule",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"DisputeRaised",inputs:[{name:"id",type:"uint256",indexed:!0,internalType:"uint256"},{name:"initiator",type:"address",indexed:!0,internalType:"address"},{name:"targetId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"disputeTag",type:"bytes32",indexed:!1,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"Initialized",inputs:[{name:"version",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"MarketPlaceUpdated",inputs:[{name:"marketPlace",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Paused",inputs:[{name:"account",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"RoyaltyPaid",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"royaltyAmount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"creator",type:"address",indexed:!1,internalType:"address"},{name:"protocolAmount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"SignerUpdated",inputs:[{name:"signer",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"StatusUpdated",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"status",type:"uint8",indexed:!1,internalType:"enum IIpNFT.DataStatus"}],anonymous:!1},{type:"event",name:"TermsUpdated",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"newPrice",type:"uint128",indexed:!1,internalType:"uint128"},{name:"newDuration",type:"uint32",indexed:!1,internalType:"uint32"},{name:"newRoyaltyBps",type:"uint16",indexed:!1,internalType:"uint16"},{name:"paymentToken",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Unpaused",inputs:[{name:"account",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"Upgraded",inputs:[{name:"implementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AddressEmptyCode",inputs:[{name:"target",type:"address",internalType:"address"}]},{type:"error",name:"ERC1967InvalidImplementation",inputs:[{name:"implementation",type:"address",internalType:"address"}]},{type:"error",name:"ERC1967NonPayable",inputs:[]},{type:"error",name:"ERC721IncorrectOwner",inputs:[{name:"sender",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"},{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"ERC721InsufficientApproval",inputs:[{name:"operator",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"ERC721InvalidApprover",inputs:[{name:"approver",type:"address",internalType:"address"}]},{type:"error",name:"ERC721InvalidOperator",inputs:[{name:"operator",type:"address",internalType:"address"}]},{type:"error",name:"ERC721InvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"ERC721InvalidReceiver",inputs:[{name:"receiver",type:"address",internalType:"address"}]},{type:"error",name:"ERC721InvalidSender",inputs:[{name:"sender",type:"address",internalType:"address"}]},{type:"error",name:"ERC721NonexistentToken",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"EnforcedPause",inputs:[]},{type:"error",name:"ExpectedPause",inputs:[]},{type:"error",name:"FailedCall",inputs:[]},{type:"error",name:"InvalidDeadline",inputs:[]},{type:"error",name:"InvalidDuration",inputs:[]},{type:"error",name:"InvalidInitialization",inputs:[]},{type:"error",name:"InvalidPaymentToken",inputs:[]},{type:"error",name:"InvalidPrice",inputs:[]},{type:"error",name:"InvalidRoyalty",inputs:[]},{type:"error",name:"InvalidSignature",inputs:[]},{type:"error",name:"NotInitializing",inputs:[]},{type:"error",name:"NotTokenOwner",inputs:[]},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"TokenAlreadyExists",inputs:[]},{type:"error",name:"UUPSUnauthorizedCallContext",inputs:[]},{type:"error",name:"UUPSUnsupportedProxiableUUID",inputs:[{name:"slot",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"Unauthorized",inputs:[]}],R=[{type:"function",name:"MAX_PARENTS",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"UPGRADE_INTERFACE_VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"buyAccess",inputs:[{name:"buyer",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"},{name:"expectedPrice",type:"uint256",internalType:"uint256"},{name:"expectedDuration",type:"uint32",internalType:"uint32"},{name:"expectedPaymentToken",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"hasParentIp",inputs:[{name:"ipId",type:"uint256",internalType:"uint256"},{name:"parent",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[{name:"dataNFT_",type:"address",internalType:"address"},{name:"protocolFeeBps_",type:"uint16",internalType:"uint16"},{name:"treasury_",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"ipToken",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IIpNFT"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"parentRoyaltyPercent",inputs:[{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"uint16",internalType:"uint16"}],stateMutability:"view"},{type:"function",name:"pause",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"paused",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"protocolFeeBps",inputs:[],outputs:[{name:"",type:"uint16",internalType:"uint16"}],stateMutability:"view"},{type:"function",name:"proxiableUUID",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"royaltyStack",inputs:[{name:"",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"uint16",internalType:"uint16"}],stateMutability:"view"},{type:"function",name:"setParentIpsAndRoyaltyPercents",inputs:[{name:"childIpId",type:"uint256",internalType:"uint256"},{name:"parents",type:"uint256[]",internalType:"uint256[]"},{name:"creator",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"subscriptionExpiry",inputs:[{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"treasury",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"unpause",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"updateProtocolFee",inputs:[{name:"newFeeBps",type:"uint16",internalType:"uint16"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"updateTreasury",inputs:[{name:"newTreasury",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"upgradeToAndCall",inputs:[{name:"newImplementation",type:"address",internalType:"address"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"event",name:"AccessPurchased",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"buyer",type:"address",indexed:!0,internalType:"address"},{name:"periods",type:"uint32",indexed:!1,internalType:"uint32"},{name:"newExpiry",type:"uint256",indexed:!1,internalType:"uint256"},{name:"amountPaid",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"AgentRegistered",inputs:[{name:"agentId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"ipNftId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"agentAddress",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"ChildIpTagged",inputs:[{name:"id",type:"uint256",indexed:!0,internalType:"uint256"},{name:"childIp",type:"uint256",indexed:!0,internalType:"uint256"},{name:"parentIp",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"DataDeleted",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"creator",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"DataMinted",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"creator",type:"address",indexed:!0,internalType:"address"},{name:"contentHash",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"parents",type:"uint256[]",indexed:!1,internalType:"uint256[]"}],anonymous:!1},{type:"event",name:"DisputeAssertion",inputs:[{name:"id",type:"uint256",indexed:!0,internalType:"uint256"},{name:"counterEvidenceHash",type:"bytes32",indexed:!1,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"DisputeCancelled",inputs:[{name:"id",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"DisputeJudged",inputs:[{name:"id",type:"uint256",indexed:!0,internalType:"uint256"},{name:"judgement",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"DisputeModuleUpdated",inputs:[{name:"disputeModule",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"DisputeRaised",inputs:[{name:"id",type:"uint256",indexed:!0,internalType:"uint256"},{name:"initiator",type:"address",indexed:!0,internalType:"address"},{name:"targetId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"disputeTag",type:"bytes32",indexed:!1,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"Initialized",inputs:[{name:"version",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"MarketPlaceUpdated",inputs:[{name:"marketPlace",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Paused",inputs:[{name:"account",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"RoyaltyPaid",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"royaltyAmount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"creator",type:"address",indexed:!1,internalType:"address"},{name:"protocolAmount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"SignerUpdated",inputs:[{name:"signer",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"StatusUpdated",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"status",type:"uint8",indexed:!1,internalType:"enum IIpNFT.DataStatus"}],anonymous:!1},{type:"event",name:"TermsUpdated",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"newPrice",type:"uint128",indexed:!1,internalType:"uint128"},{name:"newDuration",type:"uint32",indexed:!1,internalType:"uint32"},{name:"newRoyaltyBps",type:"uint16",indexed:!1,internalType:"uint16"},{name:"paymentToken",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"Unpaused",inputs:[{name:"account",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"Upgraded",inputs:[{name:"implementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AddressEmptyCode",inputs:[{name:"target",type:"address",internalType:"address"}]},{type:"error",name:"ERC1967InvalidImplementation",inputs:[{name:"implementation",type:"address",internalType:"address"}]},{type:"error",name:"ERC1967NonPayable",inputs:[]},{type:"error",name:"EnforcedPause",inputs:[]},{type:"error",name:"ExpectedPause",inputs:[]},{type:"error",name:"FailedCall",inputs:[]},{type:"error",name:"InvalidInitialization",inputs:[]},{type:"error",name:"InvalidParentIp",inputs:[]},{type:"error",name:"InvalidPayment",inputs:[]},{type:"error",name:"InvalidRoyalty",inputs:[]},{type:"error",name:"MaxParentsExceeded",inputs:[]},{type:"error",name:"MaxRoyaltyExceeded",inputs:[]},{type:"error",name:"NoSubscriptionFound",inputs:[]},{type:"error",name:"NotInitializing",inputs:[]},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"ParentAlreadyExists",inputs:[]},{type:"error",name:"ParentIpAlreadyDeleted",inputs:[]},{type:"error",name:"ParentIpAlreadyDisputed",inputs:[]},{type:"error",name:"SubscriptionNotAllowed",inputs:[]},{type:"error",name:"TermsMismatch",inputs:[]},{type:"error",name:"UUPSUnauthorizedCallContext",inputs:[]},{type:"error",name:"UUPSUnsupportedProxiableUUID",inputs:[{name:"slot",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"Unauthorized",inputs:[]},{type:"error",name:"ZeroAddress",inputs:[]}],O=[{type:"constructor",inputs:[{name:"_owner",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"receive",stateMutability:"payable"},{type:"function",name:"claimRoyalty",inputs:[{name:"token",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]}],U=[{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"}],F="Connect with Camp Network",B=2628e3,$=86400,H=1e15,j=1,L=1e4;const z={DEVELOPMENT:{NAME:"DEVELOPMENT",AUTH_HUB_BASE_API:"https://wv2h4to5qa.execute-api.us-east-2.amazonaws.com/dev",AUTH_ENDPOINT:"auth-testnet",ORIGIN_DASHBOARD:"https://origin.campnetwork.xyz",DATANFT_CONTRACT_ADDRESS:"0xB53F5723Dd4E46da32e1769Bd36A5aD880e707A5",MARKETPLACE_CONTRACT_ADDRESS:"0x97b0A18B2888e904940fFd19E480a28aeec3F055",CHAIN:_,IPNFT_ABI:D,MARKETPLACE_ABI:R,ROYALTY_VAULT_ABI:O,TBA_ABI:U},PRODUCTION:{NAME:"PRODUCTION",AUTH_HUB_BASE_API:"https://wv2h4to5qa.execute-api.us-east-2.amazonaws.com/dev",AUTH_ENDPOINT:"auth-mainnet",ORIGIN_DASHBOARD:"https://origin.campnetwork.xyz",DATANFT_CONTRACT_ADDRESS:"0x39EeE1C3989f0dD543Dee60f8582F7F81F522C38",MARKETPLACE_CONTRACT_ADDRESS:"0xc69BAa987757d054455fC0f2d9797684E9FB8b9C",CHAIN:k,IPNFT_ABI:D,MARKETPLACE_ABI:R,ROYALTY_VAULT_ABI:O,TBA_ABI:U}};let q=[];const W=()=>q,J=e=>{function t(t){q.some((e=>e.info.uuid===t.detail.info.uuid))||(q=[...q,t.detail],e(q))}if("undefined"!=typeof window)return window.addEventListener("eip6963:announceProvider",t),window.dispatchEvent(new Event("eip6963:requestProvider")),()=>window.removeEventListener("eip6963:announceProvider",t)};
|
|
60
|
+
let S=null,N=null,x=null;const M=e=>{var n;const r=x||k;return N&&(null===(n=N.chain)||void 0===n?void 0:n.id)===r.id||(N=i({chain:r,transport:t()})),N};var D=[{type:"function",name:"UPGRADE_INTERFACE_VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"approve",inputs:[{name:"to",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"balanceOf",inputs:[{name:"owner",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"dataStatus",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"uint8",internalType:"enum IIpNFT.DataStatus"}],stateMutability:"view"},{type:"function",name:"disputeModule",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"erc6551Account",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IERC6551Account"}],stateMutability:"view"},{type:"function",name:"erc6551Registry",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IERC6551Registry"}],stateMutability:"view"},{type:"function",name:"finalizeDelete",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getAccount",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"account",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"getApproved",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getTerms",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"tuple",internalType:"struct IIpNFT.LicenseTerms",components:[{name:"price",type:"uint128",internalType:"uint128"},{name:"duration",type:"uint32",internalType:"uint32"},{name:"royaltyBps",type:"uint16",internalType:"uint16"},{name:"paymentToken",type:"address",internalType:"address"}]}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[{name:"name_",type:"string",internalType:"string"},{name:"symbol_",type:"string",internalType:"string"},{name:"maxTermDuration_",type:"uint256",internalType:"uint256"},{name:"signer_",type:"address",internalType:"address"},{name:"wCAMP_",type:"address",internalType:"address"},{name:"minTermDuration_",type:"uint256",internalType:"uint256"},{name:"minPrice_",type:"uint256",internalType:"uint256"},{name:"maxRoyaltyBps_",type:"uint256",internalType:"uint256"},{name:"registry_",type:"address",internalType:"contract IERC6551Registry"},{name:"implementation_",type:"address",internalType:"contract IERC6551Account"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"isApprovedForAll",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"operator",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"markDisputed",inputs:[{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"marketPlace",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IMarketplace"}],stateMutability:"view"},{type:"function",name:"maxRoyaltyBps",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"maxTermDuration",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"minPrice",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"minTermDuration",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"mintWithSignature",inputs:[{name:"to",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"},{name:"creatorContentHash",type:"bytes32",internalType:"bytes32"},{name:"uri",type:"string",internalType:"string"},{name:"licenseTerms",type:"tuple",internalType:"struct IIpNFT.LicenseTerms",components:[{name:"price",type:"uint128",internalType:"uint128"},{name:"duration",type:"uint32",internalType:"uint32"},{name:"royaltyBps",type:"uint16",internalType:"uint16"},{name:"paymentToken",type:"address",internalType:"address"}]},{name:"deadline",type:"uint256",internalType:"uint256"},{name:"parents",type:"uint256[]",internalType:"uint256[]"},{name:"isIP",type:"bool",internalType:"bool"},{name:"signature",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"name",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownerOf",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"pause",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"paused",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"proxiableUUID",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"safeTransferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"safeTransferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setApprovalForAll",inputs:[{name:"operator",type:"address",internalType:"address"},{name:"approved",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setDisputeModule",inputs:[{name:"_disputeModule",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setMarketPlace",inputs:[{name:"_marketPlace",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setSigner",inputs:[{name:"_signer",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"signer",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"symbol",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"tokenInfo",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"tuple",internalType:"struct IIpNFT.TokenInfo",components:[{name:"tokenURI",type:"string",internalType:"string"},{name:"isIP",type:"bool",internalType:"bool"},{name:"contentHash",type:"bytes32",internalType:"bytes32"},{name:"terms",type:"tuple",internalType:"struct IIpNFT.LicenseTerms",components:[{name:"price",type:"uint128",internalType:"uint128"},{name:"duration",type:"uint32",internalType:"uint32"},{name:"royaltyBps",type:"uint16",internalType:"uint16"},{name:"paymentToken",type:"address",internalType:"address"}]},{name:"status",type:"uint8",internalType:"enum IIpNFT.DataStatus"}]}],stateMutability:"view"},{type:"function",name:"tokenURI",inputs:[{name:"_tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"transferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"unpause",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"updateTerms",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"},{name:"newTerms",type:"tuple",internalType:"struct IIpNFT.LicenseTerms",components:[{name:"price",type:"uint128",internalType:"uint128"},{name:"duration",type:"uint32",internalType:"uint32"},{name:"royaltyBps",type:"uint16",internalType:"uint16"},{name:"paymentToken",type:"address",internalType:"address"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"upgradeToAndCall",inputs:[{name:"newImplementation",type:"address",internalType:"address"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"wCAMP",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"event",name:"AccessPurchased",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"buyer",type:"address",indexed:!0,internalType:"address"},{name:"periods",type:"uint32",indexed:!1,internalType:"uint32"},{name:"newExpiry",type:"uint256",indexed:!1,internalType:"uint256"},{name:"amountPaid",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"AgentRegistered",inputs:[{name:"agentId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"ipNftId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"agentAddress",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"approved",type:"address",indexed:!0,internalType:"address"},{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"ApprovalForAll",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"operator",type:"address",indexed:!0,internalType:"address"},{name:"approved",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"ChildIpTagged",inputs:[{name:"id",type:"uint256",indexed:!0,internalType:"uint256"},{name:"childIp",type:"uint256",indexed:!0,internalType:"uint256"},{name:"parentIp",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"DataDeleted",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"creator",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"DataMinted",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"creator",type:"address",indexed:!0,internalType:"address"},{name:"contentHash",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"parents",type:"uint256[]",indexed:!1,internalType:"uint256[]"}],anonymous:!1},{type:"event",name:"DisputeAssertion",inputs:[{name:"id",type:"uint256",indexed:!0,internalType:"uint256"},{name:"counterEvidenceHash",type:"bytes32",indexed:!1,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"DisputeCancelled",inputs:[{name:"id",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"DisputeJudged",inputs:[{name:"id",type:"uint256",indexed:!0,internalType:"uint256"},{name:"judgement",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"DisputeModuleUpdated",inputs:[{name:"disputeModule",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"DisputeRaised",inputs:[{name:"id",type:"uint256",indexed:!0,internalType:"uint256"},{name:"initiator",type:"address",indexed:!0,internalType:"address"},{name:"targetId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"disputeTag",type:"bytes32",indexed:!1,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"Initialized",inputs:[{name:"version",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"MarketPlaceUpdated",inputs:[{name:"marketPlace",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Paused",inputs:[{name:"account",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"RoyaltyPaid",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"royaltyAmount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"creator",type:"address",indexed:!1,internalType:"address"},{name:"protocolAmount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"SignerUpdated",inputs:[{name:"signer",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"StatusUpdated",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"status",type:"uint8",indexed:!1,internalType:"enum IIpNFT.DataStatus"}],anonymous:!1},{type:"event",name:"TermsUpdated",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"newPrice",type:"uint128",indexed:!1,internalType:"uint128"},{name:"newDuration",type:"uint32",indexed:!1,internalType:"uint32"},{name:"newRoyaltyBps",type:"uint16",indexed:!1,internalType:"uint16"},{name:"paymentToken",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Unpaused",inputs:[{name:"account",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"Upgraded",inputs:[{name:"implementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AddressEmptyCode",inputs:[{name:"target",type:"address",internalType:"address"}]},{type:"error",name:"ERC1967InvalidImplementation",inputs:[{name:"implementation",type:"address",internalType:"address"}]},{type:"error",name:"ERC1967NonPayable",inputs:[]},{type:"error",name:"ERC721IncorrectOwner",inputs:[{name:"sender",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"},{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"ERC721InsufficientApproval",inputs:[{name:"operator",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"ERC721InvalidApprover",inputs:[{name:"approver",type:"address",internalType:"address"}]},{type:"error",name:"ERC721InvalidOperator",inputs:[{name:"operator",type:"address",internalType:"address"}]},{type:"error",name:"ERC721InvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"ERC721InvalidReceiver",inputs:[{name:"receiver",type:"address",internalType:"address"}]},{type:"error",name:"ERC721InvalidSender",inputs:[{name:"sender",type:"address",internalType:"address"}]},{type:"error",name:"ERC721NonexistentToken",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"EnforcedPause",inputs:[]},{type:"error",name:"ExpectedPause",inputs:[]},{type:"error",name:"FailedCall",inputs:[]},{type:"error",name:"InvalidDeadline",inputs:[]},{type:"error",name:"InvalidDuration",inputs:[]},{type:"error",name:"InvalidInitialization",inputs:[]},{type:"error",name:"InvalidPaymentToken",inputs:[]},{type:"error",name:"InvalidPrice",inputs:[]},{type:"error",name:"InvalidRoyalty",inputs:[]},{type:"error",name:"InvalidSignature",inputs:[]},{type:"error",name:"NotInitializing",inputs:[]},{type:"error",name:"NotTokenOwner",inputs:[]},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"TokenAlreadyExists",inputs:[]},{type:"error",name:"UUPSUnauthorizedCallContext",inputs:[]},{type:"error",name:"UUPSUnsupportedProxiableUUID",inputs:[{name:"slot",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"Unauthorized",inputs:[]}],F=[{type:"function",name:"MAX_PARENTS",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"UPGRADE_INTERFACE_VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"buyAccess",inputs:[{name:"buyer",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"},{name:"expectedPrice",type:"uint256",internalType:"uint256"},{name:"expectedDuration",type:"uint32",internalType:"uint32"},{name:"expectedPaymentToken",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"hasParentIp",inputs:[{name:"ipId",type:"uint256",internalType:"uint256"},{name:"parent",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[{name:"dataNFT_",type:"address",internalType:"address"},{name:"protocolFeeBps_",type:"uint16",internalType:"uint16"},{name:"treasury_",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"ipToken",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IIpNFT"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"parentRoyaltyPercent",inputs:[{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"uint16",internalType:"uint16"}],stateMutability:"view"},{type:"function",name:"pause",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"paused",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"protocolFeeBps",inputs:[],outputs:[{name:"",type:"uint16",internalType:"uint16"}],stateMutability:"view"},{type:"function",name:"proxiableUUID",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"royaltyStack",inputs:[{name:"",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"uint16",internalType:"uint16"}],stateMutability:"view"},{type:"function",name:"setParentIpsAndRoyaltyPercents",inputs:[{name:"childIpId",type:"uint256",internalType:"uint256"},{name:"parents",type:"uint256[]",internalType:"uint256[]"},{name:"creator",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"subscriptionExpiry",inputs:[{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"treasury",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"unpause",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"updateProtocolFee",inputs:[{name:"newFeeBps",type:"uint16",internalType:"uint16"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"updateTreasury",inputs:[{name:"newTreasury",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"upgradeToAndCall",inputs:[{name:"newImplementation",type:"address",internalType:"address"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"event",name:"AccessPurchased",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"buyer",type:"address",indexed:!0,internalType:"address"},{name:"periods",type:"uint32",indexed:!1,internalType:"uint32"},{name:"newExpiry",type:"uint256",indexed:!1,internalType:"uint256"},{name:"amountPaid",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"AgentRegistered",inputs:[{name:"agentId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"ipNftId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"agentAddress",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"ChildIpTagged",inputs:[{name:"id",type:"uint256",indexed:!0,internalType:"uint256"},{name:"childIp",type:"uint256",indexed:!0,internalType:"uint256"},{name:"parentIp",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"DataDeleted",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"creator",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"DataMinted",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"creator",type:"address",indexed:!0,internalType:"address"},{name:"contentHash",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"parents",type:"uint256[]",indexed:!1,internalType:"uint256[]"}],anonymous:!1},{type:"event",name:"DisputeAssertion",inputs:[{name:"id",type:"uint256",indexed:!0,internalType:"uint256"},{name:"counterEvidenceHash",type:"bytes32",indexed:!1,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"DisputeCancelled",inputs:[{name:"id",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"DisputeJudged",inputs:[{name:"id",type:"uint256",indexed:!0,internalType:"uint256"},{name:"judgement",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"DisputeModuleUpdated",inputs:[{name:"disputeModule",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"DisputeRaised",inputs:[{name:"id",type:"uint256",indexed:!0,internalType:"uint256"},{name:"initiator",type:"address",indexed:!0,internalType:"address"},{name:"targetId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"disputeTag",type:"bytes32",indexed:!1,internalType:"bytes32"}],anonymous:!1},{type:"event",name:"Initialized",inputs:[{name:"version",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"MarketPlaceUpdated",inputs:[{name:"marketPlace",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Paused",inputs:[{name:"account",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"RoyaltyPaid",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"royaltyAmount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"creator",type:"address",indexed:!1,internalType:"address"},{name:"protocolAmount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"SignerUpdated",inputs:[{name:"signer",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"StatusUpdated",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"status",type:"uint8",indexed:!1,internalType:"enum IIpNFT.DataStatus"}],anonymous:!1},{type:"event",name:"TermsUpdated",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"newPrice",type:"uint128",indexed:!1,internalType:"uint128"},{name:"newDuration",type:"uint32",indexed:!1,internalType:"uint32"},{name:"newRoyaltyBps",type:"uint16",indexed:!1,internalType:"uint16"},{name:"paymentToken",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"Unpaused",inputs:[{name:"account",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"Upgraded",inputs:[{name:"implementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AddressEmptyCode",inputs:[{name:"target",type:"address",internalType:"address"}]},{type:"error",name:"ERC1967InvalidImplementation",inputs:[{name:"implementation",type:"address",internalType:"address"}]},{type:"error",name:"ERC1967NonPayable",inputs:[]},{type:"error",name:"EnforcedPause",inputs:[]},{type:"error",name:"ExpectedPause",inputs:[]},{type:"error",name:"FailedCall",inputs:[]},{type:"error",name:"InvalidInitialization",inputs:[]},{type:"error",name:"InvalidParentIp",inputs:[]},{type:"error",name:"InvalidPayment",inputs:[]},{type:"error",name:"InvalidRoyalty",inputs:[]},{type:"error",name:"MaxParentsExceeded",inputs:[]},{type:"error",name:"MaxRoyaltyExceeded",inputs:[]},{type:"error",name:"NoSubscriptionFound",inputs:[]},{type:"error",name:"NotInitializing",inputs:[]},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"ParentAlreadyExists",inputs:[]},{type:"error",name:"ParentIpAlreadyDeleted",inputs:[]},{type:"error",name:"ParentIpAlreadyDisputed",inputs:[]},{type:"error",name:"SubscriptionNotAllowed",inputs:[]},{type:"error",name:"TermsMismatch",inputs:[]},{type:"error",name:"UUPSUnauthorizedCallContext",inputs:[]},{type:"error",name:"UUPSUnsupportedProxiableUUID",inputs:[{name:"slot",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"Unauthorized",inputs:[]},{type:"error",name:"ZeroAddress",inputs:[]}],R=[{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"}],U="Connect with Camp Network",O=2628e3,B=86400,$=1e15,H=1,j=1e4;const L={DEVELOPMENT:{NAME:"DEVELOPMENT",AUTH_HUB_BASE_API:"https://wv2h4to5qa.execute-api.us-east-2.amazonaws.com/dev",AUTH_ENDPOINT:"auth-testnet",ORIGIN_DASHBOARD:"https://origin.campnetwork.xyz",DATANFT_CONTRACT_ADDRESS:"0xB53F5723Dd4E46da32e1769Bd36A5aD880e707A5",MARKETPLACE_CONTRACT_ADDRESS:"0x97b0A18B2888e904940fFd19E480a28aeec3F055",CHAIN:k,IPNFT_ABI:D,MARKETPLACE_ABI:F,TBA_ABI:R},PRODUCTION:{NAME:"PRODUCTION",AUTH_HUB_BASE_API:"https://wv2h4to5qa.execute-api.us-east-2.amazonaws.com/dev",AUTH_ENDPOINT:"auth-mainnet",ORIGIN_DASHBOARD:"https://origin.campnetwork.xyz",DATANFT_CONTRACT_ADDRESS:"0x39EeE1C3989f0dD543Dee60f8582F7F81F522C38",MARKETPLACE_CONTRACT_ADDRESS:"0xc69BAa987757d054455fC0f2d9797684E9FB8b9C",CHAIN:P,IPNFT_ABI:D,MARKETPLACE_ABI:F,TBA_ABI:R}};let z=[];const q=()=>z,W=e=>{function t(t){z.some((e=>e.info.uuid===t.detail.info.uuid))||(z=[...z,t.detail],e(z))}if("undefined"!=typeof window)return window.addEventListener("eip6963:announceProvider",t),window.dispatchEvent(new Event("eip6963:requestProvider")),()=>window.removeEventListener("eip6963:announceProvider",t)};
|
|
61
61
|
/**
|
|
62
62
|
* Uploads a file to a specified URL with progress tracking.
|
|
63
63
|
* Falls back to a simple fetch request if XMLHttpRequest is not available.
|
|
@@ -79,7 +79,7 @@ let x=null,S=null,N=null;const M=e=>{var n;const a=N||_;return S&&(null===(n=S.c
|
|
|
79
79
|
* @param signature The signature for the minting operation.
|
|
80
80
|
* @returns A promise that resolves when the minting is complete.
|
|
81
81
|
*/
|
|
82
|
-
function
|
|
82
|
+
function J(e,t,n,i,r,a,s,o,d){return f(this,void 0,void 0,(function*(){return yield this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"mintWithSignature",[e,t,r,a,s,o,n,i,d],{waitForReceipt:!0})}))}
|
|
83
83
|
/**
|
|
84
84
|
* Registers a Data NFT with the Origin service in order to obtain a signature for minting.
|
|
85
85
|
* @param source The source of the Data NFT (e.g., "spotify", "twitter", "tiktok", or "file").
|
|
@@ -89,55 +89,55 @@ function V(e,t,n,i,a,r,s,o,d){return f(this,void 0,void 0,(function*(){return yi
|
|
|
89
89
|
* @param fileKey The file key(s) if the source is "file".
|
|
90
90
|
* @param parents The IDs of the parent NFTs, if applicable.
|
|
91
91
|
* @return A promise that resolves with the registration data.
|
|
92
|
-
*/function
|
|
92
|
+
*/function V(e,t,n,i,r,a){return f(this,void 0,void 0,(function*(){const s={source:e,deadline:Number(t),licenseTerms:{price:n.price.toString(),duration:n.duration,royaltyBps:n.royaltyBps,paymentToken:n.paymentToken},metadata:i,parentId:a?a.map((e=>e.toString())):[]};void 0!==r&&(s.fileKey=r);const o=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/${this.environment.AUTH_ENDPOINT}/origin/register`,{method:"POST",headers:{Authorization:`Bearer ${this.getJwt()}`,"Content-Type":"application/json"},body:JSON.stringify(s)}),d=yield o.json();if(d.isError)throw new Error(`Failed to get signature: ${d.message}`);if(!o.ok)throw new Error(`Failed to get signature: ${o.statusText}`);return d.data}))}
|
|
93
93
|
/**
|
|
94
94
|
* Updates the license terms of a specified IPNFT.
|
|
95
95
|
* @param tokenId The ID of the IPNFT to update.
|
|
96
96
|
* @param newTerms The new license terms to set.
|
|
97
97
|
* @returns A promise that resolves when the transaction is complete.
|
|
98
|
-
*/function
|
|
98
|
+
*/function K(e,t){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"updateTerms",[e,t],{waitForReceipt:!0})}
|
|
99
99
|
/**
|
|
100
100
|
* Sets the IPNFT as deleted
|
|
101
101
|
* @param tokenId The token ID to set as deleted.
|
|
102
102
|
* @returns A promise that resolves when the transaction is complete.
|
|
103
|
-
*/function
|
|
103
|
+
*/function G(e){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"finalizeDelete",[e])}
|
|
104
104
|
/**
|
|
105
105
|
* Calls the getOrCreateRoyaltyVault method on the IPNFT contract.
|
|
106
106
|
* @param tokenOwner The address of the token owner for whom to get or create the royalty vault.
|
|
107
107
|
* @param simulateOnly If true, simulates the transaction without executing it.
|
|
108
108
|
* @returns The address of the royalty vault associated with the specified token owner.
|
|
109
|
-
*/function
|
|
109
|
+
*/function X(e){return f(this,arguments,void 0,(function*(e,t=!1){const n=yield this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"getOrCreateRoyaltyVault",[e],{waitForReceipt:!0,simulate:t});return t?n:n.simulatedResult}))}
|
|
110
110
|
/**
|
|
111
111
|
* Returns the license terms associated with a specific token ID.
|
|
112
112
|
* @param tokenId The token ID to query.
|
|
113
113
|
* @returns The license terms of the token ID.
|
|
114
|
-
*/function
|
|
114
|
+
*/function Y(e){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"getTerms",[e])}
|
|
115
115
|
/**
|
|
116
116
|
* Returns the owner of the specified IPNFT.
|
|
117
117
|
* @param tokenId The ID of the IPNFT to query.
|
|
118
118
|
* @returns The address of the owner of the IPNFT.
|
|
119
|
-
*/function
|
|
119
|
+
*/function Z(e){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"ownerOf",[e])}
|
|
120
120
|
/**
|
|
121
121
|
* Returns the number of IPNFTs owned by the given address.
|
|
122
122
|
* @param owner The address to query.
|
|
123
123
|
* @returns The number of IPNFTs owned by the address.
|
|
124
|
-
*/function
|
|
124
|
+
*/function Q(e){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"balanceOf",[e])}
|
|
125
125
|
/**
|
|
126
126
|
* Returns the metadata URI associated with a specific token ID.
|
|
127
127
|
* @param tokenId The token ID to query.
|
|
128
128
|
* @returns The metadata URI of the token ID.
|
|
129
|
-
*/function
|
|
129
|
+
*/function ee(e){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"tokenURI",[e])}
|
|
130
130
|
/**
|
|
131
131
|
* Returns the data status of the given token ID.
|
|
132
132
|
* @param tokenId The token ID to query.
|
|
133
133
|
* @returns The data status of the token ID.
|
|
134
|
-
*/function
|
|
134
|
+
*/function te(e){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"dataStatus",[e])}
|
|
135
135
|
/**
|
|
136
136
|
* Checks if an operator is approved to manage all assets of a given owner.
|
|
137
137
|
* @param owner The address of the asset owner.
|
|
138
138
|
* @param operator The address of the operator to check.
|
|
139
139
|
* @return A promise that resolves to a boolean indicating if the operator is approved for all assets of the owner.
|
|
140
|
-
*/function
|
|
140
|
+
*/function ne(e,t){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"isApprovedForAll",[e,t])}function ie(e,t,n){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"transferFrom",[e,t,n])}function re(e,t,n,i){const r=i?[e,t,n,i]:[e,t,n];return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"safeTransferFrom",r)}function ae(e,t){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"approve",[e,t])}function se(e,t){return this.callContractMethod(this.environment.DATANFT_CONTRACT_ADDRESS,this.environment.IPNFT_ABI,"setApprovalForAll",[e,t])}
|
|
141
141
|
/**
|
|
142
142
|
* Buys access to a data NFT for a specified duration.
|
|
143
143
|
* @param buyer The address of the buyer.
|
|
@@ -147,13 +147,13 @@ function V(e,t,n,i,a,r,s,o,d){return f(this,void 0,void 0,(function*(){return yi
|
|
|
147
147
|
* @param expectedPaymentToken The address of the payment token (use zero address for native token).
|
|
148
148
|
* @param value The amount of native token to send (only required if paying with native token).
|
|
149
149
|
* @returns A promise that resolves when the transaction is confirmed.
|
|
150
|
-
*/function
|
|
150
|
+
*/function oe(e,t,n,i,r,a){return this.callContractMethod(this.environment.MARKETPLACE_CONTRACT_ADDRESS,this.environment.MARKETPLACE_ABI,"buyAccess",[e,t,n,i,r],{waitForReceipt:!0,value:a})}
|
|
151
151
|
/**
|
|
152
152
|
* Checks if a user has access to a specific token based on subscription expiry.
|
|
153
153
|
* @param user - The address of the user.
|
|
154
154
|
* @param tokenId - The ID of the token.
|
|
155
155
|
* @returns A promise that resolves to a boolean indicating if the user has access.
|
|
156
|
-
*/function
|
|
156
|
+
*/function de(e,t){return f(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 ue(e,t){return this.callContractMethod(this.environment.MARKETPLACE_CONTRACT_ADDRESS,this.environment.MARKETPLACE_ABI,"subscriptionExpiry",[e,t])}
|
|
157
157
|
/**
|
|
158
158
|
* EXPERIMENTAL METHOD
|
|
159
159
|
* Settles a payment intent response by purchasing access if needed.
|
|
@@ -165,13 +165,13 @@ function V(e,t,n,i,a,r,s,o,d){return f(this,void 0,void 0,(function*(){return yi
|
|
|
165
165
|
* @param signer - Optional signer object used to interact with the blockchain. If not provided, uses the connected wallet client.
|
|
166
166
|
* @returns A promise that resolves with the transaction hash and receipt, or null if access already exists.
|
|
167
167
|
* @throws {Error} If the response doesn't contain marketplace action or if the method is not buyAccess.
|
|
168
|
-
*/function
|
|
168
|
+
*/function pe(e,t){return f(this,void 0,void 0,(function*(){if(!e.marketplaceAction)throw new Error("No marketplace action found in X402 response");const{marketplaceAction:n}=e;if("buyAccess"!==n.method)throw new Error(`Unsupported marketplace action method: ${n.method}`);const i=BigInt(n.tokenId),a=n.payer;if(yield this.hasAccess(a,i))return console.log("User already has access to this item"),null;const s=BigInt(n.amount),o=BigInt(n.duration),d=n.asset,u="0x0000000000000000000000000000000000000000"===d,p=u?s:BigInt(0);if(t){const e=I(t),n=this.environment.MARKETPLACE_CONTRACT_ADDRESS,u=this.environment.MARKETPLACE_ABI,l=r({abi:u,functionName:"buyAccess",args:[a,i,s,o,d]});if("viem"===e.type){const t=e.signer,i=yield t.sendTransaction({to:n,data:l,value:p,account:yield e.getAddress()});return{txHash:i,receipt:yield t.waitForTransactionReceipt({hash:i})}}if("ethers"===e.type){const t=e.signer,i=yield t.sendTransaction({to:n,data:l,value:p.toString()}),r=yield i.wait();return{txHash:i.hash,receipt:r}}{const t=e.signer;if("function"!=typeof t.sendTransaction)throw new Error("Custom signer must implement sendTransaction() method");const i=yield t.sendTransaction({to:n,data:l,value:p.toString()});if(i.wait&&"function"==typeof i.wait){const e=yield i.wait();return{txHash:i.hash,receipt:e}}return{txHash:i.hash||i}}}if(!this.viemClient)throw new Error("No signer or wallet client provided for settleX402");return yield this.buyAccess(a,i,s,o,d,u?p:void 0)}))}
|
|
169
169
|
/**
|
|
170
170
|
* Enum representing the status of data in the system.
|
|
171
171
|
* * - ACTIVE: The data is currently active and available.
|
|
172
172
|
* * - PENDING_DELETE: The data is scheduled for deletion but not yet removed.
|
|
173
173
|
* * - DELETED: The data has been deleted and is no longer available.
|
|
174
|
-
*/var
|
|
174
|
+
*/var le;!function(e){e[e.ACTIVE=0]="ACTIVE",e[e.PENDING_DELETE=1]="PENDING_DELETE",e[e.DELETED=2]="DELETED"}(le||(le={}));
|
|
175
175
|
/**
|
|
176
176
|
* Creates license terms for a digital asset.
|
|
177
177
|
* @param price The price of the asset in wei.
|
|
@@ -180,7 +180,7 @@ function V(e,t,n,i,a,r,s,o,d){return f(this,void 0,void 0,(function*(){return yi
|
|
|
180
180
|
* @param paymentToken The address of the payment token (ERC20 / address(0) for native currency).
|
|
181
181
|
* @returns The created license terms.
|
|
182
182
|
*/
|
|
183
|
-
const
|
|
183
|
+
const ye=(e,t,n,i)=>{if(n<H||n>j)throw new Error(`Royalty basis points must be between ${H} and ${j}`);if(t<B||t>O)throw new Error(`Duration must be between ${B} and ${O} seconds`);if(e<$)throw new Error(`Price must be at least ${$} wei`);return{price:e,duration:t,royaltyBps:n,paymentToken:i}},ce={X402Intent:[{name:"payer",type:"address"},{name:"asset",type:"address"},{name:"amount",type:"uint256"},{name:"httpMethod",type:"string"},{name:"payTo",type:"address"},{name:"tokenId",type:"uint256"},{name:"duration",type:"uint32"},{name:"expiresAt",type:"uint256"},{name:"nonce",type:"bytes32"}]},me=(e,t,n)=>f(void 0,void 0,void 0,(function*(){return yield fetch(`${e.environment.AUTH_HUB_BASE_API}/${e.environment.AUTH_ENDPOINT}/origin/data/${t}`,{method:"GET",headers:Object.assign({"Content-Type":"application/json"},n)})}))
|
|
184
184
|
/**
|
|
185
185
|
* EXPERIMENTAL METHOD
|
|
186
186
|
* Fetch data with X402 payment handling.
|
|
@@ -191,9 +191,9 @@ const ce=(e,t,n,i)=>{if(n<j||n>L)throw new Error(`Royalty basis points must be b
|
|
|
191
191
|
*/;
|
|
192
192
|
/**
|
|
193
193
|
* Defines the EIP-712 typed data structure for X402 Intent signatures.
|
|
194
|
-
*/function
|
|
194
|
+
*/function he(e,t,n){return f(this,void 0,void 0,(function*(){var i;const r=this.viemClient;if(!t&&!r)throw new Error("No signer or wallet client provided for X402 intent.");const s=yield me(this,e,{});if(402!==s.status){if(!s.ok)throw new Error("Failed to fetch data");return s.json()}const o=r||I(t),d=r?yield ve.call(this):yield o.getAddress(),u=yield s.json();if(u.error)throw new Error(u.error);const p=u.accepts[0],l=yield fe.call(this,p,a(d),o),y=btoa(JSON.stringify(l)),c=yield me(this,e,{"X-PAYMENT":y});if(402===c.status){
|
|
195
195
|
// subscription required
|
|
196
|
-
if(n){const i=yield c.json();if(yield n(i.marketplaceAction)){const n=yield this.settlePaymentIntent(i,t||
|
|
196
|
+
if(n){const i=yield c.json();if(yield n(i.marketplaceAction)){const n=yield this.settlePaymentIntent(i,t||r);if(n&&!n.txHash)throw new Error(`Failed to settle payment intent for token ID ${e}`);
|
|
197
197
|
// retry fetching data after settlement
|
|
198
198
|
return yield this.getDataWithIntent(e,t,void 0)}
|
|
199
199
|
// user declined to proceed with payment
|
|
@@ -201,15 +201,15 @@ return{error:"User declined to proceed with payment",data:null}}return c.json()}
|
|
|
201
201
|
/**
|
|
202
202
|
* Build the X402 payment payload.
|
|
203
203
|
* @private
|
|
204
|
-
*/function
|
|
204
|
+
*/function fe(e,t,n){return f(this,void 0,void 0,(function*(){const i="native"===e.asset?s:e.asset,r=BigInt(e.maxAmountRequired||0),u=e.extra.duration,p=Te.call(this),l=ce,y=crypto.randomUUID(),c=o(d(y)),m={payer:t,asset:i,amount:r.toString(),httpMethod:"GET",payTo:a(this.environment.MARKETPLACE_CONTRACT_ADDRESS),tokenId:e.extra.tokenId,duration:u,expiresAt:Math.floor(Date.now()/1e3)+e.maxTimeoutSeconds,nonce:c},h=I(n),f=yield h.signTypedData(p,l,m);return{x402Version:1,scheme:"exact",network:e.network,payload:Object.assign(Object.assign({},m),{sigType:"eip712",signature:f,license:{tokenId:e.extra.tokenId,duration:u}})}}))}
|
|
205
205
|
/**
|
|
206
206
|
* Create the X402 Intent domain for EIP-712 signing.
|
|
207
207
|
* @private
|
|
208
|
-
*/function
|
|
208
|
+
*/function Te(){return{name:"Origin X402 Intent",version:"1",chainId:this.environment.CHAIN.id,verifyingContract:this.environment.MARKETPLACE_CONTRACT_ADDRESS}}
|
|
209
209
|
/**
|
|
210
210
|
* Get the current account address.
|
|
211
211
|
* @private
|
|
212
|
-
*/function
|
|
212
|
+
*/function ve(){return f(this,void 0,void 0,(function*(){const e=this.viemClient;if(!e)throw new Error("WalletClient not connected. Please connect a wallet.");
|
|
213
213
|
// If account is already set on the client, return it directly
|
|
214
214
|
if(e.account)return e.account.address;
|
|
215
215
|
// Otherwise request accounts (browser wallet flow)
|
|
@@ -218,15 +218,15 @@ const t=yield e.request({method:"eth_requestAccounts",params:[]});if(!t||0===t.l
|
|
|
218
218
|
* Approves a spender to spend a specified amount of tokens on behalf of the owner.
|
|
219
219
|
* If the current allowance is less than the specified amount, it will perform the approval.
|
|
220
220
|
* @param {ApproveParams} params - The parameters for the approval.
|
|
221
|
-
*/var ge,Ae,Ie,be,Ee,Ce,
|
|
221
|
+
*/var we,ge,Ae,Ie,be,Ee,Ce,ke,Pe,_e,Se,Ne,xe,Me,De,Fe,Re,Ue,Oe,Be;
|
|
222
222
|
/**
|
|
223
223
|
* The Origin class
|
|
224
224
|
* Handles interactions with Origin protocol.
|
|
225
|
-
*/class
|
|
225
|
+
*/class $e{constructor(e,t,n,i){we.add(this),t?this.jwt=t:console.warn("JWT not provided. Some features may be unavailable."),this.viemClient=n,this.environment="string"==typeof e?L[e]:e||L.DEVELOPMENT,this.baseParentId=i,
|
|
226
226
|
// DataNFT methods
|
|
227
|
-
this.mintWithSignature=
|
|
227
|
+
this.mintWithSignature=J.bind(this),this.registerIpNFT=V.bind(this),this.updateTerms=K.bind(this),this.finalizeDelete=G.bind(this),this.getOrCreateRoyaltyVault=X.bind(this),this.getTerms=Y.bind(this),this.ownerOf=Z.bind(this),this.balanceOf=Q.bind(this),this.tokenURI=ee.bind(this),this.dataStatus=te.bind(this),this.isApprovedForAll=ne.bind(this),this.transferFrom=ie.bind(this),this.safeTransferFrom=re.bind(this),this.approve=ae.bind(this),this.setApprovalForAll=se.bind(this),
|
|
228
228
|
// Marketplace methods
|
|
229
|
-
this.buyAccess=
|
|
229
|
+
this.buyAccess=oe.bind(this),this.hasAccess=de.bind(this),this.subscriptionExpiry=ue.bind(this),this.settlePaymentIntent=pe.bind(this),this.getDataWithIntent=he.bind(this)}getJwt(){return this.jwt}setViemClient(e){this.viemClient=e}
|
|
230
230
|
/**
|
|
231
231
|
* Mints a file-based IpNFT.
|
|
232
232
|
* @param file The file to mint.
|
|
@@ -235,16 +235,16 @@ this.buyAccess=de.bind(this),this.hasAccess=ue.bind(this),this.subscriptionExpir
|
|
|
235
235
|
* @param parents Optional parent token IDs for lineage tracking.
|
|
236
236
|
* @param options Optional parameters including progress callback, preview image, and use asset as preview flag.
|
|
237
237
|
* @returns The token ID of the minted IpNFT as a string, or null if minting failed.
|
|
238
|
-
*/mintFile(e,t,n,i,
|
|
239
|
-
let u;this.baseParentId&&(i||(i=[]),i.unshift(this.baseParentId));try{u=yield this.registerIpNFT("file",d,n,t,
|
|
238
|
+
*/mintFile(e,t,n,i,r){return f(this,void 0,void 0,(function*(){let a,s=null;try{s=yield T(this,we,"m",ke).call(this)}catch(e){throw new Error("Failed to mint file IP. Wallet not connected.")}try{if(a=yield T(this,we,"m",be).call(this,e,r),!a||!a.key)throw new Error("Failed to upload file or get upload info.")}catch(e){throw new Error(`File upload failed: ${e instanceof Error?e.message:String(e)}`)}e.type&&(t.mimetype=e.type);let o=null;(null==r?void 0:r.previewImage)&&(null==r?void 0:r.previewImage.type.startsWith("image/"))?o=yield T(this,we,"m",Ie).call(this,r.previewImage):(null==r?void 0:r.useAssetAsPreview)&&e.type.startsWith("image/")&&(o=yield T(this,we,"m",Ie).call(this,e)),o&&(t.image=`ipfs://${o}`);const d=BigInt(Date.now()+6e5);// 10 minutes from now
|
|
239
|
+
let u;this.baseParentId&&(i||(i=[]),i.unshift(this.baseParentId));try{u=yield this.registerIpNFT("file",d,n,t,a.key,i)}catch(e){throw yield T(this,we,"m",Ae).call(this,a.key,"failed"),new Error(`Failed to register IpNFT: ${e instanceof Error?e.message:String(e)}`)}const{tokenId:p,signerAddress:l,creatorContentHash:y,signature:c,uri:m}=u;if(!(p&&l&&y&&void 0!==c&&m))throw new Error("Failed to register IpNFT: Missing required fields in registration response.");try{const e=yield this.mintWithSignature(s,p,i||[],!0,y,m,n,d,c);if(-1===["0x1","success"].indexOf(e.receipt.status))throw yield T(this,we,"m",Ae).call(this,a.key,"failed"),new Error(`Minting failed with status: ${e.receipt.status}`)}catch(e){throw yield T(this,we,"m",Ae).call(this,a.key,"failed"),new Error(`Minting transaction failed: ${e instanceof Error?e.message:String(e)}`)}return p.toString()}))}
|
|
240
240
|
/**
|
|
241
241
|
* Mints a social IpNFT.
|
|
242
242
|
* @param source The social media source (spotify, twitter, tiktok).
|
|
243
243
|
* @param metadata The metadata associated with the social media content.
|
|
244
244
|
* @param license The license terms for the IpNFT.
|
|
245
245
|
* @return The token ID of the minted IpNFT as a string, or null if minting failed.
|
|
246
|
-
*/mintSocial(e,t,n){return f(this,void 0,void 0,(function*(){let i=null;try{i=yield T(this,
|
|
247
|
-
let
|
|
246
|
+
*/mintSocial(e,t,n){return f(this,void 0,void 0,(function*(){let i=null;try{i=yield T(this,we,"m",ke).call(this)}catch(e){throw new Error("Failed to mint social IP. Wallet not connected.")}t.mimetype=`social/${e}`;const r=BigInt(Math.floor(Date.now()/1e3)+600);// 10 minutes from now
|
|
247
|
+
let a,s=this.baseParentId?[this.baseParentId]:[];try{a=yield this.registerIpNFT(e,r,n,t,void 0,s)}catch(e){throw new Error(`Failed to register Social IpNFT: ${e instanceof Error?e.message:String(e)}`)}const{tokenId:o,signerAddress:d,creatorContentHash:u,signature:p,uri:l}=a;if(!(o&&d&&u&&void 0!==p&&l))throw new Error("Failed to register Social IpNFT: Missing required fields in registration response.");try{const e=yield this.mintWithSignature(i,o,s,!0,u,l,n,r,p);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 o.toString()}))}
|
|
248
248
|
/**
|
|
249
249
|
* Call a contract method.
|
|
250
250
|
* @param {string} contractAddress The contract address.
|
|
@@ -254,14 +254,14 @@ let r,s=this.baseParentId?[this.baseParentId]:[];try{r=yield this.registerIpNFT(
|
|
|
254
254
|
* @param {CallOptions} [options] The call options.
|
|
255
255
|
* @returns {Promise<any>} A promise that resolves with the result of the contract call or transaction hash.
|
|
256
256
|
* @throws {Error} - Throws an error if the wallet client is not connected and the method is not a view function.
|
|
257
|
-
*/callContractMethod(e,t,n,i){return f(this,arguments,void 0,(function*(e,t,n,i,
|
|
257
|
+
*/callContractMethod(e,t,n,i){return f(this,arguments,void 0,(function*(e,t,n,i,r={}){var a;let s=null;try{s=yield T(this,we,"m",ke).call(this)}catch(e){throw new Error("Failed to call contract method. Wallet not connected.")}const o=p({abi:t,name:n});if(o&&"stateMutability"in o&&("view"===o.stateMutability||"pure"===o.stateMutability)){const r=M();return(yield r.readContract({address:e,abi:t,functionName:n,args:i}))||null}yield T(this,we,"m",Ce).call(this,this.environment.CHAIN);const d=M(),{result:u,request:l}=yield d.simulateContract({account:s,address:e,abi:t,functionName:n,args:i,value:r.value});
|
|
258
258
|
// simulate
|
|
259
|
-
if(
|
|
259
|
+
if(r.simulate)return u;try{const e=yield null===(a=this.viemClient)||void 0===a?void 0:a.writeContract(l);if("string"!=typeof e)throw new Error("Transaction failed to send.");if(!r.waitForReceipt)return{txHash:e,simulatedResult:u};return{txHash:e,receipt:yield T(this,we,"m",Ee).call(this,e),simulatedResult:u}}catch(e){throw console.error("Transaction failed:",e),new Error("Transaction failed: "+e)}}))}
|
|
260
260
|
/**
|
|
261
261
|
* Buy access to an asset by first checking its price via getTerms, then calling buyAccess.
|
|
262
262
|
* @param {bigint} tokenId The token ID of the asset.
|
|
263
263
|
* @returns {Promise<any>} The result of the buyAccess call.
|
|
264
|
-
*/buyAccessSmart(e){return f(this,void 0,void 0,(function*(){let t=null;try{t=yield T(this,
|
|
264
|
+
*/buyAccessSmart(e){return f(this,void 0,void 0,(function*(){let t=null;try{t=yield T(this,we,"m",ke).call(this)}catch(e){throw new Error("Failed to buy access. Wallet not connected.")}const n=yield this.getTerms(e);if(!n)throw new Error("Failed to fetch terms for asset");const{price:i,paymentToken:r,duration:a}=n;if(void 0===i||void 0===r||void 0===a)throw new Error("Terms missing price, paymentToken, or duration");const o=i;return r===s?this.buyAccess(t,e,o,a,r,o):(yield function(e){return f(this,arguments,void 0,(function*({walletClient:e,publicClient:t,tokenAddress:n,owner:i,spender:r,amount:a}){(yield t.readContract({address:n,abi:u,functionName:"allowance",args:[i,r]}))<a&&(yield e.writeContract({address:n,account:i,abi:u,functionName:"approve",args:[r,a],chain:k}))}))}({walletClient:this.viemClient,publicClient:M(),tokenAddress:r,owner:t,spender:this.environment.MARKETPLACE_CONTRACT_ADDRESS,amount:o}),this.buyAccess(t,e,o,a,r))}))}
|
|
265
265
|
/**
|
|
266
266
|
* Fetch the underlying data associated with a specific token ID.
|
|
267
267
|
* @param {bigint} tokenId - The token ID to fetch data for.
|
|
@@ -293,9 +293,9 @@ if(a.simulate)return u;try{const e=yield null===(r=this.viemClient)||void 0===r?
|
|
|
293
293
|
* // Get ERC20 token royalties for a specific token
|
|
294
294
|
* const royalties = await origin.getRoyalties(1n, "0x1234...");
|
|
295
295
|
* ```
|
|
296
|
-
*/getRoyalties(e,t){return f(this,void 0,void 0,(function*(){try{const n=yield this.getTokenBoundAccount(e),i=M();let a
|
|
296
|
+
*/getRoyalties(e,t){return f(this,void 0,void 0,(function*(){try{const n=yield this.getTokenBoundAccount(e),i=M();let r,a;if(t&&t!==s){
|
|
297
297
|
// erc20 (wrapped camp)
|
|
298
|
-
const e=[{inputs:[{name:"owner",type:"address"}],name:"balanceOf",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],stateMutability:"view",type:"function"}];
|
|
298
|
+
const e=[{inputs:[{name:"owner",type:"address"}],name:"balanceOf",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],stateMutability:"view",type:"function"}];r=yield this.callContractMethod(t,e,"balanceOf",[n]);const i=yield this.callContractMethod(t,e,"decimals",[]);a=y(r,i)}else r=yield i.getBalance({address:n}),a=l(r);return{tokenBoundAccount:n,balance:r,balanceFormatted:a}}catch(t){throw new Error(`Failed to retrieve royalties for token ${e}: ${t instanceof Error?t.message:String(t)}`)}}))}
|
|
299
299
|
/**
|
|
300
300
|
* Claim royalties from a token's Token Bound Account (TBA).
|
|
301
301
|
* @param {bigint} tokenId - The token ID to claim royalties from.
|
|
@@ -311,18 +311,18 @@ const e=[{inputs:[{name:"owner",type:"address"}],name:"balanceOf",outputs:[{name
|
|
|
311
311
|
* // Claim ERC20 token royalties to a specific address
|
|
312
312
|
* await origin.claimRoyalties(1n, "0xRecipient...", "0xToken...");
|
|
313
313
|
* ```
|
|
314
|
-
*/claimRoyalties(e,t,n){return f(this,void 0,void 0,(function*(){const i=yield T(this,
|
|
314
|
+
*/claimRoyalties(e,t,n){return f(this,void 0,void 0,(function*(){const i=yield T(this,we,"m",Pe).call(this,t),a=yield this.getTokenBoundAccount(e),o=(yield this.getRoyalties(e,n)).balance;if(o===BigInt(0))throw new Error("No royalties available to claim");let d,u,p;
|
|
315
315
|
// Call execute on the TBA
|
|
316
316
|
return n&&n!==s?(
|
|
317
317
|
// ERC20 token transfer
|
|
318
318
|
d=n,u=BigInt(0),
|
|
319
319
|
// Encode ERC20 transfer call: transfer(address to, uint256 amount)
|
|
320
|
-
p=
|
|
320
|
+
p=r({abi:[{inputs:[{name:"to",type:"address"},{name:"amount",type:"uint256"}],name:"transfer",outputs:[{name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}],functionName:"transfer",args:[i,o]})):(
|
|
321
321
|
// Native token transfer
|
|
322
|
-
d=i,u=o,p="0x"),this.callContractMethod(
|
|
323
|
-
{waitForReceipt:!0,value:BigInt(0)})}))}}
|
|
322
|
+
d=i,u=o,p="0x"),this.callContractMethod(a,this.environment.TBA_ABI,"execute",[d,u,p,0],// operation: 0 = CALL
|
|
323
|
+
{waitForReceipt:!0,value:BigInt(0)})}))}}we=new WeakSet,ge=function(e){return f(this,void 0,void 0,(function*(){try{const t=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/${this.environment.AUTH_ENDPOINT}/origin/upload-url`,{method:"POST",body:JSON.stringify({name:e.name,type:e.type}),headers:{Authorization:`Bearer ${this.jwt}`,"Content-Type":"application/json"}});if(!t.ok)throw new Error(`HTTP ${t.status}: ${t.statusText}`);const n=yield t.json();if(n.isError)throw new Error(n.message||"Failed to generate upload URL");return n.data}catch(e){throw console.error("Failed to generate upload URL:",e),e}}))},Ae=function(e,t){return f(this,void 0,void 0,(function*(){try{const n=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/${this.environment.AUTH_ENDPOINT}/origin/update-status`,{method:"PATCH",body:JSON.stringify({status:t,fileKey:e}),headers:{Authorization:`Bearer ${this.jwt}`,"Content-Type":"application/json"}});if(!n.ok){const e=yield n.text().catch((()=>"Unknown error"));throw new Error(`HTTP ${n.status}: ${e}`)}return!0}catch(e){throw console.error("Failed to update origin status:",e),e}}))},Ie=function(e){return f(this,void 0,void 0,(function*(){var t;if(!e)return null;try{const n=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/${this.environment.AUTH_ENDPOINT}/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:r,data:a,message:s}=i;if(r||!a)throw new Error(`Failed to get presigned URL: ${s||"No URL returned from server"}`);const o=new FormData;o.append("file",e);const d=yield fetch(a,{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 u=yield d.json();if(!u||!u.data)throw new Error("Invalid response from IPFS upload: Missing data field");return null===(t=u.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}`)}}))},be=function(e,t){return f(this,void 0,void 0,(function*(){let n;try{n=yield T(this,we,"m",ge).call(this,e)}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");try{yield((e,t,n)=>new Promise(((i,r)=>{h.put(t,e,Object.assign({headers:{"Content-Type":e.type}},"undefined"!=typeof window&&"function"==typeof n?{onUploadProgress:e=>{if(e.total){const t=e.loaded/e.total*100;n(t)}}}:{})).then((e=>{i(e.data)})).catch((e=>{var t;const n=(null===(t=null==e?void 0:e.response)||void 0===t?void 0:t.data)||(null==e?void 0:e.message)||"Upload failed";r(n)}))})))(e,n.url,(null==t?void 0:t.progressCallback)||(()=>{}))}catch(e){try{yield T(this,we,"m",Ae).call(this,n.key,"failed")}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 T(this,we,"m",Ae).call(this,n.key,"success")}catch(e){console.error("Failed to update status to success:",e)}return n}))},Ee=function(e){return f(this,arguments,void 0,(function*(e,t={}){var n,i,r;const a=M();let s=e;const o=null!==(n=t.confirmations)&&void 0!==n?n:1,d=null!==(i=t.timeoutMs)&&void 0!==i?i:18e4,u=null!==(r=t.pollingIntervalMs)&&void 0!==r?r:1500;try{return yield a.waitForTransactionReceipt({hash:s,confirmations:o,timeout:d,pollingInterval:u,onReplaced:e=>{s=e.transaction.hash}})}catch(e){
|
|
324
324
|
// fallback
|
|
325
|
-
const t=Date.now();for(;Date.now()-t<d;){try{const e=yield
|
|
325
|
+
const t=Date.now();for(;Date.now()-t<d;){try{const e=yield a.getTransactionReceipt({hash:s});if(e&&e.blockNumber)return e}catch(e){}yield new Promise((e=>setTimeout(e,u)))}throw e}}))},Ce=function(e){return f(this,void 0,void 0,(function*(){if(!this.viemClient)throw new Error("WalletClient not connected. Could not ensure chain ID.");let t=yield this.viemClient.request({method:"eth_chainId",params:[]});if("string"==typeof t&&(t=parseInt(t,16)),t!==e.id){(e=>{x=e,N=null})// reset public client to be recreated with new chain
|
|
326
326
|
(e);try{yield this.viemClient.request({method:"wallet_switchEthereumChain",params:[{chainId:"0x"+BigInt(e.id).toString(16)}]})}catch(t){
|
|
327
327
|
// Unrecognized chain
|
|
328
328
|
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 f(this,void 0,void 0,(function*(){if(!this.viemClient)throw new Error("WalletClient not connected. Please connect a wallet.");
|
|
@@ -335,7 +335,7 @@ const e=yield this.viemClient.request({method:"eth_requestAccounts",params:[]});
|
|
|
335
335
|
* @class
|
|
336
336
|
* @classdesc The Auth class is used to authenticate the user.
|
|
337
337
|
*/
|
|
338
|
-
class
|
|
338
|
+
class He{
|
|
339
339
|
/**
|
|
340
340
|
* Constructor for the Auth class.
|
|
341
341
|
* @param {object} options The options object.
|
|
@@ -345,9 +345,9 @@ class je{
|
|
|
345
345
|
* @param {StorageAdapter} [options.storage] Custom storage adapter. Defaults to localStorage in browser, memory storage in Node.js.
|
|
346
346
|
* @throws {APIError} - Throws an error if the clientId is not provided.
|
|
347
347
|
*/
|
|
348
|
-
constructor({clientId:e,redirectUri:t,environment:n="DEVELOPMENT",baseParentId:i,storage:
|
|
348
|
+
constructor({clientId:e,redirectUri:t,environment:n="DEVELOPMENT",baseParentId:i,storage:r}){if(_e.add(this),Se.set(this,void 0),Ne.set(this,void 0),xe.set(this,void 0),Me.set(this,void 0),!e)throw new Error("clientId is required");if(-1===["PRODUCTION","DEVELOPMENT"].indexOf(n))throw new Error("Invalid environment, must be DEVELOPMENT or PRODUCTION");v(this,Ne,"undefined"==typeof window,"f"),v(this,Me,r||(T(this,Ne,"f")?new E:new b),"f"),this.viem=null,this.environment=L[n],this.baseParentId=i,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)),{})})(t),this.clientId=e,this.isAuthenticated=!1,this.jwt=null,this.origin=null,this.walletAddress=null,this.userId=null,v(this,Se,{},"f"),
|
|
349
349
|
// only subscribe to providers in browser environment
|
|
350
|
-
T(this,Ne,"f")||
|
|
350
|
+
T(this,Ne,"f")||W((e=>{T(this,_e,"m",De).call(this,"providers",e)})),T(this,_e,"m",Fe).call(this)}
|
|
351
351
|
/**
|
|
352
352
|
* Subscribe to an event. Possible events are "state", "provider", "providers", and "viem".
|
|
353
353
|
* @param {("state"|"provider"|"providers"|"viem")} event The event.
|
|
@@ -357,7 +357,7 @@ T(this,Ne,"f")||J((e=>{T(this,xe,"m",Re).call(this,"providers",e)})),T(this,xe,"
|
|
|
357
357
|
* auth.on("state", (state) => {
|
|
358
358
|
* console.log(state);
|
|
359
359
|
* });
|
|
360
|
-
*/on(e,t){T(this,Se,"f")[e]||(T(this,Se,"f")[e]=[]),T(this,Se,"f")[e].push(t),"providers"===e&&t(
|
|
360
|
+
*/on(e,t){T(this,Se,"f")[e]||(T(this,Se,"f")[e]=[]),T(this,Se,"f")[e].push(t),"providers"===e&&t(q())}
|
|
361
361
|
/**
|
|
362
362
|
* Unsubscribe from an event. Possible events are "state", "provider", "providers", and "viem".
|
|
363
363
|
* @param {("state"|"provider"|"providers"|"viem")} event The event.
|
|
@@ -368,15 +368,15 @@ T(this,Ne,"f")||J((e=>{T(this,xe,"m",Re).call(this,"providers",e)})),T(this,xe,"
|
|
|
368
368
|
* Set the loading state.
|
|
369
369
|
* @param {boolean} loading The loading state.
|
|
370
370
|
* @returns {void}
|
|
371
|
-
*/setLoading(e){T(this,
|
|
371
|
+
*/setLoading(e){T(this,_e,"m",De).call(this,"state",e?"loading":this.isAuthenticated?"authenticated":"unauthenticated")}
|
|
372
372
|
/**
|
|
373
373
|
* 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.
|
|
374
374
|
* @param {object} options The options object. Includes the provider and the provider info.
|
|
375
375
|
* @returns {void}
|
|
376
376
|
* @throws {APIError} - Throws an error if the provider is not provided.
|
|
377
|
-
*/setProvider({provider:t,info:i,address:
|
|
377
|
+
*/setProvider({provider:t,info:i,address:r}){if(!t)throw new _("provider is required");this.viem=((t,i="window.ethereum",r,a)=>{var s,o;if(!t&&!S)return console.warn("Provider is required to create a client."),null;const d=r||k;if(!S||S.transport.name!==i&&t||a!==(null===(s=S.account)||void 0===s?void 0:s.address)&&t||(null==x?void 0:x.id)!==d.id){const r={chain:d,transport:n(t,{name:i})};a&&(r.account=c(a)),S=e(r),x=d,N&&(null===(o=N.chain)||void 0===o?void 0:o.id)!==d.id&&(N=null)}return S})(t,i.name,this.environment.CHAIN,r),this.origin&&this.origin.setViemClient(this.viem),
|
|
378
378
|
// TODO: only use one of these
|
|
379
|
-
T(this,
|
|
379
|
+
T(this,_e,"m",De).call(this,"viem",this.viem),T(this,_e,"m",De).call(this,"provider",{provider:t,info:i}),T(this,Me,"f").setItem("camp-sdk:provider",JSON.stringify(i))}
|
|
380
380
|
/**
|
|
381
381
|
* 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.
|
|
382
382
|
* @param {string} walletAddress The wallet address.
|
|
@@ -385,29 +385,29 @@ T(this,xe,"m",Re).call(this,"viem",this.viem),T(this,xe,"m",Re).call(this,"provi
|
|
|
385
385
|
/**
|
|
386
386
|
* Recover the provider from local storage.
|
|
387
387
|
* @returns {Promise<void>}
|
|
388
|
-
*/recoverProvider(){return f(this,void 0,void 0,(function*(){var e,t,n,i,a,
|
|
388
|
+
*/recoverProvider(){return f(this,void 0,void 0,(function*(){var e,t,n,i,r,a,s,o,d,u,p,l,y;if(!this.walletAddress)return void console.warn("No wallet address found in local storage. Please connect your wallet again.");const c=yield T(this,Me,"f").getItem("camp-sdk:provider");if(!c)return;const m=JSON.parse(c);let h;const f=null!==(e=q())&&void 0!==e?e:[];
|
|
389
389
|
// first pass: try to find provider by UUID/name and check if it has the right address
|
|
390
390
|
// without prompting (using eth_accounts)
|
|
391
391
|
for(const e of f)try{if(m.uuid&&(null===(t=e.info)||void 0===t?void 0:t.uuid)===m.uuid||m.name&&(null===(n=e.info)||void 0===n?void 0:n.name)===m.name){
|
|
392
392
|
// silently check if the wallet address matches first
|
|
393
|
-
const t=yield e.provider.request({method:"eth_accounts"});if(t.length>0&&(null===(i=t[0])||void 0===i?void 0:i.toLowerCase())===(null===(
|
|
393
|
+
const t=yield e.provider.request({method:"eth_accounts"});if(t.length>0&&(null===(i=t[0])||void 0===i?void 0:i.toLowerCase())===(null===(r=this.walletAddress)||void 0===r?void 0:r.toLowerCase())){h=e;break}}}catch(e){console.warn("Failed to fetch accounts from provider:",e)}
|
|
394
394
|
// second pass: if no provider found by UUID/name match, try to find by address only
|
|
395
395
|
// but still avoid prompting
|
|
396
396
|
if(!h)for(const e of f)try{
|
|
397
397
|
// skip providers we already checked in the first pass
|
|
398
|
-
if(m.uuid&&(null===(
|
|
398
|
+
if(m.uuid&&(null===(a=e.info)||void 0===a?void 0:a.uuid)===m.uuid||m.name&&(null===(s=e.info)||void 0===s?void 0:s.name)===m.name)continue;const t=yield e.provider.request({method:"eth_accounts"});if(t.length>0&&(null===(o=t[0])||void 0===o?void 0:o.toLowerCase())===(null===(d=this.walletAddress)||void 0===d?void 0:d.toLowerCase())){h=e;break}}catch(e){console.warn("Failed to fetch accounts from provider:",e)}
|
|
399
399
|
// third pass: if still no provider found and we have UUID/name info,
|
|
400
400
|
// try prompting the user (only for the stored provider)
|
|
401
401
|
if(!h&&(m.uuid||m.name))for(const e of f)try{if(m.uuid&&(null===(u=e.info)||void 0===u?void 0:u.uuid)===m.uuid||m.name&&(null===(p=e.info)||void 0===p?void 0:p.name)===m.name){const t=yield e.provider.request({method:"eth_requestAccounts"});if(t.length>0&&(null===(l=t[0])||void 0===l?void 0:l.toLowerCase())===(null===(y=this.walletAddress)||void 0===y?void 0:y.toLowerCase())){h=e;break}}}catch(e){console.warn("Failed to reconnect to stored provider:",e)}h?this.setProvider({provider:h.provider,info:h.info||{name:"Unknown"},address:this.walletAddress}):console.warn("No matching provider found for the stored wallet address. Please connect your wallet again.")}))}
|
|
402
402
|
/**
|
|
403
403
|
* Disconnect the user.
|
|
404
404
|
* @returns {Promise<void>}
|
|
405
|
-
*/disconnect(){return f(this,void 0,void 0,(function*(){this.isAuthenticated&&(T(this,
|
|
405
|
+
*/disconnect(){return f(this,void 0,void 0,(function*(){this.isAuthenticated&&(T(this,_e,"m",De).call(this,"state","unauthenticated"),this.isAuthenticated=!1,this.walletAddress=null,this.userId=null,this.jwt=null,this.origin=null,v(this,xe,void 0,"f"),yield T(this,Me,"f").removeItem("camp-sdk:wallet-address"),yield T(this,Me,"f").removeItem("camp-sdk:user-id"),yield T(this,Me,"f").removeItem("camp-sdk:jwt"),yield T(this,Me,"f").removeItem("camp-sdk:environment"))}))}
|
|
406
406
|
/**
|
|
407
407
|
* Connect the user's wallet and sign the message.
|
|
408
408
|
* @returns {Promise<{ success: boolean; message: string; walletAddress: string }>} A promise that resolves with the authentication result.
|
|
409
409
|
* @throws {APIError} - Throws an error if the user cannot be authenticated.
|
|
410
|
-
*/connect(){return f(this,void 0,void 0,(function*(){T(this,
|
|
410
|
+
*/connect(){return f(this,void 0,void 0,(function*(){T(this,_e,"m",De).call(this,"state","loading");try{this.walletAddress||(yield T(this,_e,"m",Re).call(this)),this.walletAddress=a(this.walletAddress);const e=yield T(this,_e,"m",Ue).call(this),t=T(this,_e,"m",Be).call(this,e),n=yield this.viem.signMessage({account:this.walletAddress,message:t}),i=yield T(this,_e,"m",Oe).call(this,t,n);if(i.success)return this.isAuthenticated=!0,this.userId=i.userId,this.jwt=i.token,this.origin=new $e(this.environment,this.jwt,this.viem,this.baseParentId),yield T(this,Me,"f").setItem("camp-sdk:jwt",this.jwt),yield T(this,Me,"f").setItem("camp-sdk:wallet-address",this.walletAddress),yield T(this,Me,"f").setItem("camp-sdk:user-id",this.userId),yield T(this,Me,"f").setItem("camp-sdk:environment",this.environment.NAME),T(this,_e,"m",De).call(this,"state","authenticated"),{success:!0,message:"Successfully authenticated",walletAddress:this.walletAddress};throw this.isAuthenticated=!1,T(this,_e,"m",De).call(this,"state","unauthenticated"),new _("Failed to authenticate")}catch(e){throw this.isAuthenticated=!1,T(this,_e,"m",De).call(this,"state","unauthenticated"),new _(e)}}))}
|
|
411
411
|
/**
|
|
412
412
|
* Connect with a custom signer (for Node.js or custom wallet implementations).
|
|
413
413
|
* This method bypasses browser wallet interactions and uses the provided signer directly.
|
|
@@ -426,9 +426,9 @@ if(!h&&(m.uuid||m.name))for(const e of f)try{if(m.uuid&&(null===(u=e.info)||void
|
|
|
426
426
|
* const account = privateKeyToAccount('0x...');
|
|
427
427
|
* const client = createWalletClient({ account, chain: mainnet, transport: http() });
|
|
428
428
|
* await auth.connectWithSigner(client);
|
|
429
|
-
*/connectWithSigner(e,t){return f(this,void 0,void 0,(function*(){T(this,
|
|
429
|
+
*/connectWithSigner(e,t){return f(this,void 0,void 0,(function*(){T(this,_e,"m",De).call(this,"state","loading");try{v(this,xe,I(e),"f"),this.walletAddress=a(yield T(this,xe,"f").getAddress()),
|
|
430
430
|
// store the signer as viem client if it's a viem client, otherwise keep adapter
|
|
431
|
-
"viem"===T(this,
|
|
431
|
+
"viem"===T(this,xe,"f").type&&(this.viem=e);const n=yield T(this,_e,"m",Ue).call(this),i=T(this,_e,"m",Be).call(this,n,null==t?void 0:t.domain,null==t?void 0:t.uri),r=yield T(this,xe,"f").signMessage(i),s=yield T(this,_e,"m",Oe).call(this,i,r);if(s.success)return this.isAuthenticated=!0,this.userId=s.userId,this.jwt=s.token,this.origin=new $e(this.environment,this.jwt,this.viem,this.baseParentId),yield T(this,Me,"f").setItem("camp-sdk:jwt",this.jwt),yield T(this,Me,"f").setItem("camp-sdk:wallet-address",this.walletAddress),yield T(this,Me,"f").setItem("camp-sdk:user-id",this.userId),yield T(this,Me,"f").setItem("camp-sdk:environment",this.environment.NAME),T(this,_e,"m",De).call(this,"state","authenticated"),{success:!0,message:"Successfully authenticated",walletAddress:this.walletAddress};throw this.isAuthenticated=!1,T(this,_e,"m",De).call(this,"state","unauthenticated"),new _("Failed to authenticate")}catch(e){throw this.isAuthenticated=!1,v(this,xe,void 0,"f"),T(this,_e,"m",De).call(this,"state","unauthenticated"),new _(e)}}))}
|
|
432
432
|
/**
|
|
433
433
|
* Get the user's linked social accounts.
|
|
434
434
|
* @returns {Promise<Record<string, boolean>>} A promise that resolves with the user's linked social accounts.
|
|
@@ -437,7 +437,7 @@ if(!h&&(m.uuid||m.name))for(const e of f)try{if(m.uuid&&(null===(u=e.info)||void
|
|
|
437
437
|
* const auth = new Auth({ clientId: "your-client-id" });
|
|
438
438
|
* const socials = await auth.getLinkedSocials();
|
|
439
439
|
* console.log(socials);
|
|
440
|
-
*/getLinkedSocials(){return f(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");const e=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/${this.environment.AUTH_ENDPOINT}/client-user/connections-sdk`,{method:"GET",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"}}).then((e=>e.json()));if(e.isError)throw new
|
|
440
|
+
*/getLinkedSocials(){return f(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");const e=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/${this.environment.AUTH_ENDPOINT}/client-user/connections-sdk`,{method:"GET",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"}}).then((e=>e.json()));if(e.isError)throw new _(e.message||"Failed to fetch connections");{const t={};return Object.keys(e.data.data).forEach((n=>{t[n.split("User")[0]]=e.data.data[n]})),t}}))}
|
|
441
441
|
/**
|
|
442
442
|
* Link the user's Twitter account.
|
|
443
443
|
* @returns {Promise<void>}
|
|
@@ -458,13 +458,13 @@ if(!h&&(m.uuid||m.name))for(const e of f)try{if(m.uuid&&(null===(u=e.info)||void
|
|
|
458
458
|
* @param {string} handle The user's TikTok handle.
|
|
459
459
|
* @returns {Promise<any>} A promise that resolves with the TikTok account data.
|
|
460
460
|
* @throws {Error|APIError} - Throws an error if the user is not authenticated.
|
|
461
|
-
*/linkTikTok(e){return f(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");const t=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/tiktok/connect-sdk`,{method:"POST",redirect:"follow",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"},body:JSON.stringify({userHandle:e,clientId:this.clientId,userId:this.userId})}).then((e=>e.json()));if(t.isError)throw"Request failed with status code 502"===t.message?new
|
|
461
|
+
*/linkTikTok(e){return f(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");const t=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/tiktok/connect-sdk`,{method:"POST",redirect:"follow",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"},body:JSON.stringify({userHandle:e,clientId:this.clientId,userId:this.userId})}).then((e=>e.json()));if(t.isError)throw"Request failed with status code 502"===t.message?new _("TikTok service is currently unavailable, try again later"):new _(t.message||"Failed to link TikTok account");return t.data}))}
|
|
462
462
|
/**
|
|
463
463
|
* Send an OTP to the user's Telegram account.
|
|
464
464
|
* @param {string} phoneNumber The user's phone number.
|
|
465
465
|
* @returns {Promise<any>} A promise that resolves with the OTP data.
|
|
466
466
|
* @throws {Error|APIError} - Throws an error if the user is not authenticated.
|
|
467
|
-
*/sendTelegramOTP(e){return f(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");if(!e)throw new
|
|
467
|
+
*/sendTelegramOTP(e){return f(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");if(!e)throw new _("Phone number is required");yield this.unlinkTelegram();const t=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/telegram/sendOTP-sdk`,{method:"POST",redirect:"follow",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"},body:JSON.stringify({phone:e})}).then((e=>e.json()));if(t.isError)throw new _(t.message||"Failed to send Telegram OTP");return t.data}))}
|
|
468
468
|
/**
|
|
469
469
|
* Link the user's Telegram account.
|
|
470
470
|
* @param {string} phoneNumber The user's phone number.
|
|
@@ -472,34 +472,34 @@ if(!h&&(m.uuid||m.name))for(const e of f)try{if(m.uuid&&(null===(u=e.info)||void
|
|
|
472
472
|
* @param {string} phoneCodeHash The phone code hash.
|
|
473
473
|
* @returns {Promise<object>} A promise that resolves with the Telegram account data.
|
|
474
474
|
* @throws {APIError|Error} - Throws an error if the user is not authenticated. Also throws an error if the phone number, OTP, and phone code hash are not provided.
|
|
475
|
-
*/linkTelegram(e,t,n){return f(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");if(!e||!t||!n)throw new
|
|
475
|
+
*/linkTelegram(e,t,n){return f(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");if(!e||!t||!n)throw new _("Phone number, OTP, and phone code hash are required");const i=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/telegram/signIn-sdk`,{method:"POST",redirect:"follow",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"},body:JSON.stringify({phone:e,code:t,phone_code_hash:n,userId:this.userId,clientId:this.clientId})}).then((e=>e.json()));if(i.isError)throw new _(i.message||"Failed to link Telegram account");return i.data}))}
|
|
476
476
|
/**
|
|
477
477
|
* Unlink the user's Twitter account.
|
|
478
478
|
* @returns {Promise<any>} A promise that resolves with the unlink result.
|
|
479
479
|
* @throws {Error} - Throws an error if the user is not authenticated.
|
|
480
480
|
* @throws {APIError} - Throws an error if the request fails.
|
|
481
|
-
*/unlinkTwitter(){return f(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");const e=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/twitter/disconnect-sdk`,{method:"POST",redirect:"follow",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"},body:JSON.stringify({id:this.userId})}).then((e=>e.json()));if(e.isError)throw new
|
|
481
|
+
*/unlinkTwitter(){return f(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");const e=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/twitter/disconnect-sdk`,{method:"POST",redirect:"follow",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"},body:JSON.stringify({id:this.userId})}).then((e=>e.json()));if(e.isError)throw new _(e.message||"Failed to unlink Twitter account");return e.data}))}
|
|
482
482
|
/**
|
|
483
483
|
* Unlink the user's Discord account.
|
|
484
484
|
* @returns {Promise<any>} A promise that resolves with the unlink result.
|
|
485
485
|
* @throws {Error} - Throws an error if the user is not authenticated.
|
|
486
486
|
* @throws {APIError} - Throws an error if the request fails.
|
|
487
|
-
*/unlinkDiscord(){return f(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new
|
|
487
|
+
*/unlinkDiscord(){return f(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new _("User needs to be authenticated");const e=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/discord/disconnect-sdk`,{method:"POST",redirect:"follow",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"},body:JSON.stringify({id:this.userId})}).then((e=>e.json()));if(e.isError)throw new _(e.message||"Failed to unlink Discord account");return e.data}))}
|
|
488
488
|
/**
|
|
489
489
|
* Unlink the user's Spotify account.
|
|
490
490
|
* @returns {Promise<any>} A promise that resolves with the unlink result.
|
|
491
491
|
* @throws {Error} - Throws an error if the user is not authenticated.
|
|
492
492
|
* @throws {APIError} - Throws an error if the request fails.
|
|
493
|
-
*/unlinkSpotify(){return f(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new
|
|
493
|
+
*/unlinkSpotify(){return f(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new _("User needs to be authenticated");const e=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/spotify/disconnect-sdk`,{method:"POST",redirect:"follow",headers:{Authorization:`Bearer ${this.jwt}`,"x-client-id":this.clientId,"Content-Type":"application/json"},body:JSON.stringify({id:this.userId})}).then((e=>e.json()));if(e.isError)throw new _(e.message||"Failed to unlink Spotify account");return e.data}))}
|
|
494
494
|
/**
|
|
495
495
|
* Unlink the user's TikTok account.
|
|
496
496
|
* @returns {Promise<any>} A promise that resolves with the unlink result.
|
|
497
497
|
* @throws {Error} - Throws an error if the user is not authenticated.
|
|
498
498
|
* @throws {APIError} - Throws an error if the request fails.
|
|
499
|
-
*/unlinkTikTok(){return f(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new
|
|
499
|
+
*/unlinkTikTok(){return f(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new _("User needs to be authenticated");const e=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/tiktok/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 _(e.message||"Failed to unlink TikTok account");return e.data}))}
|
|
500
500
|
/**
|
|
501
501
|
* Unlink the user's Telegram account.
|
|
502
502
|
* @returns {Promise<any>} A promise that resolves with the unlink result.
|
|
503
503
|
* @throws {Error} - Throws an error if the user is not authenticated.
|
|
504
504
|
* @throws {APIError} - Throws an error if the request fails.
|
|
505
|
-
*/unlinkTelegram(){return f(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new
|
|
505
|
+
*/unlinkTelegram(){return f(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new _("User needs to be authenticated");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 _(e.message||"Failed to unlink Telegram account");return e.data}))}}Se=new WeakMap,Ne=new WeakMap,xe=new WeakMap,Me=new WeakMap,_e=new WeakSet,De=function(e,t){T(this,Se,"f")[e]&&T(this,Se,"f")[e].forEach((e=>e(t)))},Fe=function(e){return f(this,void 0,void 0,(function*(){const t=yield T(this,Me,"f").getItem("camp-sdk:wallet-address"),n=yield T(this,Me,"f").getItem("camp-sdk:user-id"),i=yield T(this,Me,"f").getItem("camp-sdk:jwt"),r=yield T(this,Me,"f").getItem("camp-sdk:environment");t&&n&&i&&(r===this.environment.NAME||!r)?(this.walletAddress=t,this.userId=n,this.jwt=i,this.origin=new $e(this.environment,this.jwt,this.viem,this.baseParentId),this.isAuthenticated=!0,e?this.setProvider({provider:e.provider,info:e.info||{name:"Unknown"},address:t}):T(this,Ne,"f")||(console.warn("No matching provider was given for the stored wallet address. Trying to recover provider."),yield this.recoverProvider())):this.isAuthenticated=!1}))},Re=function(){return f(this,void 0,void 0,(function*(){try{const[e]=yield this.viem.requestAddresses();return this.walletAddress=a(e),this.walletAddress}catch(e){throw new _(e)}}))},Ue=function(){return f(this,void 0,void 0,(function*(){try{const e=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/${this.environment.AUTH_ENDPOINT}/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();return 200!==e.status?Promise.reject(t.message||"Failed to fetch nonce"):t.data}catch(e){throw new Error(e)}}))},Oe=function(e,t){return f(this,void 0,void 0,(function*(){try{const n=yield fetch(`${this.environment.AUTH_HUB_BASE_API}/${this.environment.AUTH_ENDPOINT}/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(),r=i.data.split(".")[1],a=JSON.parse(atob(r));return{success:!i.isError,userId:a.id,token:i.data}}catch(e){throw new _(e)}}))},Be=function(e,t,n){return m({domain:t||(T(this,Ne,"f")?"localhost":window.location.host),address:this.walletAddress,statement:U,uri:n||(T(this,Ne,"f")?"http://localhost":window.location.origin),version:"1",chainId:this.environment.CHAIN.id,nonce:e})};export{He as Auth,b as BrowserStorage,A as CustomSignerAdapter,le as DataStatus,g as EthersSignerAdapter,E as MemoryStorage,$e as Origin,w as ViemSignerAdapter,P as campMainnet,k as campTestnet,ye as createLicenseTerms,C as createNodeWalletClient,I as createSignerAdapter};
|