@campnetwork/origin 0.0.8 → 0.0.10
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 +32 -31
- package/dist/core.d.ts +4 -3
- package/dist/core.esm.d.ts +4 -3
- package/dist/core.esm.js +52 -51
- package/dist/react/index.esm.d.ts +4 -3
- package/dist/react/index.esm.js +106 -13
- package/package.json +1 -1
package/dist/core.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import e from"axios";import{custom as t,createWalletClient as n,createPublicClient as i,http as a,erc20Abi as r,getAbiItem as s,encodeFunctionData as o,zeroAddress as d,checksumAddress as u}from"viem";import{toAccount as
|
|
1
|
+
import e from"axios";import{custom as t,createWalletClient as n,createPublicClient as i,http as a,erc20Abi as r,getAbiItem as s,encodeFunctionData as o,zeroAddress as d,checksumAddress as u}from"viem";import{toAccount as p}from"viem/accounts";import{createSiweMessage as l}from"viem/siwe";
|
|
2
2
|
/******************************************************************************
|
|
3
3
|
Copyright (c) Microsoft Corporation.
|
|
4
4
|
|
|
@@ -35,7 +35,7 @@ PERFORMANCE OF THIS SOFTWARE.
|
|
|
35
35
|
* @param {object} params - An object representing query parameters.
|
|
36
36
|
* @returns {string} - The complete URL with query string.
|
|
37
37
|
*/
|
|
38
|
-
function w(e,t={}){const n=function(e={}){return Object.keys(e).map((t=>`${encodeURIComponent(t)}=${encodeURIComponent(e[t])}`)).join("&")}(t);return n?`${e}?${n}`:e}const
|
|
38
|
+
function w(e,t={}){const n=function(e={}){return Object.keys(e).map((t=>`${encodeURIComponent(t)}=${encodeURIComponent(e[t])}`)).join("&")}(t);return n?`${e}?${n}`:e}const T="https://wv2h4to5qa.execute-api.us-east-2.amazonaws.com/dev/twitter",v="https://wv2h4to5qa.execute-api.us-east-2.amazonaws.com/dev/spotify";
|
|
39
39
|
/**
|
|
40
40
|
* The TwitterAPI class.
|
|
41
41
|
* @class
|
|
@@ -53,7 +53,7 @@ constructor({apiKey:e}){this.apiKey=e}
|
|
|
53
53
|
* @param {string} twitterUserName - The Twitter username.
|
|
54
54
|
* @returns {Promise<object>} - The user details.
|
|
55
55
|
* @throws {APIError} - Throws an error if the request fails.
|
|
56
|
-
*/fetchUserByUsername(e){return c(this,void 0,void 0,(function*(){const t=w(`${
|
|
56
|
+
*/fetchUserByUsername(e){return c(this,void 0,void 0,(function*(){const t=w(`${T}/user`,{twitterUserName:e});return this._fetchDataWithAuth(t)}))}
|
|
57
57
|
/**
|
|
58
58
|
* Fetch tweets by Twitter username.
|
|
59
59
|
* @param {string} twitterUserName - The Twitter username.
|
|
@@ -61,7 +61,7 @@ constructor({apiKey:e}){this.apiKey=e}
|
|
|
61
61
|
* @param {number} limit - The number of items per page.
|
|
62
62
|
* @returns {Promise<object>} - The tweets.
|
|
63
63
|
* @throws {APIError} - Throws an error if the request fails.
|
|
64
|
-
*/fetchTweetsByUsername(e){return c(this,arguments,void 0,(function*(e,t=1,n=10){const i=w(`${
|
|
64
|
+
*/fetchTweetsByUsername(e){return c(this,arguments,void 0,(function*(e,t=1,n=10){const i=w(`${T}/tweets`,{twitterUserName:e,page:t,limit:n});return this._fetchDataWithAuth(i)}))}
|
|
65
65
|
/**
|
|
66
66
|
* Fetch followers by Twitter username.
|
|
67
67
|
* @param {string} twitterUserName - The Twitter username.
|
|
@@ -69,7 +69,7 @@ constructor({apiKey:e}){this.apiKey=e}
|
|
|
69
69
|
* @param {number} limit - The number of items per page.
|
|
70
70
|
* @returns {Promise<object>} - The followers.
|
|
71
71
|
* @throws {APIError} - Throws an error if the request fails.
|
|
72
|
-
*/fetchFollowersByUsername(e){return c(this,arguments,void 0,(function*(e,t=1,n=10){const i=w(`${
|
|
72
|
+
*/fetchFollowersByUsername(e){return c(this,arguments,void 0,(function*(e,t=1,n=10){const i=w(`${T}/followers`,{twitterUserName:e,page:t,limit:n});return this._fetchDataWithAuth(i)}))}
|
|
73
73
|
/**
|
|
74
74
|
* Fetch following by Twitter username.
|
|
75
75
|
* @param {string} twitterUserName - The Twitter username.
|
|
@@ -77,13 +77,13 @@ constructor({apiKey:e}){this.apiKey=e}
|
|
|
77
77
|
* @param {number} limit - The number of items per page.
|
|
78
78
|
* @returns {Promise<object>} - The following.
|
|
79
79
|
* @throws {APIError} - Throws an error if the request fails.
|
|
80
|
-
*/fetchFollowingByUsername(e){return c(this,arguments,void 0,(function*(e,t=1,n=10){const i=w(`${
|
|
80
|
+
*/fetchFollowingByUsername(e){return c(this,arguments,void 0,(function*(e,t=1,n=10){const i=w(`${T}/following`,{twitterUserName:e,page:t,limit:n});return this._fetchDataWithAuth(i)}))}
|
|
81
81
|
/**
|
|
82
82
|
* Fetch tweet by tweet ID.
|
|
83
83
|
* @param {string} tweetId - The tweet ID.
|
|
84
84
|
* @returns {Promise<object>} - The tweet.
|
|
85
85
|
* @throws {APIError} - Throws an error if the request fails.
|
|
86
|
-
*/fetchTweetById(e){return c(this,void 0,void 0,(function*(){const t=w(`${
|
|
86
|
+
*/fetchTweetById(e){return c(this,void 0,void 0,(function*(){const t=w(`${T}/getTweetById`,{tweetId:e});return this._fetchDataWithAuth(t)}))}
|
|
87
87
|
/**
|
|
88
88
|
* Fetch user by wallet address.
|
|
89
89
|
* @param {string} walletAddress - The wallet address.
|
|
@@ -91,7 +91,7 @@ constructor({apiKey:e}){this.apiKey=e}
|
|
|
91
91
|
* @param {number} limit - The number of items per page.
|
|
92
92
|
* @returns {Promise<object>} - The user data.
|
|
93
93
|
* @throws {APIError} - Throws an error if the request fails.
|
|
94
|
-
*/fetchUserByWalletAddress(e){return c(this,arguments,void 0,(function*(e,t=1,n=10){const i=w(`${
|
|
94
|
+
*/fetchUserByWalletAddress(e){return c(this,arguments,void 0,(function*(e,t=1,n=10){const i=w(`${T}/wallet-twitter-data`,{walletAddress:e,page:t,limit:n});return this._fetchDataWithAuth(i)}))}
|
|
95
95
|
/**
|
|
96
96
|
* Fetch reposted tweets by Twitter username.
|
|
97
97
|
* @param {string} twitterUserName - The Twitter username.
|
|
@@ -99,7 +99,7 @@ constructor({apiKey:e}){this.apiKey=e}
|
|
|
99
99
|
* @param {number} limit - The number of items per page.
|
|
100
100
|
* @returns {Promise<object>} - The reposted tweets.
|
|
101
101
|
* @throws {APIError} - Throws an error if the request fails.
|
|
102
|
-
*/fetchRepostedByUsername(e){return c(this,arguments,void 0,(function*(e,t=1,n=10){const i=w(`${
|
|
102
|
+
*/fetchRepostedByUsername(e){return c(this,arguments,void 0,(function*(e,t=1,n=10){const i=w(`${T}/reposted`,{twitterUserName:e,page:t,limit:n});return this._fetchDataWithAuth(i)}))}
|
|
103
103
|
/**
|
|
104
104
|
* Fetch replies by Twitter username.
|
|
105
105
|
* @param {string} twitterUserName - The Twitter username.
|
|
@@ -107,7 +107,7 @@ constructor({apiKey:e}){this.apiKey=e}
|
|
|
107
107
|
* @param {number} limit - The number of items per page.
|
|
108
108
|
* @returns {Promise<object>} - The replies.
|
|
109
109
|
* @throws {APIError} - Throws an error if the request fails.
|
|
110
|
-
*/fetchRepliesByUsername(e){return c(this,arguments,void 0,(function*(e,t=1,n=10){const i=w(`${
|
|
110
|
+
*/fetchRepliesByUsername(e){return c(this,arguments,void 0,(function*(e,t=1,n=10){const i=w(`${T}/replies`,{twitterUserName:e,page:t,limit:n});return this._fetchDataWithAuth(i)}))}
|
|
111
111
|
/**
|
|
112
112
|
* Fetch likes by Twitter username.
|
|
113
113
|
* @param {string} twitterUserName - The Twitter username.
|
|
@@ -115,7 +115,7 @@ constructor({apiKey:e}){this.apiKey=e}
|
|
|
115
115
|
* @param {number} limit - The number of items per page.
|
|
116
116
|
* @returns {Promise<object>} - The likes.
|
|
117
117
|
* @throws {APIError} - Throws an error if the request fails.
|
|
118
|
-
*/fetchLikesByUsername(e){return c(this,arguments,void 0,(function*(e,t=1,n=10){const i=w(`${
|
|
118
|
+
*/fetchLikesByUsername(e){return c(this,arguments,void 0,(function*(e,t=1,n=10){const i=w(`${T}/event/likes/${e}`,{page:t,limit:n});return this._fetchDataWithAuth(i)}))}
|
|
119
119
|
/**
|
|
120
120
|
* Fetch follows by Twitter username.
|
|
121
121
|
* @param {string} twitterUserName - The Twitter username.
|
|
@@ -123,7 +123,7 @@ constructor({apiKey:e}){this.apiKey=e}
|
|
|
123
123
|
* @param {number} limit - The number of items per page.
|
|
124
124
|
* @returns {Promise<object>} - The follows.
|
|
125
125
|
* @throws {APIError} - Throws an error if the request fails.
|
|
126
|
-
*/fetchFollowsByUsername(e){return c(this,arguments,void 0,(function*(e,t=1,n=10){const i=w(`${
|
|
126
|
+
*/fetchFollowsByUsername(e){return c(this,arguments,void 0,(function*(e,t=1,n=10){const i=w(`${T}/event/follows/${e}`,{page:t,limit:n});return this._fetchDataWithAuth(i)}))}
|
|
127
127
|
/**
|
|
128
128
|
* Fetch viewed tweets by Twitter username.
|
|
129
129
|
* @param {string} twitterUserName - The Twitter username.
|
|
@@ -131,7 +131,7 @@ constructor({apiKey:e}){this.apiKey=e}
|
|
|
131
131
|
* @param {number} limit - The number of items per page.
|
|
132
132
|
* @returns {Promise<object>} - The viewed tweets.
|
|
133
133
|
* @throws {APIError} - Throws an error if the request fails.
|
|
134
|
-
*/fetchViewedTweetsByUsername(e){return c(this,arguments,void 0,(function*(e,t=1,n=10){const i=w(`${
|
|
134
|
+
*/fetchViewedTweetsByUsername(e){return c(this,arguments,void 0,(function*(e,t=1,n=10){const i=w(`${T}/event/viewed-tweets/${e}`,{page:t,limit:n});return this._fetchDataWithAuth(i)}))}
|
|
135
135
|
/**
|
|
136
136
|
* Private method to fetch data with authorization header.
|
|
137
137
|
* @param {string} url - The URL to fetch.
|
|
@@ -155,45 +155,45 @@ constructor(e){this.apiKey=e.apiKey}
|
|
|
155
155
|
* @param {string} spotifyId - The user's Spotify ID.
|
|
156
156
|
* @returns {Promise<object>} - The saved tracks.
|
|
157
157
|
* @throws {APIError} - Throws an error if the request fails.
|
|
158
|
-
*/fetchSavedTracksById(e){return c(this,void 0,void 0,(function*(){const t=w(`${
|
|
158
|
+
*/fetchSavedTracksById(e){return c(this,void 0,void 0,(function*(){const t=w(`${v}/save-tracks`,{spotifyId:e});return this._fetchDataWithAuth(t)}))}
|
|
159
159
|
/**
|
|
160
160
|
* Fetch the played tracks of a user by Spotify ID.
|
|
161
161
|
* @param {string} spotifyId - The user's Spotify ID.
|
|
162
162
|
* @returns {Promise<object>} - The played tracks.
|
|
163
163
|
* @throws {APIError} - Throws an error if the request fails.
|
|
164
|
-
*/fetchPlayedTracksById(e){return c(this,void 0,void 0,(function*(){const t=w(`${
|
|
164
|
+
*/fetchPlayedTracksById(e){return c(this,void 0,void 0,(function*(){const t=w(`${v}/played-tracks`,{spotifyId:e});return this._fetchDataWithAuth(t)}))}
|
|
165
165
|
/**
|
|
166
166
|
* Fetch the user's saved albums by Spotify user ID.
|
|
167
167
|
* @param {string} spotifyId - The user's Spotify ID.
|
|
168
168
|
* @returns {Promise<object>} - The saved albums.
|
|
169
169
|
* @throws {APIError} - Throws an error if the request fails.
|
|
170
|
-
*/fetchSavedAlbumsById(e){return c(this,void 0,void 0,(function*(){const t=w(`${
|
|
170
|
+
*/fetchSavedAlbumsById(e){return c(this,void 0,void 0,(function*(){const t=w(`${v}/saved-albums`,{spotifyId:e});return this._fetchDataWithAuth(t)}))}
|
|
171
171
|
/**
|
|
172
172
|
* Fetch the user's saved playlists by Spotify user ID.
|
|
173
173
|
* @param {string} spotifyId - The user's Spotify ID.
|
|
174
174
|
* @returns {Promise<object>} - The saved playlists.
|
|
175
175
|
* @throws {APIError} - Throws an error if the request fails.
|
|
176
|
-
*/fetchSavedPlaylistsById(e){return c(this,void 0,void 0,(function*(){const t=w(`${
|
|
176
|
+
*/fetchSavedPlaylistsById(e){return c(this,void 0,void 0,(function*(){const t=w(`${v}/saved-playlists`,{spotifyId:e});return this._fetchDataWithAuth(t)}))}
|
|
177
177
|
/**
|
|
178
178
|
* Fetch the tracks of an album by album ID.
|
|
179
179
|
* @param {string} spotifyId - The Spotify ID of the user.
|
|
180
180
|
* @param {string} albumId - The album ID.
|
|
181
181
|
* @returns {Promise<object>} - The tracks in the album.
|
|
182
182
|
* @throws {APIError} - Throws an error if the request fails.
|
|
183
|
-
*/fetchTracksInAlbum(e,t){return c(this,void 0,void 0,(function*(){const n=w(`${
|
|
183
|
+
*/fetchTracksInAlbum(e,t){return c(this,void 0,void 0,(function*(){const n=w(`${v}/album/tracks`,{spotifyId:e,albumId:t});return this._fetchDataWithAuth(n)}))}
|
|
184
184
|
/**
|
|
185
185
|
* Fetch the tracks in a playlist by playlist ID.
|
|
186
186
|
* @param {string} spotifyId - The Spotify ID of the user.
|
|
187
187
|
* @param {string} playlistId - The playlist ID.
|
|
188
188
|
* @returns {Promise<object>} - The tracks in the playlist.
|
|
189
189
|
* @throws {APIError} - Throws an error if the request fails.
|
|
190
|
-
*/fetchTracksInPlaylist(e,t){return c(this,void 0,void 0,(function*(){const n=w(`${
|
|
190
|
+
*/fetchTracksInPlaylist(e,t){return c(this,void 0,void 0,(function*(){const n=w(`${v}/playlist/tracks`,{spotifyId:e,playlistId:t});return this._fetchDataWithAuth(n)}))}
|
|
191
191
|
/**
|
|
192
192
|
* Fetch the user's Spotify data by wallet address.
|
|
193
193
|
* @param {string} walletAddress - The wallet address.
|
|
194
194
|
* @returns {Promise<object>} - The user's Spotify data.
|
|
195
195
|
* @throws {APIError} - Throws an error if the request fails.
|
|
196
|
-
*/fetchUserByWalletAddress(e){return c(this,void 0,void 0,(function*(){const t=w(`${
|
|
196
|
+
*/fetchUserByWalletAddress(e){return c(this,void 0,void 0,(function*(){const t=w(`${v}/wallet-spotify-data`,{walletAddress:e});return this._fetchDataWithAuth(t)}))}
|
|
197
197
|
/**
|
|
198
198
|
* Private method to fetch data with authorization header.
|
|
199
199
|
* @param {string} url - The URL to fetch.
|
|
@@ -201,25 +201,26 @@ constructor(e){this.apiKey=e.apiKey}
|
|
|
201
201
|
* @throws {APIError} - Throws an error if the request fails.
|
|
202
202
|
*/_fetchDataWithAuth(e){return c(this,void 0,void 0,(function*(){if(!this.apiKey)throw new m("API key is required for fetching data",401);try{return yield f(e,{"x-api-key":this.apiKey})}catch(e){throw new m(e.message,e.statusCode)}}))}}const I={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/"}}};
|
|
203
203
|
// @ts-ignore
|
|
204
|
-
let k=null,A=null;const C=()=>(A||(A=i({chain:I,transport:a()})),A);var E="Connect with Camp Network",x="https://wv2h4to5qa.execute-api.us-east-2.amazonaws.com/dev",M={USER_CONNECTED:"ed42542d-b676-4112-b6d9-6db98048b2e0",USER_DISCONNECTED:"20af31ac-e602-442e-9e0e-b589f4dd4016",TWITTER_LINKED:"7fbea086-90ef-4679-ba69-f47f9255b34c",DISCORD_LINKED:"d73f5ae3-a8e8-48f2-8532-85e0c7780d6a",SPOTIFY_LINKED:"fc1788b4-c984-42c8-96f4-c87f6bb0b8f7",TIKTOK_LINKED:"4a2ffdd3-f0e9-4784-8b49-ff76ec1c0a6a",TELEGRAM_LINKED:"9006bc5d-bcc9-4d01-a860-4f1a201e8e47"},S="0xb55066f2793773B3784f8c57c415a8b5932B33Cd",O="0x977fdEF62CE095Ae8750Fd3496730F24F60dea7a";let $=[];const F=()=>$,j=e=>{function t(t){$.some((e=>e.info.uuid===t.detail.info.uuid))||($=[...$,t.detail],e($))}if("undefined"!=typeof window)return window.addEventListener("eip6963:announceProvider",t),window.dispatchEvent(new Event("eip6963:requestProvider")),()=>window.removeEventListener("eip6963:announceProvider",t)};var P=[{inputs:[{internalType:"string",name:"_name",type:"string"},{internalType:"string",name:"_symbol",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"DurationZero",type:"error"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"owner",type:"address"}],name:"ERC721IncorrectOwner",type:"error"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ERC721InsufficientApproval",type:"error"},{inputs:[{internalType:"address",name:"approver",type:"address"}],name:"ERC721InvalidApprover",type:"error"},{inputs:[{internalType:"address",name:"operator",type:"address"}],name:"ERC721InvalidOperator",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"ERC721InvalidOwner",type:"error"},{inputs:[{internalType:"address",name:"receiver",type:"address"}],name:"ERC721InvalidReceiver",type:"error"},{inputs:[{internalType:"address",name:"sender",type:"address"}],name:"ERC721InvalidSender",type:"error"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ERC721NonexistentToken",type:"error"},{inputs:[],name:"EnforcedPause",type:"error"},{inputs:[],name:"ExpectedPause",type:"error"},{inputs:[],name:"InvalidDeadline",type:"error"},{inputs:[{internalType:"uint16",name:"royaltyBps",type:"uint16"}],name:"InvalidRoyalty",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"caller",type:"address"}],name:"NotTokenOwner",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"OwnableInvalidOwner",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"OwnableUnauthorizedAccount",type:"error"},{inputs:[],name:"SignatureAlreadyUsed",type:"error"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"TokenAlreadyExists",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"buyer",type:"address"},{indexed:!1,internalType:"uint32",name:"periods",type:"uint32"},{indexed:!1,internalType:"uint256",name:"newExpiry",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amountPaid",type:"uint256"}],name:"AccessPurchased",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"approved",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"creator",type:"address"}],name:"DataDeleted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"creator",type:"address"},{indexed:!1,internalType:"bytes32",name:"contentHash",type:"bytes32"}],name:"DataMinted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"royaltyAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"creator",type:"address"},{indexed:!1,internalType:"uint256",name:"protocolAmount",type:"uint256"}],name:"RoyaltyPaid",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint128",name:"newPrice",type:"uint128"},{indexed:!1,internalType:"uint32",name:"newDuration",type:"uint32"},{indexed:!1,internalType:"uint16",name:"newRoyaltyBps",type:"uint16"},{indexed:!1,internalType:"address",name:"paymentToken",type:"address"}],name:"TermsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"contentHash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"dataStatus",outputs:[{internalType:"enum IpNFT.DataStatus",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"finalizeDelete",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getTerms",outputs:[{components:[{internalType:"uint128",name:"price",type:"uint128"},{internalType:"uint32",name:"duration",type:"uint32"},{internalType:"uint16",name:"royaltyBps",type:"uint16"},{internalType:"address",name:"paymentToken",type:"address"}],internalType:"struct IpNFT.LicenseTerms",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes32",name:"creatorContentHash",type:"bytes32"},{internalType:"string",name:"uri",type:"string"},{components:[{internalType:"uint128",name:"price",type:"uint128"},{internalType:"uint32",name:"duration",type:"uint32"},{internalType:"uint16",name:"royaltyBps",type:"uint16"},{internalType:"address",name:"paymentToken",type:"address"}],internalType:"struct IpNFT.LicenseTerms",name:"licenseTerms",type:"tuple"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"mintWithSignature",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"salePrice",type:"uint256"}],name:"royaltyInfo",outputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"royaltyAmount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"royaltyPercentages",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"royaltyReceivers",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"terms",outputs:[{internalType:"uint128",name:"price",type:"uint128"},{internalType:"uint32",name:"duration",type:"uint32"},{internalType:"uint16",name:"royaltyBps",type:"uint16"},{internalType:"address",name:"paymentToken",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"_royaltyReceiver",type:"address"},{components:[{internalType:"uint128",name:"price",type:"uint128"},{internalType:"uint32",name:"duration",type:"uint32"},{internalType:"uint16",name:"royaltyBps",type:"uint16"},{internalType:"address",name:"paymentToken",type:"address"}],internalType:"struct IpNFT.LicenseTerms",name:"newTerms",type:"tuple"}],name:"updateTerms",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"usedNonces",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}];
|
|
204
|
+
let k=null,A=null;const C=()=>(A||(A=i({chain:I,transport:a()})),A);var E="Connect with Camp Network",M="https://wv2h4to5qa.execute-api.us-east-2.amazonaws.com/dev",x={USER_CONNECTED:"ed42542d-b676-4112-b6d9-6db98048b2e0",USER_DISCONNECTED:"20af31ac-e602-442e-9e0e-b589f4dd4016",TWITTER_LINKED:"7fbea086-90ef-4679-ba69-f47f9255b34c",DISCORD_LINKED:"d73f5ae3-a8e8-48f2-8532-85e0c7780d6a",SPOTIFY_LINKED:"fc1788b4-c984-42c8-96f4-c87f6bb0b8f7",TIKTOK_LINKED:"4a2ffdd3-f0e9-4784-8b49-ff76ec1c0a6a",TELEGRAM_LINKED:"9006bc5d-bcc9-4d01-a860-4f1a201e8e47"},S="0xF90733b9eCDa3b49C250B2C3E3E42c96fC93324E",O="0x5c5e6b458b2e3924E7688b8Dee1Bb49088F6Fef5";let $=[];const F=()=>$,j=e=>{function t(t){$.some((e=>e.info.uuid===t.detail.info.uuid))||($=[...$,t.detail],e($))}if("undefined"!=typeof window)return window.addEventListener("eip6963:announceProvider",t),window.dispatchEvent(new Event("eip6963:requestProvider")),()=>window.removeEventListener("eip6963:announceProvider",t)};var P=[{inputs:[{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"},{internalType:"uint256",name:"maxTermDuration_",type:"uint256"},{internalType:"address",name:"signer_",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"DurationZero",type:"error"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"owner",type:"address"}],name:"ERC721IncorrectOwner",type:"error"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ERC721InsufficientApproval",type:"error"},{inputs:[{internalType:"address",name:"approver",type:"address"}],name:"ERC721InvalidApprover",type:"error"},{inputs:[{internalType:"address",name:"operator",type:"address"}],name:"ERC721InvalidOperator",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"ERC721InvalidOwner",type:"error"},{inputs:[{internalType:"address",name:"receiver",type:"address"}],name:"ERC721InvalidReceiver",type:"error"},{inputs:[{internalType:"address",name:"sender",type:"address"}],name:"ERC721InvalidSender",type:"error"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ERC721NonexistentToken",type:"error"},{inputs:[],name:"EnforcedPause",type:"error"},{inputs:[],name:"ExpectedPause",type:"error"},{inputs:[],name:"InvalidDeadline",type:"error"},{inputs:[],name:"InvalidDuration",type:"error"},{inputs:[{internalType:"uint16",name:"royaltyBps",type:"uint16"}],name:"InvalidRoyalty",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"caller",type:"address"}],name:"NotTokenOwner",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"OwnableInvalidOwner",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"OwnableUnauthorizedAccount",type:"error"},{inputs:[],name:"SignatureAlreadyUsed",type:"error"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"TokenAlreadyExists",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"buyer",type:"address"},{indexed:!1,internalType:"uint32",name:"periods",type:"uint32"},{indexed:!1,internalType:"uint256",name:"newExpiry",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amountPaid",type:"uint256"}],name:"AccessPurchased",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"approved",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"creator",type:"address"}],name:"DataDeleted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"creator",type:"address"},{indexed:!1,internalType:"bytes32",name:"contentHash",type:"bytes32"}],name:"DataMinted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"royaltyAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"creator",type:"address"},{indexed:!1,internalType:"uint256",name:"protocolAmount",type:"uint256"}],name:"RoyaltyPaid",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint128",name:"newPrice",type:"uint128"},{indexed:!1,internalType:"uint32",name:"newDuration",type:"uint32"},{indexed:!1,internalType:"uint16",name:"newRoyaltyBps",type:"uint16"},{indexed:!1,internalType:"address",name:"paymentToken",type:"address"}],name:"TermsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"contentHash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"dataStatus",outputs:[{internalType:"enum IpNFT.DataStatus",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"finalizeDelete",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getTerms",outputs:[{components:[{internalType:"uint128",name:"price",type:"uint128"},{internalType:"uint32",name:"duration",type:"uint32"},{internalType:"uint16",name:"royaltyBps",type:"uint16"},{internalType:"address",name:"paymentToken",type:"address"}],internalType:"struct IpNFT.LicenseTerms",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"maxTermDuration",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"parentId",type:"uint256"},{internalType:"bytes32",name:"creatorContentHash",type:"bytes32"},{internalType:"string",name:"uri",type:"string"},{components:[{internalType:"uint128",name:"price",type:"uint128"},{internalType:"uint32",name:"duration",type:"uint32"},{internalType:"uint16",name:"royaltyBps",type:"uint16"},{internalType:"address",name:"paymentToken",type:"address"}],internalType:"struct IpNFT.LicenseTerms",name:"licenseTerms",type:"tuple"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"mintWithSignature",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"parentIpOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"salePrice",type:"uint256"}],name:"royaltyInfo",outputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"royaltyAmount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"royaltyPercentages",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"royaltyReceivers",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_signer",type:"address"}],name:"setSigner",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"signer",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"terms",outputs:[{internalType:"uint128",name:"price",type:"uint128"},{internalType:"uint32",name:"duration",type:"uint32"},{internalType:"uint16",name:"royaltyBps",type:"uint16"},{internalType:"address",name:"paymentToken",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_tokenId",type:"uint256"}],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"_royaltyReceiver",type:"address"},{components:[{internalType:"uint128",name:"price",type:"uint128"},{internalType:"uint32",name:"duration",type:"uint32"},{internalType:"uint16",name:"royaltyBps",type:"uint16"},{internalType:"address",name:"paymentToken",type:"address"}],internalType:"struct IpNFT.LicenseTerms",name:"newTerms",type:"tuple"}],name:"updateTerms",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"usedNonces",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}];
|
|
205
205
|
/**
|
|
206
206
|
* Mints a Data NFT with a signature.
|
|
207
207
|
* @param to The address to mint the NFT to.
|
|
208
208
|
* @param tokenId The ID of the token to mint.
|
|
209
|
+
* @param parentId The ID of the parent NFT, if applicable.
|
|
209
210
|
* @param hash The hash of the data associated with the NFT.
|
|
210
211
|
* @param uri The URI of the NFT metadata.
|
|
211
212
|
* @param licenseTerms The terms of the license for the NFT.
|
|
212
213
|
* @param deadline The deadline for the minting operation.
|
|
213
214
|
* @param signature The signature for the minting operation.
|
|
214
215
|
* @returns A promise that resolves when the minting is complete.
|
|
215
|
-
*/function
|
|
216
|
+
*/function N(e,t,n,i,a,r,s,o){return c(this,void 0,void 0,(function*(){return yield this.callContractMethod(S,P,"mintWithSignature",[e,t,n,i,a,r,s,o],{waitForReceipt:!0})}))}
|
|
216
217
|
/**
|
|
217
218
|
* Registers a Data NFT with the Origin service in order to obtain a signature for minting.
|
|
218
219
|
* @param source The source of the Data NFT (e.g., "spotify", "twitter", "tiktok", or "file").
|
|
219
220
|
* @param deadline The deadline for the registration operation.
|
|
220
221
|
* @param fileKey Optional file key for file uploads.
|
|
221
222
|
* @return A promise that resolves with the registration data.
|
|
222
|
-
*/function
|
|
223
|
+
*/function U(e,t,n,i,a,r){return c(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:Number(r)||0};void 0!==a&&(s.fileKey=a);const o=yield fetch(`${M}/auth/origin/register`,{method:"POST",headers:{Authorization:`Bearer ${this.getJwt()}`},body:JSON.stringify(s)});if(!o.ok)throw new Error(`Failed to get signature: ${o.statusText}`);const d=yield o.json();if(d.isError)throw new Error(`Failed to get signature: ${d.message}`);return d.data}))}function D(e,t){return this.callContractMethod(S,P,"updateTerms",[e,t],{waitForReceipt:!0})}function B(e){return this.callContractMethod(S,P,"requestDelete",[e])}function _(e){return this.callContractMethod(S,P,"getTerms",[e])}function W(e){return this.callContractMethod(S,P,"ownerOf",[e])}function R(e){return this.callContractMethod(S,P,"balanceOf",[e])}function q(e){return this.callContractMethod(S,P,"contentHash",[e])}function z(e){return this.callContractMethod(S,P,"tokenURI",[e])}function L(e){return this.callContractMethod(S,P,"dataStatus",[e])}function K(e,t){return c(this,void 0,void 0,(function*(){return this.callContractMethod(S,P,"royaltyInfo",[e,t])}))}function J(e){return this.callContractMethod(S,P,"getApproved",[e])}function H(e,t){return this.callContractMethod(S,P,"isApprovedForAll",[e,t])}function G(e,t,n){return this.callContractMethod(S,P,"transferFrom",[e,t,n])}function V(e,t,n,i){const a=i?[e,t,n,i]:[e,t,n];return this.callContractMethod(S,P,"safeTransferFrom",a)}function Z(e,t){return this.callContractMethod(S,P,"approve",[e,t])}function Y(e,t){return this.callContractMethod(S,P,"setApprovalForAll",[e,t])}var Q,X,ee,te,ne,ie,ae,re,se,oe,de,ue,pe,le,ce,ye=[{inputs:[{internalType:"address",name:"dataNFT_",type:"address"},{internalType:"uint16",name:"protocolFeeBps_",type:"uint16"},{internalType:"address",name:"treasury_",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"EnforcedPause",type:"error"},{inputs:[],name:"ExpectedPause",type:"error"},{inputs:[{internalType:"uint256",name:"expected",type:"uint256"},{internalType:"uint256",name:"actual",type:"uint256"}],name:"InvalidPayment",type:"error"},{inputs:[{internalType:"uint32",name:"periods",type:"uint32"}],name:"InvalidPeriods",type:"error"},{inputs:[{internalType:"uint16",name:"royaltyBps",type:"uint16"}],name:"InvalidRoyalty",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"OwnableInvalidOwner",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"OwnableUnauthorizedAccount",type:"error"},{inputs:[],name:"TransferFailed",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{inputs:[],name:"ZeroAddress",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"buyer",type:"address"},{indexed:!1,internalType:"uint32",name:"periods",type:"uint32"},{indexed:!1,internalType:"uint256",name:"newExpiry",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amountPaid",type:"uint256"}],name:"AccessPurchased",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"creator",type:"address"}],name:"DataDeleted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"creator",type:"address"},{indexed:!1,internalType:"bytes32",name:"contentHash",type:"bytes32"}],name:"DataMinted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"royaltyAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"creator",type:"address"},{indexed:!1,internalType:"uint256",name:"protocolAmount",type:"uint256"}],name:"RoyaltyPaid",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint128",name:"newPrice",type:"uint128"},{indexed:!1,internalType:"uint32",name:"newDuration",type:"uint32"},{indexed:!1,internalType:"uint16",name:"newRoyaltyBps",type:"uint16"},{indexed:!1,internalType:"address",name:"paymentToken",type:"address"}],name:"TermsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{inputs:[{internalType:"address",name:"feeManager",type:"address"}],name:"addFeeManager",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"buyer",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint32",name:"periods",type:"uint32"}],name:"buyAccess",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"dataNFT",outputs:[{internalType:"contract IpNFT",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"feeManagers",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"hasAccess",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"protocolFeeBps",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"feeManager",type:"address"}],name:"removeFeeManager",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"},{internalType:"address",name:"",type:"address"}],name:"subscriptionExpiry",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"treasury",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"newFeeBps",type:"uint16"}],name:"updateProtocolFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newTreasury",type:"address"}],name:"updateTreasury",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];function he(e,t,n){return this.callContractMethod(O,ye,"buyAccess",[e,t],{waitForReceipt:!0,value:n})}function me(e,t,n,i){return this.callContractMethod(O,ye,"renewAccess",[e,t,n],void 0!==i?{value:i}:void 0)}function fe(e,t){return this.callContractMethod(O,ye,"hasAccess",[e,t])}function we(e,t){return this.callContractMethod(O,ye,"subscriptionExpiry",[e,t])}
|
|
223
224
|
/**
|
|
224
225
|
* Approves a spender to spend a specified amount of tokens on behalf of the owner.
|
|
225
226
|
* If the current allowance is less than the specified amount, it will perform the approval.
|
|
@@ -229,27 +230,27 @@ let k=null,A=null;const C=()=>(A||(A=i({chain:I,transport:a()})),A);var E="Conne
|
|
|
229
230
|
* The Origin class
|
|
230
231
|
* Handles the upload of files to Origin, as well as querying the user's stats
|
|
231
232
|
*/
|
|
232
|
-
class
|
|
233
|
-
if(!(
|
|
233
|
+
class Te{constructor(t,n){Q.add(this),X.set(this,(e=>c(this,void 0,void 0,(function*(){const t=yield fetch(`${M}/auth/origin/upload-url`,{method:"POST",body:JSON.stringify({name:e.name,type:e.type}),headers:{Authorization:`Bearer ${this.jwt}`}}),n=yield t.json();return n.isError?n.message:n.data})))),ee.set(this,((e,t)=>c(this,void 0,void 0,(function*(){(yield fetch(`${M}/auth/origin/update-status`,{method:"PATCH",body:JSON.stringify({status:t,fileKey:e}),headers:{Authorization:`Bearer ${this.jwt}`,"Content-Type":"application/json"}})).ok||console.error("Failed to update origin status")})))),this.uploadFile=(t,n)=>c(this,void 0,void 0,(function*(){const i=yield y(this,X,"f").call(this,t);if(i){try{yield((t,n,i)=>new Promise(((a,r)=>{e.put(n,t,Object.assign({headers:{"Content-Type":t.type}},"undefined"!=typeof window&&"function"==typeof i?{onUploadProgress:e=>{if(e.total){const t=e.loaded/e.total*100;i(t)}}}:{})).then((e=>{a(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)}))})))(t,i.url,(null==n?void 0:n.progressCallback)||(()=>{}))}catch(e){throw yield y(this,ee,"f").call(this,i.key,"failed"),new Error("Failed to upload file: "+e)}return yield y(this,ee,"f").call(this,i.key,"success"),i}console.error("Failed to generate upload URL")})),this.mintFile=(e,t,n,i,a)=>c(this,void 0,void 0,(function*(){if(!this.viemClient)throw new Error("WalletClient not connected.");const r=yield this.uploadFile(e,a);if(!r||!r.key)throw new Error("Failed to upload file or get upload info.");const s=BigInt(Math.floor(Date.now())+600),o=yield this.registerIpNFT("file",s,n,t,r.key,i),{tokenId:d,signerAddress:u,creatorContentHash:p,signature:l,uri:c}=o;// 10 minutes from now
|
|
234
|
+
if(!(d&&u&&p&&void 0!==l&&c))throw new Error("Failed to register IpNFT: Missing required fields in registration response.");const[y]=yield this.viemClient.request({method:"eth_requestAccounts",params:[]}),h=yield this.mintWithSignature(y,d,i||BigInt(0),p,c,n,s,l);if("0x1"!==h.status)throw new Error(`Minting failed with status: ${h.status}`);return d.toString()})),this.mintSocial=(e,t)=>c(this,void 0,void 0,(function*(){
|
|
234
235
|
// try {
|
|
235
|
-
const n=BigInt(Math.floor(Date.now())+600),i=yield this.registerIpNFT(e,n,t);// 10 minutes from now (temp)
|
|
236
|
-
if(!
|
|
236
|
+
const n=BigInt(Math.floor(Date.now())+600),i={name:`${e} IpNFT`,description:`This is a ${e} IpNFT`},a=yield this.registerIpNFT(e,n,t,i);// 10 minutes from now (temp)
|
|
237
|
+
if(!a)
|
|
237
238
|
// console.error("Failed to register IpNFT");
|
|
238
239
|
// return null;
|
|
239
|
-
throw new Error("Failed to register Social IpNFT");return
|
|
240
|
+
throw new Error("Failed to register Social IpNFT");return a.tokenId.toString();
|
|
240
241
|
// } catch (error) {
|
|
241
242
|
// console.error("Failed to mint social IpNFT:", error);
|
|
242
243
|
// return null;
|
|
243
244
|
// }
|
|
244
|
-
})),this.getOriginUploads=()=>c(this,void 0,void 0,(function*(){const e=yield fetch(`${
|
|
245
|
+
})),this.getOriginUploads=()=>c(this,void 0,void 0,(function*(){const e=yield fetch(`${M}/auth/origin/files`,{method:"GET",headers:{Authorization:`Bearer ${this.jwt}`}});if(!e.ok)return console.error("Failed to get origin uploads"),null;return(yield e.json()).data})),this.jwt=t,this.viemClient=n,
|
|
245
246
|
// DataNFT methods
|
|
246
|
-
this.mintWithSignature=
|
|
247
|
+
this.mintWithSignature=N.bind(this),this.registerIpNFT=U.bind(this),this.updateTerms=D.bind(this),this.requestDelete=B.bind(this),this.getTerms=_.bind(this),this.ownerOf=W.bind(this),this.balanceOf=R.bind(this),this.contentHash=q.bind(this),this.tokenURI=z.bind(this),this.dataStatus=L.bind(this),this.royaltyInfo=K.bind(this),this.getApproved=J.bind(this),this.isApprovedForAll=H.bind(this),this.transferFrom=G.bind(this),this.safeTransferFrom=V.bind(this),this.approve=Z.bind(this),this.setApprovalForAll=Y.bind(this),
|
|
247
248
|
// Marketplace methods
|
|
248
249
|
this.buyAccess=he.bind(this),this.renewAccess=me.bind(this),this.hasAccess=fe.bind(this),this.subscriptionExpiry=we.bind(this)}getJwt(){return this.jwt}setViemClient(e){this.viemClient=e}
|
|
249
250
|
/**
|
|
250
251
|
* Get the user's Origin stats (multiplier, consent, usage, etc.).
|
|
251
252
|
* @returns {Promise<OriginUsageReturnType>} A promise that resolves with the user's Origin stats.
|
|
252
|
-
*/getOriginUsage(){return c(this,void 0,void 0,(function*(){const e=yield fetch(`${
|
|
253
|
+
*/getOriginUsage(){return c(this,void 0,void 0,(function*(){const e=yield fetch(`${M}/auth/origin/usage`,{method:"GET",headers:{Authorization:`Bearer ${this.jwt}`,
|
|
253
254
|
// "x-client-id": this.clientId,
|
|
254
255
|
"Content-Type":"application/json"}}).then((e=>e.json()));if(!e.isError&&e.data.user)return e;throw new m(e.message||"Failed to fetch Origin usage")}))}
|
|
255
256
|
/**
|
|
@@ -257,7 +258,7 @@ this.buyAccess=he.bind(this),this.renewAccess=me.bind(this),this.hasAccess=fe.bi
|
|
|
257
258
|
* @param {boolean} consent The user's consent.
|
|
258
259
|
* @returns {Promise<void>}
|
|
259
260
|
* @throws {Error|APIError} - Throws an error if the user is not authenticated. Also throws an error if the consent is not provided.
|
|
260
|
-
*/setOriginConsent(e){return c(this,void 0,void 0,(function*(){if(void 0===e)throw new m("Consent is required");const t=yield fetch(`${
|
|
261
|
+
*/setOriginConsent(e){return c(this,void 0,void 0,(function*(){if(void 0===e)throw new m("Consent is required");const t=yield fetch(`${M}/auth/origin/status`,{method:"PATCH",headers:{Authorization:`Bearer ${this.jwt}`,
|
|
261
262
|
// "x-client-id": this.clientId,
|
|
262
263
|
"Content-Type":"application/json"},body:JSON.stringify({active:e})}).then((e=>e.json()));if(t.isError)throw new m(t.message||"Failed to set Origin consent")}))}
|
|
263
264
|
/**
|
|
@@ -265,7 +266,7 @@ this.buyAccess=he.bind(this),this.renewAccess=me.bind(this),this.hasAccess=fe.bi
|
|
|
265
266
|
* @param {number} multiplier The user's Origin multiplier.
|
|
266
267
|
* @returns {Promise<void>}
|
|
267
268
|
* @throws {Error|APIError} - Throws an error if the user is not authenticated. Also throws an error if the multiplier is not provided.
|
|
268
|
-
*/setOriginMultiplier(e){return c(this,void 0,void 0,(function*(){if(void 0===e)throw new m("Multiplier is required");const t=yield fetch(`${
|
|
269
|
+
*/setOriginMultiplier(e){return c(this,void 0,void 0,(function*(){if(void 0===e)throw new m("Multiplier is required");const t=yield fetch(`${M}/auth/origin/multiplier`,{method:"PATCH",headers:{Authorization:`Bearer ${this.jwt}`,
|
|
269
270
|
// "x-client-id": this.clientId,
|
|
270
271
|
"Content-Type":"application/json"},body:JSON.stringify({multiplier:e})}).then((e=>e.json()));if(t.isError)throw new m(t.message||"Failed to set Origin multiplier")}))}
|
|
271
272
|
/**
|
|
@@ -283,7 +284,7 @@ this.buyAccess=he.bind(this),this.renewAccess=me.bind(this),this.hasAccess=fe.bi
|
|
|
283
284
|
* @param {bigint} tokenId The token ID of the asset.
|
|
284
285
|
* @param {number} periods The number of periods to buy access for.
|
|
285
286
|
* @returns {Promise<any>} The result of the buyAccess call.
|
|
286
|
-
*/buyAccessSmart(e,t){return c(this,void 0,void 0,(function*(){if(!this.viemClient)throw new Error("WalletClient not connected.");const n=yield this.getTerms(e);if(!n)throw new Error("Failed to fetch terms for asset");const{price:i,paymentToken:a}=n;if(void 0===i||void 0===a)throw new Error("Terms missing price or paymentToken");const s=i*BigInt(t);if(a===d)return this.buyAccess(e,t,s);const o=yield this.viemClient.getAddress();return yield function(e){return c(this,arguments,void 0,(function*({walletClient:e,publicClient:t,tokenAddress:n,owner:i,spender:a,amount:s}){(yield t.readContract({address:n,abi:r,functionName:"allowance",args:[i,a]}))<s&&(yield e.writeContract({address:n,account:i,abi:r,functionName:"approve",args:[a,s],chain:I}))}))}({walletClient:this.viemClient,publicClient:C(),tokenAddress:a,owner:o,spender:O,amount:s}),this.buyAccess(e,t)}))}getData(e){return c(this,void 0,void 0,(function*(){const t=yield fetch(`${
|
|
287
|
+
*/buyAccessSmart(e,t){return c(this,void 0,void 0,(function*(){if(!this.viemClient)throw new Error("WalletClient not connected.");const n=yield this.getTerms(e);if(!n)throw new Error("Failed to fetch terms for asset");const{price:i,paymentToken:a}=n;if(void 0===i||void 0===a)throw new Error("Terms missing price or paymentToken");const s=i*BigInt(t);if(a===d)return this.buyAccess(e,t,s);const o=yield this.viemClient.getAddress();return yield function(e){return c(this,arguments,void 0,(function*({walletClient:e,publicClient:t,tokenAddress:n,owner:i,spender:a,amount:s}){(yield t.readContract({address:n,abi:r,functionName:"allowance",args:[i,a]}))<s&&(yield e.writeContract({address:n,account:i,abi:r,functionName:"approve",args:[a,s],chain:I}))}))}({walletClient:this.viemClient,publicClient:C(),tokenAddress:a,owner:o,spender:O,amount:s}),this.buyAccess(e,t)}))}getData(e){return c(this,void 0,void 0,(function*(){const t=yield fetch(`${M}/auth/origin/data/${e}`,{method:"GET",headers:{Authorization:`Bearer ${this.jwt}`,"Content-Type":"application/json"}});if(!t.ok)throw new Error("Failed to fetch data");return t.json()}))}}X=new WeakMap,ee=new WeakMap,Q=new WeakSet,te=function(e){return c(this,void 0,void 0,(function*(){if(!this.viemClient)throw new Error("WalletClient not connected.");for(;;){const t=yield this.viemClient.request({method:"eth_getTransactionReceipt",params:[e]});if(t&&t.blockNumber)return t;yield new Promise((e=>setTimeout(e,1e3)))}}))},ne=function(e){return c(this,void 0,void 0,(function*(){
|
|
287
288
|
// return;
|
|
288
289
|
if(!this.viemClient)throw new Error("WalletClient not connected.");let t=yield this.viemClient.request({method:"eth_chainId",params:[]});if("string"==typeof t&&(t=parseInt(t,16)),t!==e.id)try{yield this.viemClient.request({method:"wallet_switchEthereumChain",params:[{chainId:"0x"+BigInt(e.id).toString(16)}]})}catch(t){
|
|
289
290
|
// Unrecognized chain
|
|
@@ -293,7 +294,7 @@ if(4902!==t.code)throw t;yield this.viemClient.request({method:"wallet_addEthere
|
|
|
293
294
|
* @class
|
|
294
295
|
* @classdesc The Auth class is used to authenticate the user.
|
|
295
296
|
*/
|
|
296
|
-
class
|
|
297
|
+
class ve{
|
|
297
298
|
/**
|
|
298
299
|
* Constructor for the Auth class.
|
|
299
300
|
* @param {object} options The options object.
|
|
@@ -328,7 +329,7 @@ this.redirectUri=(e=>{const t=["twitter","discord","spotify"];return"object"==ty
|
|
|
328
329
|
* @param {object} options The options object. Includes the provider and the provider info.
|
|
329
330
|
* @returns {void}
|
|
330
331
|
* @throws {APIError} - Throws an error if the provider is not provided.
|
|
331
|
-
*/setProvider({provider:e,info:i,address:a}){if(!e)throw new m("provider is required");this.viem=((e,i="window.ethereum",a)=>{var r;if(!e&&!k)return console.warn("Provider is required to create a client."),null;if(!k||k.transport.name!==i&&e||a!==(null===(r=k.account)||void 0===r?void 0:r.address)&&e){const r={chain:I,transport:t(e,{name:i})};a&&(r.account=
|
|
332
|
+
*/setProvider({provider:e,info:i,address:a}){if(!e)throw new m("provider is required");this.viem=((e,i="window.ethereum",a)=>{var r;if(!e&&!k)return console.warn("Provider is required to create a client."),null;if(!k||k.transport.name!==i&&e||a!==(null===(r=k.account)||void 0===r?void 0:r.address)&&e){const r={chain:I,transport:t(e,{name:i})};a&&(r.account=p(a)),k=n(r)}return k})(e,i.name,a),this.origin&&this.origin.setViemClient(this.viem),
|
|
332
333
|
// TODO: only use one of these
|
|
333
334
|
y(this,ie,"m",se).call(this,"viem",this.viem),y(this,ie,"m",se).call(this,"provider",{provider:e,info:i})}
|
|
334
335
|
/**
|
|
@@ -344,7 +345,7 @@ y(this,ie,"m",se).call(this,"viem",this.viem),y(this,ie,"m",se).call(this,"provi
|
|
|
344
345
|
* Connect the user's wallet and sign the message.
|
|
345
346
|
* @returns {Promise<{ success: boolean; message: string; walletAddress: string }>} A promise that resolves with the authentication result.
|
|
346
347
|
* @throws {APIError} - Throws an error if the user cannot be authenticated.
|
|
347
|
-
*/connect(){return c(this,void 0,void 0,(function*(){y(this,ie,"m",se).call(this,"state","loading");try{this.walletAddress||(yield y(this,ie,"m",de).call(this)),this.walletAddress=u(this.walletAddress);const e=yield y(this,ie,"m",ue).call(this),t=y(this,ie,"m",
|
|
348
|
+
*/connect(){return c(this,void 0,void 0,(function*(){y(this,ie,"m",se).call(this,"state","loading");try{this.walletAddress||(yield y(this,ie,"m",de).call(this)),this.walletAddress=u(this.walletAddress);const e=yield y(this,ie,"m",ue).call(this),t=y(this,ie,"m",le).call(this,e),n=yield this.viem.signMessage({account:this.walletAddress,message:t}),i=yield y(this,ie,"m",pe).call(this,t,n);if(i.success)return this.isAuthenticated=!0,this.userId=i.userId,this.jwt=i.token,this.origin=new Te(this.jwt,this.viem),localStorage.setItem("camp-sdk:jwt",this.jwt),localStorage.setItem("camp-sdk:wallet-address",this.walletAddress),localStorage.setItem("camp-sdk:user-id",this.userId),y(this,ie,"m",se).call(this,"state","authenticated"),yield y(this,ie,"m",ce).call(this,x.USER_CONNECTED,"User Connected"),{success:!0,message:"Successfully authenticated",walletAddress:this.walletAddress};throw this.isAuthenticated=!1,y(this,ie,"m",se).call(this,"state","unauthenticated"),new m("Failed to authenticate")}catch(e){throw this.isAuthenticated=!1,y(this,ie,"m",se).call(this,"state","unauthenticated"),new m(e)}}))}
|
|
348
349
|
/**
|
|
349
350
|
* Get the user's linked social accounts.
|
|
350
351
|
* @returns {Promise<Record<string, boolean>>} A promise that resolves with the user's linked social accounts.
|
|
@@ -353,7 +354,7 @@ y(this,ie,"m",se).call(this,"viem",this.viem),y(this,ie,"m",se).call(this,"provi
|
|
|
353
354
|
* const auth = new Auth({ clientId: "your-client-id" });
|
|
354
355
|
* const socials = await auth.getLinkedSocials();
|
|
355
356
|
* console.log(socials);
|
|
356
|
-
*/getLinkedSocials(){return c(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");const e=yield fetch(`${
|
|
357
|
+
*/getLinkedSocials(){return c(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");const e=yield fetch(`${M}/auth/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 m(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}}))}
|
|
357
358
|
/**
|
|
358
359
|
* Link the user's Twitter account.
|
|
359
360
|
* @returns {Promise<void>}
|
|
@@ -363,7 +364,7 @@ y(this,ie,"m",se).call(this,"viem",this.viem),y(this,ie,"m",se).call(this,"provi
|
|
|
363
364
|
// constants.ACKEE_EVENTS.TWITTER_LINKED,
|
|
364
365
|
// "Twitter Linked"
|
|
365
366
|
// );
|
|
366
|
-
window.location.href=`${
|
|
367
|
+
window.location.href=`${M}/twitter/connect?clientId=${this.clientId}&userId=${this.userId}&redirect_url=${this.redirectUri.twitter}`}))}
|
|
367
368
|
/**
|
|
368
369
|
* Link the user's Discord account.
|
|
369
370
|
* @returns {Promise<void>}
|
|
@@ -373,7 +374,7 @@ window.location.href=`${x}/twitter/connect?clientId=${this.clientId}&userId=${th
|
|
|
373
374
|
// constants.ACKEE_EVENTS.DISCORD_LINKED,
|
|
374
375
|
// "Discord Linked"
|
|
375
376
|
// );
|
|
376
|
-
window.location.href=`${
|
|
377
|
+
window.location.href=`${M}/discord/connect?clientId=${this.clientId}&userId=${this.userId}&redirect_url=${this.redirectUri.discord}`}))}
|
|
377
378
|
/**
|
|
378
379
|
* Link the user's Spotify account.
|
|
379
380
|
* @returns {Promise<void>}
|
|
@@ -383,19 +384,19 @@ window.location.href=`${x}/discord/connect?clientId=${this.clientId}&userId=${th
|
|
|
383
384
|
// constants.ACKEE_EVENTS.SPOTIFY_LINKED,
|
|
384
385
|
// "Spotify Linked"
|
|
385
386
|
// );
|
|
386
|
-
window.location.href=`${
|
|
387
|
+
window.location.href=`${M}/spotify/connect?clientId=${this.clientId}&userId=${this.userId}&redirect_url=${this.redirectUri.spotify}`}))}
|
|
387
388
|
/**
|
|
388
389
|
* Link the user's TikTok account.
|
|
389
390
|
* @param {string} handle The user's TikTok handle.
|
|
390
391
|
* @returns {Promise<any>} A promise that resolves with the TikTok account data.
|
|
391
392
|
* @throws {Error|APIError} - Throws an error if the user is not authenticated.
|
|
392
|
-
*/linkTikTok(e){return c(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");const t=yield fetch(`${
|
|
393
|
+
*/linkTikTok(e){return c(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");const t=yield fetch(`${M}/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 m("TikTok service is currently unavailable, try again later"):new m(t.message||"Failed to link TikTok account");return y(this,ie,"m",ce).call(this,x.TIKTOK_LINKED,"TikTok Linked"),t.data}))}
|
|
393
394
|
/**
|
|
394
395
|
* Send an OTP to the user's Telegram account.
|
|
395
396
|
* @param {string} phoneNumber The user's phone number.
|
|
396
397
|
* @returns {Promise<any>} A promise that resolves with the OTP data.
|
|
397
398
|
* @throws {Error|APIError} - Throws an error if the user is not authenticated.
|
|
398
|
-
*/sendTelegramOTP(e){return c(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");if(!e)throw new m("Phone number is required");yield this.unlinkTelegram();const t=yield fetch(`${
|
|
399
|
+
*/sendTelegramOTP(e){return c(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");if(!e)throw new m("Phone number is required");yield this.unlinkTelegram();const t=yield fetch(`${M}/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 m(t.message||"Failed to send Telegram OTP");return t.data}))}
|
|
399
400
|
/**
|
|
400
401
|
* Link the user's Telegram account.
|
|
401
402
|
* @param {string} phoneNumber The user's phone number.
|
|
@@ -403,37 +404,37 @@ window.location.href=`${x}/spotify/connect?clientId=${this.clientId}&userId=${th
|
|
|
403
404
|
* @param {string} phoneCodeHash The phone code hash.
|
|
404
405
|
* @returns {Promise<object>} A promise that resolves with the Telegram account data.
|
|
405
406
|
* @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.
|
|
406
|
-
*/linkTelegram(e,t,n){return c(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");if(!e||!t||!n)throw new m("Phone number, OTP, and phone code hash are required");const i=yield fetch(`${
|
|
407
|
+
*/linkTelegram(e,t,n){return c(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");if(!e||!t||!n)throw new m("Phone number, OTP, and phone code hash are required");const i=yield fetch(`${M}/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 m(i.message||"Failed to link Telegram account");return y(this,ie,"m",ce).call(this,x.TELEGRAM_LINKED,"Telegram Linked"),i.data}))}
|
|
407
408
|
/**
|
|
408
409
|
* Unlink the user's Twitter account.
|
|
409
410
|
* @returns {Promise<any>} A promise that resolves with the unlink result.
|
|
410
411
|
* @throws {Error} - Throws an error if the user is not authenticated.
|
|
411
412
|
* @throws {APIError} - Throws an error if the request fails.
|
|
412
|
-
*/unlinkTwitter(){return c(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");const e=yield fetch(`${
|
|
413
|
+
*/unlinkTwitter(){return c(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new Error("User needs to be authenticated");const e=yield fetch(`${M}/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 m(e.message||"Failed to unlink Twitter account");return e.data}))}
|
|
413
414
|
/**
|
|
414
415
|
* Unlink the user's Discord account.
|
|
415
416
|
* @returns {Promise<any>} A promise that resolves with the unlink result.
|
|
416
417
|
* @throws {Error} - Throws an error if the user is not authenticated.
|
|
417
418
|
* @throws {APIError} - Throws an error if the request fails.
|
|
418
|
-
*/unlinkDiscord(){return c(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new m("User needs to be authenticated");const e=yield fetch(`${
|
|
419
|
+
*/unlinkDiscord(){return c(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new m("User needs to be authenticated");const e=yield fetch(`${M}/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 m(e.message||"Failed to unlink Discord account");return e.data}))}
|
|
419
420
|
/**
|
|
420
421
|
* Unlink the user's Spotify account.
|
|
421
422
|
* @returns {Promise<any>} A promise that resolves with the unlink result.
|
|
422
423
|
* @throws {Error} - Throws an error if the user is not authenticated.
|
|
423
424
|
* @throws {APIError} - Throws an error if the request fails.
|
|
424
|
-
*/unlinkSpotify(){return c(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new m("User needs to be authenticated");const e=yield fetch(`${
|
|
425
|
+
*/unlinkSpotify(){return c(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new m("User needs to be authenticated");const e=yield fetch(`${M}/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 m(e.message||"Failed to unlink Spotify account");return e.data}))}
|
|
425
426
|
/**
|
|
426
427
|
* Unlink the user's TikTok account.
|
|
427
428
|
* @returns {Promise<any>} A promise that resolves with the unlink result.
|
|
428
429
|
* @throws {Error} - Throws an error if the user is not authenticated.
|
|
429
430
|
* @throws {APIError} - Throws an error if the request fails.
|
|
430
|
-
*/unlinkTikTok(){return c(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new m("User needs to be authenticated");const e=yield fetch(`${
|
|
431
|
+
*/unlinkTikTok(){return c(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new m("User needs to be authenticated");const e=yield fetch(`${M}/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 m(e.message||"Failed to unlink TikTok account");return e.data}))}
|
|
431
432
|
/**
|
|
432
433
|
* Unlink the user's Telegram account.
|
|
433
434
|
* @returns {Promise<any>} A promise that resolves with the unlink result.
|
|
434
435
|
* @throws {Error} - Throws an error if the user is not authenticated.
|
|
435
436
|
* @throws {APIError} - Throws an error if the request fails.
|
|
436
|
-
*/unlinkTelegram(){return c(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new m("User needs to be authenticated");const e=yield fetch(`${
|
|
437
|
+
*/unlinkTelegram(){return c(this,void 0,void 0,(function*(){if(!this.isAuthenticated)throw new m("User needs to be authenticated");const e=yield fetch(`${M}/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 m(e.message||"Failed to unlink Telegram account");return e.data}))}}ae=new WeakMap,re=new WeakMap,ie=new WeakSet,se=function(e,t){y(this,ae,"f")[e]&&y(this,ae,"f")[e].forEach((e=>e(t)))},oe=function(e){return c(this,void 0,void 0,(function*(){if("undefined"==typeof localStorage)return;const t=null===localStorage||void 0===localStorage?void 0:localStorage.getItem("camp-sdk:wallet-address"),n=null===localStorage||void 0===localStorage?void 0:localStorage.getItem("camp-sdk:user-id"),i=null===localStorage||void 0===localStorage?void 0:localStorage.getItem("camp-sdk:jwt");t&&n&&i?(this.walletAddress=t,this.userId=n,this.jwt=i,this.origin=new Te(this.jwt),this.isAuthenticated=!0,
|
|
437
438
|
/*
|
|
438
439
|
let selectedProvider = provider;
|
|
439
440
|
|
|
@@ -454,8 +455,8 @@ window.location.href=`${x}/spotify/connect?clientId=${this.clientId}&userId=${th
|
|
|
454
455
|
}
|
|
455
456
|
}
|
|
456
457
|
*/
|
|
457
|
-
e&&this.setProvider({provider:e.provider,info:e.info||{name:"Unknown"},address:t})):this.isAuthenticated=!1}))},de=function(){return c(this,void 0,void 0,(function*(){try{const[e]=yield this.viem.requestAddresses();return this.walletAddress=u(e),this.walletAddress}catch(e){throw new m(e)}}))},ue=function(){return c(this,void 0,void 0,(function*(){try{const e=yield fetch(`${
|
|
458
|
+
e&&this.setProvider({provider:e.provider,info:e.info||{name:"Unknown"},address:t})):this.isAuthenticated=!1}))},de=function(){return c(this,void 0,void 0,(function*(){try{const[e]=yield this.viem.requestAddresses();return this.walletAddress=u(e),this.walletAddress}catch(e){throw new m(e)}}))},ue=function(){return c(this,void 0,void 0,(function*(){try{const e=yield fetch(`${M}/auth/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)}}))},pe=function(e,t){return c(this,void 0,void 0,(function*(){try{const n=yield fetch(`${M}/auth/client-user/verify`,{method:"POST",headers:{"Content-Type":"application/json","x-client-id":this.clientId},body:JSON.stringify({message:e,signature:t,walletAddress:this.walletAddress})}),i=yield n.json(),a=i.data.split(".")[1],r=JSON.parse(atob(a));return{success:!i.isError,userId:r.id,token:i.data}}catch(e){throw new m(e)}}))},le=function(e){return l({domain:window.location.host,address:this.walletAddress,statement:E,uri:window.location.origin,version:"1",chainId:this.viem.chain.id,nonce:e})},ce=function(e,t){return c(this,arguments,void 0,(function*(e,t,n=1){
|
|
458
459
|
// if (this.#ackeeInstance)
|
|
459
460
|
// await sendAnalyticsEvent(this.#ackeeInstance, event, message, count);
|
|
460
461
|
// else return;
|
|
461
|
-
}))};export{
|
|
462
|
+
}))};export{ve as Auth,g as SpotifyAPI,b as TwitterAPI};
|
|
@@ -36,6 +36,7 @@ type IpNFTSource = "spotify" | "twitter" | "tiktok" | "file";
|
|
|
36
36
|
* Mints a Data NFT with a signature.
|
|
37
37
|
* @param to The address to mint the NFT to.
|
|
38
38
|
* @param tokenId The ID of the token to mint.
|
|
39
|
+
* @param parentId The ID of the parent NFT, if applicable.
|
|
39
40
|
* @param hash The hash of the data associated with the NFT.
|
|
40
41
|
* @param uri The URI of the NFT metadata.
|
|
41
42
|
* @param licenseTerms The terms of the license for the NFT.
|
|
@@ -43,7 +44,7 @@ type IpNFTSource = "spotify" | "twitter" | "tiktok" | "file";
|
|
|
43
44
|
* @param signature The signature for the minting operation.
|
|
44
45
|
* @returns A promise that resolves when the minting is complete.
|
|
45
46
|
*/
|
|
46
|
-
declare function mintWithSignature(this: Origin, to: Address, tokenId: bigint, hash: Hex, uri: string, licenseTerms: LicenseTerms, deadline: bigint, signature: Hex): Promise<any>;
|
|
47
|
+
declare function mintWithSignature(this: Origin, to: Address, tokenId: bigint, parentId: bigint, hash: Hex, uri: string, licenseTerms: LicenseTerms, deadline: bigint, signature: Hex): Promise<any>;
|
|
47
48
|
/**
|
|
48
49
|
* Registers a Data NFT with the Origin service in order to obtain a signature for minting.
|
|
49
50
|
* @param source The source of the Data NFT (e.g., "spotify", "twitter", "tiktok", or "file").
|
|
@@ -51,7 +52,7 @@ declare function mintWithSignature(this: Origin, to: Address, tokenId: bigint, h
|
|
|
51
52
|
* @param fileKey Optional file key for file uploads.
|
|
52
53
|
* @return A promise that resolves with the registration data.
|
|
53
54
|
*/
|
|
54
|
-
declare function registerIpNFT(this: Origin, source: IpNFTSource, deadline: bigint, licenseTerms: LicenseTerms, fileKey?: string | string[]): Promise<any>;
|
|
55
|
+
declare function registerIpNFT(this: Origin, source: IpNFTSource, deadline: bigint, licenseTerms: LicenseTerms, metadata: Record<string, unknown>, fileKey?: string | string[], parentId?: bigint): Promise<any>;
|
|
55
56
|
|
|
56
57
|
declare function updateTerms(this: Origin, tokenId: bigint, newTerms: LicenseTerms): Promise<any>;
|
|
57
58
|
|
|
@@ -140,7 +141,7 @@ declare class Origin {
|
|
|
140
141
|
uploadFile: (file: File, options?: {
|
|
141
142
|
progressCallback?: (percent: number) => void;
|
|
142
143
|
}) => Promise<any>;
|
|
143
|
-
mintFile: (file: File, license: LicenseTerms, options?: {
|
|
144
|
+
mintFile: (file: File, metadata: Record<string, unknown>, license: LicenseTerms, parentId?: bigint, options?: {
|
|
144
145
|
progressCallback?: (percent: number) => void;
|
|
145
146
|
}) => Promise<string | null>;
|
|
146
147
|
mintSocial: (source: "spotify" | "twitter" | "tiktok", license: LicenseTerms) => Promise<string | null>;
|