88 SearchQuery ,
99 ClientError ,
1010 QueryResult ,
11- NeverminedNFT721Type ,
1211 AccountModule ,
1312 AssetsModule ,
1413 ContractEventSubscription ,
@@ -22,7 +21,7 @@ import {
2221 SubscribeModule ,
2322 TransferNFTConditionMethod ,
2423 BigNumber ,
25- PublishedSubscriptions
24+ SubscriptionsAndServicesDDOs
2625} from './types'
2726import {
2827 conductOrder ,
@@ -31,6 +30,7 @@ import {
3130 loadFulfilledEvents ,
3231 getAgreementId ,
3332 handlePostRequest ,
33+ getSubscriptionsAndServices ,
3434} from './utils'
3535import { _getCryptoConfig , _getDTPInstance , _grantAccess } from './utils/dtp'
3636import { getAddressTokenSigner , isTokenValid , newMarketplaceApiToken } from './utils/marketplace_token'
@@ -206,65 +206,28 @@ export const NeverminedProvider = ({ children, config, verbose }: NeverminedProv
206206 }
207207 } ,
208208
209- getPublishedSubscriptions : async ( address : string ) : Promise < PublishedSubscriptions [ ] > => {
209+ getPublishedSubscriptions : async ( ) : Promise < SubscriptionsAndServicesDDOs [ ] > => {
210210 try {
211- const publishedAssets = await account . getReleases ( address )
212-
213- const subscriptions = await Promise . all (
214- publishedAssets . map ( async ( a ) => {
215- try {
216- const subscriptionDDO = await assets . findOne ( a )
217-
218- if ( ! subscriptionDDO ) {
219- return undefined
220- }
221-
222- const metadata = subscriptionDDO ?. findServiceByType ( 'metadata' )
223- const isNFTSales = subscriptionDDO ?. findServiceByType ( 'nft-sales' )
224-
225- if ( ! metadata || ! isNFTSales || metadata . attributes . main . nftType !== NeverminedNFT721Type . nft721Subscription ) {
226- return undefined
227- }
228-
229- const nftInfo = await sdk . keeper . didRegistry . getNFTInfo ( subscriptionDDO . id ) as string [ ]
230-
231- const services = await Promise . all ( publishedAssets . map ( async ( p ) => {
232- try {
233- const serviceDDO = await assets . findOne ( p )
234-
235- const metadata = serviceDDO ?. findServiceByType ( 'metadata' )
236- const isNFTAccess = serviceDDO ?. findServiceByType ( 'nft-access' )
237-
238- const nftServiceInfo = await sdk . keeper . didRegistry . getNFTInfo ( serviceDDO . id ) as string [ ]
239-
240- if ( ! metadata || ! isNFTAccess || metadata . attributes . main . nftType !== NeverminedNFT721Type . nft721Subscription || nftServiceInfo [ 0 ] !== nftInfo [ 0 ] ) {
241- return undefined
242- }
243-
244- return serviceDDO
245-
246- } catch ( _error ) {
247- return undefined
248- }
249- } ) )
250-
251- return {
252- subscription : subscriptionDDO ,
253- services : services . filter ( service => Boolean ( service ) )
254- }
255- } catch ( _error ) {
256- return undefined
257- }
258- } )
259- )
260-
261- return subscriptions . filter ( ddo => Boolean ( ddo ) ) as PublishedSubscriptions [ ]
211+ const account = await getCurrentAccount ( sdk )
212+ const query = await sdk . search . subscriptionsCreated ( account )
213+ return getSubscriptionsAndServices ( query . results , sdk )
214+ } catch ( error ) {
215+ verbose && Logger . error ( error )
216+ return [ ]
217+ }
218+ } ,
262219
220+ getPurchasedSubscriptions : async ( ) : Promise < SubscriptionsAndServicesDDOs [ ] > => {
221+ try {
222+ const account = await getCurrentAccount ( sdk )
223+ const query = await sdk . search . subscriptionsPurchased ( account )
224+ return getSubscriptionsAndServices ( query . results , sdk )
263225 } catch ( error ) {
264226 verbose && Logger . error ( error )
265227 return [ ]
266228 }
267229 } ,
230+
268231 isAssetHolder : async (
269232 did : string ,
270233 walletAddress : string ,
0 commit comments