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 session keys permissionless v7 DON'T MERGE #663

Draft
wants to merge 16 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file. Dates are d

Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).

<<<<<<< feat/update-session-keys
=======
#### [v3.0.6](https://github.com/nevermined-io/sdk-js/compare/v3.0.6-rc2...v3.0.6)

> 14 May 2024
Expand All @@ -25,6 +27,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).

- feat: revert to permissionless v6 [`e860516`](https://github.com/nevermined-io/sdk-js/commit/e860516b2d35b8fce7414e5782f00d89ca230b67)

>>>>>>> main
#### [v3.0.6-rc0](https://github.com/nevermined-io/sdk-js/compare/v3.0.5...v3.0.6-rc0)

> 14 May 2024
Expand Down
167 changes: 91 additions & 76 deletions integration/external/Zerodev.test.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
// TODO: Enable when ZeroDev is ready
// import { verifyMessage } from '@ambire/signature-validator'
// import { assert } from 'chai'
import { assert } from 'chai'
// import { ethers } from 'ethers'
// import * as fs from 'fs'
// import { decodeJwt } from 'jose'
import { createPublicClient, http } from 'viem'
import { createPublicClient, http, parseAbi } from 'viem'
import { arbitrumSepolia } from 'viem/chains'
import {
// AssetAttributes,
Expand All @@ -15,19 +15,20 @@ import {
// NFTAttributes,
Nevermined,
// NeverminedNFT1155Type,
// NvmAccount,
NvmAccount,
// PublishMetadataOptions,
// ServiceAttributes,
// SubscriptionType,
// makeRandomWallet,
makeRandomWallet,
} from '../../src'
// import { DDO } from '../../src/ddo'
import {
// createKernelClient,
// createSessionKey,
createSessionKey,
getSessionKey,
} from '../../src/nevermined/utils/BlockchainViemUtils'
import { config } from '../config'
import { toECDSASigner } from '@zerodev/permissions/signers'
// import { getMetadata } from '../utils'

describe('Nevermined sdk with zerodev', () => {
Expand Down Expand Up @@ -277,59 +278,72 @@ describe('Nevermined sdk with zerodev', () => {

describe('Test zerodev sessionKeys', () => {
// let kernelClient: any // TODO: KernelAccountClient<any, any, any, any>
// const contractAddress = '0x93605C644181f3dD03A37228528649A76822Fcf1' as '0x{string}' // DIDRegistry address
const contractAddress = '0x93605C644181f3dD03A37228528649A76822Fcf1' as '0x{string}' // DIDRegistry address

// const owner = makeRandomWallet()
const owner = makeRandomWallet()

it('should generate a session key', async () => {
// const permissions = [
// {
// target: contractAddress,
// abi: parseAbi([
// 'function registerMintableDID(bytes32 _didSeed, address _nftContractAddress, bytes32 _checksum, address[] memory _providers, string memory _url, uint256 _cap, uint256 _royalties, bool _mint, bytes32 _activityId, string memory _nftMetadata, string memory _immutableUrl) public',
// ]),
// functionName: 'registerMintableDID',
// },
// {
// target: contractAddress,
// abi: parseAbi([
// 'function registerMintableDID(bytes32 _didSeed,address _nftContractAddress,bytes32 _checksum,address[] memory _providers,string memory _url,uint256 _cap,uint256 _royalties,bytes32 _activityId,string memory _nftMetadata,string memory _immutableUrl) public',
// ]),
// functionName: 'registerMintableDID',
// },
// {
// target: '0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d' as `0x${string}`,
// abi: parseAbi([
// 'function approve(address spender, uint256 amount) external returns (bool)',
// ]),
// functionName: 'approve',
// },
// {
// target: '0x1c52ed414EDd1bCC20Ea670d42289e8bFC03C095',
// abi: parseAbi([
// 'function createAgreementAndPayEscrow(bytes32 _id, bytes32 _did, bytes32[] _conditionIds, uint256[] _timeLocks, uint256[] _timeOuts, address _accessConsumer, uint256 _idx, address _rewardAddress, address _tokenAddress, uint256[] _amounts, address[] _receivers) public',
// ]),
// functionName: 'createAgreementAndPayEscrow',
// },
// {
// target: '0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d' as `0x${string}`,
// abi: parseAbi(['function transfer(address to, uint amount) returns (bool)']),
// functionName: 'transfer',
// },
// ]
// const sessionKey = await createSessionKey(owner, publicClient, permissions)
// assert.isDefined(sessionKey)
const sessionKey =
'eyJzZXNzaW9uS2V5UGFyYW1zIjp7InBheW1hc3RlciI6IjB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMSIsInZhbGlkQWZ0ZXIiOjAsInZhbGlkVW50aWwiOjAsInBlcm1pc3Npb25zIjpbeyJ0YXJnZXQiOiIweDkzNjA1QzY0NDE4MWYzZEQwM0EzNzIyODUyODY0OUE3NjgyMkZjZjEiLCJhYmkiOlt7Im5hbWUiOiJyZWdpc3Rlck1pbnRhYmxlRElEIiwidHlwZSI6ImZ1bmN0aW9uIiwic3RhdGVNdXRhYmlsaXR5Ijoibm9ucGF5YWJsZSIsImlucHV0cyI6W3sidHlwZSI6ImJ5dGVzMzIiLCJuYW1lIjoiX2RpZFNlZWQifSx7InR5cGUiOiJhZGRyZXNzIiwibmFtZSI6Il9uZnRDb250cmFjdEFkZHJlc3MifSx7InR5cGUiOiJieXRlczMyIiwibmFtZSI6Il9jaGVja3N1bSJ9LHsidHlwZSI6ImFkZHJlc3NbXSIsIm5hbWUiOiJfcHJvdmlkZXJzIn0seyJ0eXBlIjoic3RyaW5nIiwibmFtZSI6Il91cmwifSx7InR5cGUiOiJ1aW50MjU2IiwibmFtZSI6Il9jYXAifSx7InR5cGUiOiJ1aW50MjU2IiwibmFtZSI6Il9yb3lhbHRpZXMifSx7InR5cGUiOiJib29sIiwibmFtZSI6Il9taW50In0seyJ0eXBlIjoiYnl0ZXMzMiIsIm5hbWUiOiJfYWN0aXZpdHlJZCJ9LHsidHlwZSI6InN0cmluZyIsIm5hbWUiOiJfbmZ0TWV0YWRhdGEifSx7InR5cGUiOiJzdHJpbmciLCJuYW1lIjoiX2ltbXV0YWJsZVVybCJ9XSwib3V0cHV0cyI6W119XSwiZnVuY3Rpb25OYW1lIjoicmVnaXN0ZXJNaW50YWJsZURJRCIsInZhbHVlTGltaXQiOiIwIiwic2lnIjoiMHhjZmZlMWViMyIsInJ1bGVzIjpbXSwiaW5kZXgiOjAsImV4ZWN1dGlvblJ1bGUiOnsidmFsaWRBZnRlciI6MCwiaW50ZXJ2YWwiOjAsInJ1bnMiOjB9LCJvcGVyYXRpb24iOjB9LHsidGFyZ2V0IjoiMHg5MzYwNUM2NDQxODFmM2REMDNBMzcyMjg1Mjg2NDlBNzY4MjJGY2YxIiwiYWJpIjpbeyJuYW1lIjoicmVnaXN0ZXJNaW50YWJsZURJRCIsInR5cGUiOiJmdW5jdGlvbiIsInN0YXRlTXV0YWJpbGl0eSI6Im5vbnBheWFibGUiLCJpbnB1dHMiOlt7InR5cGUiOiJieXRlczMyIiwibmFtZSI6Il9kaWRTZWVkIn0seyJ0eXBlIjoiYWRkcmVzcyIsIm5hbWUiOiJfbmZ0Q29udHJhY3RBZGRyZXNzIn0seyJ0eXBlIjoiYnl0ZXMzMiIsIm5hbWUiOiJfY2hlY2tzdW0ifSx7InR5cGUiOiJhZGRyZXNzW10iLCJuYW1lIjoiX3Byb3ZpZGVycyJ9LHsidHlwZSI6InN0cmluZyIsIm5hbWUiOiJfdXJsIn0seyJ0eXBlIjoidWludDI1NiIsIm5hbWUiOiJfY2FwIn0seyJ0eXBlIjoidWludDI1NiIsIm5hbWUiOiJfcm95YWx0aWVzIn0seyJ0eXBlIjoiYnl0ZXMzMiIsIm5hbWUiOiJfYWN0aXZpdHlJZCJ9LHsidHlwZSI6InN0cmluZyIsIm5hbWUiOiJfbmZ0TWV0YWRhdGEifSx7InR5cGUiOiJzdHJpbmciLCJuYW1lIjoiX2ltbXV0YWJsZVVybCJ9XSwib3V0cHV0cyI6W119XSwiZnVuY3Rpb25OYW1lIjoicmVnaXN0ZXJNaW50YWJsZURJRCIsInZhbHVlTGltaXQiOiIwIiwic2lnIjoiMHgzYmQwMmM0MSIsInJ1bGVzIjpbXSwiaW5kZXgiOjEsImV4ZWN1dGlvblJ1bGUiOnsidmFsaWRBZnRlciI6MCwiaW50ZXJ2YWwiOjAsInJ1bnMiOjB9LCJvcGVyYXRpb24iOjB9LHsidGFyZ2V0IjoiMHg3NWZhZjExNGVhZmIxQkRiZTJGMDMxNkRGODkzZmQ1OENFNDZBQTRkIiwiYWJpIjpbeyJuYW1lIjoiYXBwcm92ZSIsInR5cGUiOiJmdW5jdGlvbiIsInN0YXRlTXV0YWJpbGl0eSI6Im5vbnBheWFibGUiLCJpbnB1dHMiOlt7InR5cGUiOiJhZGRyZXNzIiwibmFtZSI6InNwZW5kZXIifSx7InR5cGUiOiJ1aW50MjU2IiwibmFtZSI6ImFtb3VudCJ9XSwib3V0cHV0cyI6W3sidHlwZSI6ImJvb2wifV19XSwiZnVuY3Rpb25OYW1lIjoiYXBwcm92ZSIsInZhbHVlTGltaXQiOiIwIiwic2lnIjoiMHgwOTVlYTdiMyIsInJ1bGVzIjpbXSwiaW5kZXgiOjIsImV4ZWN1dGlvblJ1bGUiOnsidmFsaWRBZnRlciI6MCwiaW50ZXJ2YWwiOjAsInJ1bnMiOjB9LCJvcGVyYXRpb24iOjB9LHsidGFyZ2V0IjoiMHgxYzUyZWQ0MTRFRGQxYkNDMjBFYTY3MGQ0MjI4OWU4YkZDMDNDMDk1IiwiYWJpIjpbeyJuYW1lIjoiY3JlYXRlQWdyZWVtZW50QW5kUGF5RXNjcm93IiwidHlwZSI6ImZ1bmN0aW9uIiwic3RhdGVNdXRhYmlsaXR5Ijoibm9ucGF5YWJsZSIsImlucHV0cyI6W3sidHlwZSI6ImJ5dGVzMzIiLCJuYW1lIjoiX2lkIn0seyJ0eXBlIjoiYnl0ZXMzMiIsIm5hbWUiOiJfZGlkIn0seyJ0eXBlIjoiYnl0ZXMzMltdIiwibmFtZSI6Il9jb25kaXRpb25JZHMifSx7InR5cGUiOiJ1aW50MjU2W10iLCJuYW1lIjoiX3RpbWVMb2NrcyJ9LHsidHlwZSI6InVpbnQyNTZbXSIsIm5hbWUiOiJfdGltZU91dHMifSx7InR5cGUiOiJhZGRyZXNzIiwibmFtZSI6Il9hY2Nlc3NDb25zdW1lciJ9LHsidHlwZSI6InVpbnQyNTYiLCJuYW1lIjoiX2lkeCJ9LHsidHlwZSI6ImFkZHJlc3MiLCJuYW1lIjoiX3Jld2FyZEFkZHJlc3MifSx7InR5cGUiOiJhZGRyZXNzIiwibmFtZSI6Il90b2tlbkFkZHJlc3MifSx7InR5cGUiOiJ1aW50MjU2W10iLCJuYW1lIjoiX2Ftb3VudHMifSx7InR5cGUiOiJhZGRyZXNzW10iLCJuYW1lIjoiX3JlY2VpdmVycyJ9XSwib3V0cHV0cyI6W119XSwiZnVuY3Rpb25OYW1lIjoiY3JlYXRlQWdyZWVtZW50QW5kUGF5RXNjcm93IiwidmFsdWVMaW1pdCI6IjAiLCJzaWciOiIweGY4ZmUxMDcwIiwicnVsZXMiOltdLCJpbmRleCI6MywiZXhlY3V0aW9uUnVsZSI6eyJ2YWxpZEFmdGVyIjowLCJpbnRlcnZhbCI6MCwicnVucyI6MH0sIm9wZXJhdGlvbiI6MH1dfSwiYWN0aW9uIjp7InNlbGVjdG9yIjoiMHg1MTk0NTQ0NyIsImFkZHJlc3MiOiIweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAifSwidmFsaWRpdHlEYXRhIjp7InZhbGlkQWZ0ZXIiOjAsInZhbGlkVW50aWwiOjB9LCJhY2NvdW50UGFyYW1zIjp7ImluaXRDb2RlIjoiMHgiLCJhY2NvdW50QWRkcmVzcyI6IjB4NGZlM2U3ZDQyZkE4M2JlNEU4Y0YwMzQ1MUFjM0YyNTk4MGE3M2ZGNiJ9LCJlbmFibGVTaWduYXR1cmUiOiIweGI4NzYxYjAwOTVlZWFhOTBjODMwODRiMDI4N2E3YTk1MTllYWM5NzVjN2MyMGE4ZDljNzg4ZWQxNDdmM2U0ODQ3MjgyYjhhNjA5NjE5OWQ3YTI1ZGQ4MzJlZTU2ZjM3ZmUxMjBmOWMyMzYyMmYxYWQwNTBkODM4NDE2NWZkMTc4MWMiLCJwcml2YXRlS2V5IjoiMHg5MTNlZDFkZGZiOWIzZDMyNjFhZTYyYWZhMzE1MzI5MDk2OGFiYzcyYTBkMjJhMDZhNzFjNWM4NzlhZjQ5ZGM3In0='

const deserializedSessionKey = await getSessionKey(sessionKey, PROJECT_ID, publicClient)
const permissions = [
{
target: contractAddress,
abi: parseAbi([
'function registerMintableDID(bytes32 _didSeed, address _nftContractAddress, bytes32 _checksum, address[] memory _providers, string memory _url, uint256 _cap, uint256 _royalties, bool _mint, bytes32 _activityId, string memory _nftMetadata, string memory _immutableUrl) public',
]),
functionName: 'registerMintableDID',
},
{
target: contractAddress,
abi: parseAbi([
'function registerMintableDID(bytes32 _didSeed,address _nftContractAddress,bytes32 _checksum,address[] memory _providers,string memory _url,uint256 _cap,uint256 _royalties,bytes32 _activityId,string memory _nftMetadata,string memory _immutableUrl) public',
]),
functionName: 'registerMintableDID',
},
{
target: '0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d' as `0x${string}`,
abi: parseAbi([
'function approve(address spender, uint256 amount) external returns (bool)',
]),
functionName: 'approve',
},
{
target: '0x1c52ed414EDd1bCC20Ea670d42289e8bFC03C095',
abi: parseAbi([
'function createAgreementAndPayEscrow(bytes32 _id, bytes32 _did, bytes32[] _conditionIds, uint256[] _timeLocks, uint256[] _timeOuts, address _accessConsumer, uint256 _idx, address _rewardAddress, address _tokenAddress, uint256[] _amounts, address[] _receivers) public',
]),
functionName: 'createAgreementAndPayEscrow',
},
{
target: '0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d' as `0x${string}`,
abi: parseAbi(['function transfer(address to, uint amount) returns (bool)']),
functionName: 'transfer',
},
]

// Login to the marketplace
// const acc = NvmAccount.fromAccount(owner)
// const clientAssertion = await nevermined.utils.jwt.generateClientAssertion(deserializedSessionKey)
// const marketplaceAuthToken = await nevermined.services.marketplace.login(clientAssertion)
// console.log('marketplaceAuthToken', marketplaceAuthToken)
const acc = NvmAccount.fromAccount(owner)
const clientAssertion = await nevermined.utils.jwt.generateClientAssertion(acc)
const marketplaceAuthToken = await nevermined.services.marketplace.login(clientAssertion)
console.log('marketplaceAuthToken', marketplaceAuthToken)

console.log(acc.getAddress())

const sessionKey = await createSessionKey(owner, publicClient, permissions)
console.log(sessionKey)
assert.isDefined(sessionKey)

const sessionKeySigner = await toECDSASigner({
signer: owner,
})

const deserializedSessionKey = await getSessionKey(
sessionKey,
PROJECT_ID,
publicClient,
sessionKeySigner,
)
console.log(deserializedSessionKey)
const account = deserializedSessionKey
console.log(account)

// REGISTRATION OF AN ASSET
//================================================================================================
Expand Down Expand Up @@ -387,7 +401,7 @@ describe('Nevermined sdk with zerodev', () => {
// const nftAttributes = NFTAttributes.getCreditsSubscriptionInstance({
// metadata,
// services,
// providers: ['0x046d0698926aFa3ab6D6591f03063488F3Fb4327'],
// providers: ['0x5838B5512cF9f12FE9f2beccB20eb47211F9B0bc'],
// nftContractAddress: subscriptionNFT.address,
// preMint: false,
// royaltyAttributes: undefined,
Expand All @@ -401,31 +415,32 @@ describe('Nevermined sdk with zerodev', () => {

// ORDER OF AN ASSET
//================================================================================================
// const subscriptionDid =
// 'did:nv:d69d06bedc777963700b3392c494fbfb980d5bb94990252d41403927132837e5'
// const agreementId = await nevermined.nfts1155.order(subscriptionDid, 1n, account)
// console.log(agreementId)
// const subscriptionOwner = await nevermined.assets.owner(subscriptionDid)
// console.log('claiming to@', subscriptionOwner)
// const claim = await nevermined.nfts1155.claim(
// agreementId,
// subscriptionOwner,
// account.getId(),
// undefined,
// subscriptionDid,
// undefined,
// )
// console.log(claim)
const subscriptionDid =
'did:nv:6d6b448eeeb2072717614016269bff28d035e4191783d7335f067b5218c79d64'
const agreementId = await nevermined.nfts1155.order(subscriptionDid, 10n, account)
console.log(agreementId)
const subscriptionOwner = await nevermined.assets.owner(subscriptionDid)
console.log('claiming to@', subscriptionOwner)
const claim = await nevermined.nfts1155.claim(
agreementId,
subscriptionOwner,
account.getId(),
undefined,
subscriptionDid,
undefined,
)
console.log(claim)

// DOWNLOAD OF AN ASSET
const fileDid = 'did:nv:d65e2726b37510d231a86183d0de5d9281830381b579315c64e1eea7ee3e416f'
const download = await nevermined.nfts1155.access(
fileDid,
account,
'/tmp/nevermined/sdk-js',
-1,
)
console.log(download)
//================================================================================================
// const fileDid = 'did:nv:d65e2726b37510d231a86183d0de5d9281830381b579315c64e1eea7ee3e416f'
// const download = await nevermined.nfts1155.access(
// fileDid,
// account,
// '/tmp/nevermined/sdk-js',
// -1,
// )
// console.log(download)
})
})
})
14 changes: 7 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -54,24 +54,24 @@
"@apollo/client": "^3.7.16",
"@turnkey/viem": "0.4.16",
"@zerodev/ecdsa-validator": "5.2.3",
"@zerodev/sdk": "5.2.11",
"@zerodev/session-key": "^5.3.0",
"@zerodev/permissions": "5.2.6",
"@zerodev/sdk": "5.2.12",
"assert": "^2.0.0",
"cross-fetch": "^4.0.0",
"crypto-browserify": "^3.12.0",
"deprecated-decorator": "^0.1.6",
"eccrypto": "1.1.6",
"fflate": "0.8.2",
"form-data": "^4.0.0",
"graphql": "^16.7.1",
"https-browserify": "^1.0.0",
"jose": "^4.11.2",
"fflate": "0.8.2",
"eccrypto": "1.1.6",
"js-file-download": "^0.4.12",
"lodash": "^4.17.21",
"node-fetch": "^2.6.1",
"os-browserify": "^0.3.0",
"path-browserify": "^1.0.1",
"permissionless": "^0.1.22",
"permissionless": "0.1.28",
"pluralize": "^8.0.0",
"save-file": "^2.3.1",
"stream-browserify": "^3.0.0",
Expand All @@ -84,9 +84,9 @@
"peerDependencies": {
"@alchemy/aa-core": "3.12.1",
"@zerodev/ecdsa-validator": "^5.2.3",
"@zerodev/permissions": "5.2.7-alpha-1",
"@zerodev/sdk": "^5.2.11",
"@zerodev/session-key": "^5.3.0",
"permissionless": "^0.1.26",
"permissionless": "0.1.28",
"viem": "2.9.31"
},
"devDependencies": {
Expand Down
24 changes: 15 additions & 9 deletions src/keeper/contracts/ContractBase.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
import { Account, TransactionReceipt, encodeFunctionData, parseEventLogs } from 'viem'
import {
Account,
PrivateKeyAccount,
TransactionReceipt,
encodeFunctionData,
parseEventLogs,
} from 'viem'
import { Instantiable, InstantiableConfig } from '../../Instantiable.abstract'
import { jsonReplacer } from '../../common/helpers'
import { KeeperError } from '../../errors/NeverminedErrors'
Expand Down Expand Up @@ -301,20 +307,20 @@ export abstract class ContractBase extends Instantiable {

private async localAccountSend(
name: string,
from: Account | `0x${string}`,
from: PrivateKeyAccount | Account | `0x${string}`,
args: any[],
txparams: any,
progress: ((data: any) => void) | undefined,
) {
const functionInputs = getInputsOfFunctionFormatted(this.contract.abi, name, args)
// Uncomment to debug contract calls
if (name === 'XXXXX') {
const functionSignature = getSignatureOfFunction(this.contract.abi, name, args)
console.debug(`Making contract call ....: ${name} - ${from}`)
console.debug(`With args`, args)
console.debug(`And signature - ${JSON.stringify(functionSignature, jsonReplacer)}`)
console.debug('And amount: ', txparams.value)
}
// if (name === 'XXXXX') {
const functionSignature = getSignatureOfFunction(this.contract.abi, name, args)
console.debug(`Making contract call ....: ${name} - ${from}`)
console.debug(`With args`, args)
console.debug(`And signature - ${JSON.stringify(functionSignature, jsonReplacer)}`)
console.debug('And amount: ', txparams.value)
// }

const { gasLimit, value } = txparams
// make the call
Expand Down
6 changes: 3 additions & 3 deletions src/models/NvmAccount.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export class NvmAccount {
public babySecret?: string
private accountSigner?: Account | PrivateKeyAccount
private kernelClient?: KernelAccountClient<
'0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789',
'0x0000000071727De22E5E9d8BAf0edAc6f37da032',
Transport,
Chain,
any
Expand Down Expand Up @@ -55,7 +55,7 @@ export class NvmAccount {
*/
static async fromZeroDevSigner(
kernelClient: KernelAccountClient<
'0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789',
'0x0000000071727De22E5E9d8BAf0edAc6f37da032',
Transport,
Chain,
any
Expand All @@ -70,7 +70,7 @@ export class NvmAccount {

static fromZeroDevSessionKey(
kernelClient: KernelAccountClient<
'0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789',
'0x0000000071727De22E5E9d8BAf0edAc6f37da032',
Transport,
Chain,
any
Expand Down
4 changes: 2 additions & 2 deletions src/nevermined/resources/AppNetworks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export class AppDeploymentStaging extends NeverminedAppOptions {
marketplaceUri = 'https://marketplace-api.staging.nevermined.app'
graphHttpUri = 'https://api.thegraph.com/subgraphs/name/nevermined-io/public'
neverminedNodeUri = 'https://node.staging.nevermined.app'
neverminedNodeAddress = '0x046d0698926aFa3ab6D6591f03063488F3Fb4327'
neverminedNodeAddress = '0x5838B5512cF9f12FE9f2beccB20eb47211F9B0bc'
verbose = true
gasMultiplier = 0
gasPriceMultiplier = 0
Expand All @@ -45,7 +45,7 @@ export class AppDeploymentTesting extends NeverminedAppOptions {
marketplaceUri = 'https://marketplace-api.testing.nevermined.app'
graphHttpUri = 'https://api.thegraph.com/subgraphs/name/nevermined-io/public'
neverminedNodeUri = 'https://node.testing.nevermined.app'
neverminedNodeAddress = '0x046d0698926aFa3ab6D6591f03063488F3Fb4327'
neverminedNodeAddress = '0x5838B5512cF9f12FE9f2beccB20eb47211F9B0bc'
verbose = true
gasMultiplier = 0
gasPriceMultiplier = 0
Expand Down
Loading
Loading