Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: update to support 2 subscription addresses #691

Merged
merged 17 commits into from
Jul 16, 2024
Merged
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@nevermined-io/sdk",
"version": "3.0.17",
"version": "3.0.18-rc0",
"description": "Javascript SDK for connecting with Nevermined Data Platform ",
"main": "./dist/node/sdk.js",
"typings": "./dist/node/sdk.d.ts",
Expand Down
34 changes: 14 additions & 20 deletions src/nevermined/NvmApp.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { SmartAccountSigner } from 'permissionless/accounts'
import { NETWORK_FEE_DENOMINATOR } from '../constants/AssetConstants'
import { DDO } from '../ddo/DDO'
import { Web3Error } from '../errors/NeverminedErrors'
import { ContractHandler } from '../keeper/ContractHandler'
import { AssetPrice } from '../models/AssetPrice'
import { NFTAttributes } from '../models/NFTAttributes'
import { NeverminedOptions } from '../models/NeverminedOptions'
Expand All @@ -28,7 +28,6 @@ import { CreateProgressStep, OrderProgressStep, UpdateProgressStep } from './Pro
import { SearchApi } from './api/SearchApi'
import { ServicesApi } from './api/ServicesApi'
import { createKernelClient, isValidAddress } from './utils/BlockchainViemUtils'
import { SmartAccountSigner } from 'permissionless/accounts'

export enum NVMAppEnvironments {
Staging = 'staging',
Expand Down Expand Up @@ -71,7 +70,8 @@ export class NvmApp {
private zeroDevSignerAccount: SmartAccountSigner<'custom', `0x${string}`> | undefined
public assetProviders: string[] = []
private loginCredentials: string | undefined
private subscriptionNFTContractAddress: string | undefined
private subscriptionNFTContractTimeAddress: string | undefined
private subscriptionNFTContractCredtisAddress: string | undefined
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo

private networkFeeReceiver: string | undefined
private networkFee: bigint | undefined

Expand Down Expand Up @@ -184,21 +184,17 @@ export class NvmApp {
const nodeInfo = await this.fullSDK.services.node.getNeverminedNodeInfo()
this.assetProviders = [nodeInfo['provider-address']]

if (!isValidAddress(this.configNVM.nftContractAddress as string)) {
const contractABI = await ContractHandler.getABIArtifact(
'NFT1155SubscriptionUpgradeable',
this.configNVM.artifactsFolder,
await this.fullSDK.keeper.getNetworkName(),
this.configNVM.chainId,
)
this.subscriptionNFTContractAddress = contractABI.address
} else {
this.subscriptionNFTContractAddress = this.configNVM.nftContractAddress
this.subscriptionNFTContractTimeAddress = this.configNVM.nftContractTimeAddress
this.subscriptionNFTContractCredtisAddress = this.configNVM.nftContractCreditsAddress

if (!isValidAddress(this.subscriptionNFTContractTimeAddress as string)) {
throw new Web3Error('Invalid Subscription NFT contract time address')
}
if (!isValidAddress(this.subscriptionNFTContractAddress as string)) {
throw new Web3Error('Invalid Subscription NFT contract address')
if (!isValidAddress(this.subscriptionNFTContractCredtisAddress as string)) {
throw new Web3Error('Invalid Subscription NFT contract credits address')
}
this.sdk.contracts.loadNft1155(this.subscriptionNFTContractAddress as string)
this.sdk.contracts.loadNft1155(this.subscriptionNFTContractTimeAddress as string)
this.sdk.contracts.loadNft1155(this.subscriptionNFTContractCredtisAddress as string)
this.networkFeeReceiver = await this.fullSDK.keeper.nvmConfig.getFeeReceiver()
this.networkFee = await this.fullSDK.keeper.nvmConfig.getNetworkFee()
return {
Expand Down Expand Up @@ -325,7 +321,7 @@ export class NvmApp {
},
],
providers: this.assetProviders,
nftContractAddress: this.subscriptionNFTContractAddress,
nftContractAddress: this.subscriptionNFTContractTimeAddress,
preMint: false,
})

Expand Down Expand Up @@ -397,7 +393,7 @@ export class NvmApp {
},
],
providers: this.assetProviders,
nftContractAddress: this.subscriptionNFTContractAddress,
nftContractAddress: this.subscriptionNFTContractCredtisAddress,
preMint: false,
})

Expand Down Expand Up @@ -714,7 +710,6 @@ export class NvmApp {
},
],
providers: this.assetProviders,
nftContractAddress: this.subscriptionNFTContractAddress,
preMint: false,
})

Expand Down Expand Up @@ -782,7 +777,6 @@ export class NvmApp {
},
],
providers: this.assetProviders,
nftContractAddress: this.subscriptionNFTContractAddress,
preMint: false,
})

Expand Down
30 changes: 20 additions & 10 deletions src/nevermined/resources/AppNetworks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ import { NeverminedOptions } from '../../models'

export class NeverminedAppOptions extends NeverminedOptions {
instanceName: string
nftContractAddress?: string
nftContractTimeAddress?: string
nftContractCreditsAddress?: string
tokenAddress?: string // ERC-20 token address or zero address (0x000..) for native token
}

Expand All @@ -18,7 +19,8 @@ export class AppDeploymentLocal extends NeverminedAppOptions {
verbose = true
gasMultiplier = 0
gasPriceMultiplier = 0
nftContractAddress = undefined
nftContractTimeAddress = undefined
nftContractCreditsAddress = undefined
}

export class AppDeploymentStaging extends NeverminedAppOptions {
Expand All @@ -33,7 +35,8 @@ export class AppDeploymentStaging extends NeverminedAppOptions {
verbose = true
gasMultiplier = 0
gasPriceMultiplier = 0
nftContractAddress = undefined
nftContractTimeAddress = undefined
nftContractCreditsAddress = undefined
tokenAddress = '0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d'
}

Expand All @@ -49,7 +52,8 @@ export class AppDeploymentTesting extends NeverminedAppOptions {
verbose = true
gasMultiplier = 0
gasPriceMultiplier = 0
nftContractAddress = undefined
nftContractTimeAddress = undefined
nftContractCreditsAddress = undefined
tokenAddress = '0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d'
}

Expand All @@ -65,7 +69,8 @@ export class AppDeploymentArbitrum extends NeverminedAppOptions {
verbose = true
gasMultiplier = 0
gasPriceMultiplier = 0
nftContractAddress = undefined
nftContractTimeAddress = undefined
nftContractCreditsAddress = undefined
tokenAddress = '0xaf88d065e77c8cC2239327C5EDb3A432268e5831'
}

Expand All @@ -81,7 +86,8 @@ export class AppDeploymentGnosis extends NeverminedAppOptions {
verbose = true
gasMultiplier = 0
gasPriceMultiplier = 0
nftContractAddress = undefined
nftContractTimeAddress = undefined
nftContractCreditsAddress = undefined
tokenAddress = '0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83'
}

Expand All @@ -97,7 +103,8 @@ export class AppDeploymentMatic extends NeverminedAppOptions {
verbose = true
gasMultiplier = 1.2
gasPriceMultiplier = 1.2
nftContractAddress = undefined
nftContractTimeAddress = undefined
nftContractCreditsAddress = undefined
tokenAddress = '0x2791bca1f2de4661ed88a30c99a7a9449aa84174'
}

Expand All @@ -113,7 +120,8 @@ export class AppDeploymentBase extends NeverminedAppOptions {
verbose = true
gasMultiplier = 0
gasPriceMultiplier = 0
nftContractAddress = undefined
nftContractTimeAddress = undefined
nftContractCreditsAddress = undefined
tokenAddress = '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
}

Expand All @@ -129,7 +137,8 @@ export class AppDeploymentCelo extends NeverminedAppOptions {
verbose = true
gasMultiplier = 0
gasPriceMultiplier = 0
nftContractAddress = undefined
nftContractTimeAddress = undefined
nftContractCreditsAddress = undefined
tokenAddress = '0xef4229c8c3250C675F21BCefa42f58EfbfF6002a'
}

Expand All @@ -145,6 +154,7 @@ export class AppDeploymentOptimism extends NeverminedAppOptions {
verbose = true
gasMultiplier = 0
gasPriceMultiplier = 0
nftContractAddress = undefined
nftContractTimeAddress = undefined
nftContractCreditsAddress = undefined
tokenAddress = '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85'
}
Loading