Skip to content

Commit

Permalink
feat: initial changes new sdk
Browse files Browse the repository at this point in the history
  • Loading branch information
eruizgar91 committed Apr 9, 2024
1 parent 13a17ca commit 1bb8616
Show file tree
Hide file tree
Showing 4 changed files with 389 additions and 460 deletions.
46 changes: 25 additions & 21 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,37 +29,39 @@
},
"dependencies": {
"@nestjs/axios": "^3.0.2",
"@nestjs/common": "^10.3.3",
"@nestjs/core": "^10.3.3",
"@nestjs/common": "^10.3.7",
"@nestjs/core": "^10.3.7",
"@nestjs/jwt": "^10.2.0",
"@nestjs/passport": "^10.0.3",
"@nestjs/platform-express": "^10.3.3",
"@nestjs/swagger": "^7.3.0",
"@nestjs/platform-express": "^10.3.7",
"@nestjs/swagger": "^7.3.1",
"@nestjs/typeorm": "^10.0.2",
"@nevermined-io/argo-workflows-api": "^0.1.3",
"@nevermined-io/passport-nevermined": "^0.3.0",
"@nevermined-io/sdk": "2.2.18",
"@nevermined-io/sdk": "3.0.0-rc1",
"@sideway/address": "^5.0.0",
"@sideway/formula": "^3.0.1",
"@sideway/pinpoint": "^2.0.0",
"@types/multer": "^1.4.11",
"@types/node-rsa": "^1.1.4",
"@zerodev/sdk": "^4.5.5",
"aws-sdk": "^2.1576.0",
"axios": "^1.6.7",
"cache-manager": "^5.4.0",
"@zerodev/ecdsa-validator": "^5.1.0",
"@zerodev/presets": "^5.1.4",
"@zerodev/sdk": "^5.1.18",
"@zerodev/session-key": "^5.1.0",
"aws-sdk": "^2.1594.0",
"axios": "^1.6.8",
"cache-manager": "^5.5.1",
"class-transformer": "0.5.1",
"class-validator": "^0.14.1",
"cli-color": "^2.0.4",
"dotenv": "^16.4.5",
"eciesjs": "^0.4.6",
"ethers": "^6.11.1",
"fetch-blob": "^4.0.0",
"form-data": "^4.0.0",
"formdata-polyfill": "^4.0.10",
"ipfs-http-client-lite": "^0.3.0",
"joi": "^17.12.2",
"jose": "^5.2.3",
"joi": "^17.12.3",
"jose": "^5.2.4",
"js-yaml": "4.1.0",
"jsonwebtoken": "^9.0.2",
"lodash": "^4.17.21",
Expand All @@ -76,7 +78,8 @@
"swagger-ui-express": "^5.0.0",
"ts-node": "^10.9.2",
"tsconfig-paths": "^4.2.0",
"typescript": "^5.4.2"
"typescript": "^5.4.2",
"viem": "^2.9.15"
},
"devDependencies": {
"@commitlint/cli": "^19.1.0",
Expand All @@ -85,32 +88,33 @@
"@golevelup/ts-jest": "0.4.0",
"@nestjs/cli": "^10.3.2",
"@nestjs/schematics": "^10.1.1",
"@nestjs/testing": "^10.3.3",
"@nestjs/testing": "^10.3.7",
"@types/jest": "^29.5.12",
"@types/jsonwebtoken": "^9.0.6",
"@types/lodash": "^4.17.0",
"@types/node": "^20.11.28",
"@types/node": "^20.12.5",
"@types/passport-jwt": "^4.0.1",
"@types/passport-local": "^1.0.38",
"@types/supertest": "^6.0.2",
"@types/uuid": "^9.0.8",
"@typescript-eslint/eslint-plugin": "^7.2.0",
"@typescript-eslint/parser": "^7.2.0",
"@typescript-eslint/eslint-plugin": "^7.5.0",
"@typescript-eslint/parser": "^7.5.0",
"aws-sdk-mock": "^5.9.0",
"eslint": "^8.57.0",
"eslint": "^9.0.0",
"eslint-config-nevermined": "^0.2.0",
"eslint-config-next": "^14.1.3",
"eslint-config-next": "^14.1.4",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-jsdoc": "^48.2.1",
"eslint-plugin-jsdoc": "^48.2.3",
"eslint-plugin-prefer-arrow": "^1.2.3",
"husky": "^9.0.11",
"jest": "^29.7.0",
"jest-date-mock": "^1.0.8",
"jest-date-mock": "^1.0.9",
"lint-staged": "^15.2.2",
"prettier": "^3.2.5",
"prettier-package-json": "^2.8.0",
"supertest": "^6.3.4",
"tslib": "^2.6.2",
"ts-jest": "^29.1.2",
"ts-node-dev": "^2.0.0",
"tslint-config-prettier": "^1.18.0",
Expand Down
35 changes: 21 additions & 14 deletions src/shared/nevermined/nvm.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,19 +21,21 @@ import {
Service,
ServiceCommon,
ServiceType,
convertEthersV6SignerToAccountSigner,
didZeroX,
generateId,
generateInstantiableConfigFromConfig,
} from '@nevermined-io/sdk'
import { ZeroDevAccountSigner, ZeroDevEthersProvider } from '@zerodev/sdk'
import { createEcdsaKernelAccountClient } from '@zerodev/presets/zerodev'
import { KernelSmartAccount, } from '@zerodev/sdk'
import AWS from 'aws-sdk'
import { AxiosError } from 'axios'
import { ethers } from 'ethers'
import { default as FormData } from 'form-data'
import IpfsHttpClientLite from 'ipfs-http-client-lite'
import { firstValueFrom } from 'rxjs'
import { UploadBackends } from 'src/access/access.controller'
import { createPublicClient, http, pad } from 'viem'
import { privateKeyToAccount } from 'viem/accounts'
import { aes_decryption_256, decrypt } from '../../common/helpers/encryption.helper'
import { ConfigService } from '../config/config.service'

Expand All @@ -46,7 +48,7 @@ export enum AssetResult {
@Injectable()
export class NeverminedService {
nevermined: Nevermined
zerodevSigner: ZeroDevAccountSigner<'ECDSA'>
zerodevSigner: KernelSmartAccount
public providerAddress: string

constructor(
Expand All @@ -66,9 +68,9 @@ export class NeverminedService {
)}`,
)

const web3 = new ethers.JsonRpcProvider(config.web3ProviderUri)
const web3 = createPublicClient({transport: http(config.web3ProviderUri)})
try {
await web3.getNetwork()
await web3.getChainId()
} catch (e) {
Logger.error(e)
throw new Error(`Invalid web3 provider for uri: ${config.web3ProviderUri}`)
Expand All @@ -81,7 +83,7 @@ export class NeverminedService {

// set provider address
if (this.zerodevSigner) {
this.providerAddress = await this.zerodevSigner.getAddress()
this.providerAddress = this.zerodevSigner.address
} else {
const [provider] = await this.nevermined.accounts.list()
this.providerAddress = provider.getId()
Expand All @@ -104,20 +106,26 @@ export class NeverminedService {
return this.config.nvm().web3ProviderUri
}

private async setupZerodev(): Promise<ZeroDevAccountSigner<'ECDSA'>> {
private async setupZerodev(): Promise<KernelSmartAccount> {
const projectId = this.config.cryptoConfig().zerodevProjectId
if (projectId && projectId !== '') {
const keyfile = this.config.cryptoConfig().provider_key
const providerAccount = ethers.Wallet.fromEncryptedJsonSync(
keyfile,
this.config.cryptoConfig().provider_password,
)
const zerodevProvider = await ZeroDevEthersProvider.init('ECDSA', {
projectId,
owner: convertEthersV6SignerToAccountSigner(providerAccount),
const signer = privateKeyToAccount(keyfile as `0x${string}`)

const kernelClient = await createEcdsaKernelAccountClient({
projectId: projectId,
signer
})
// const zerodevProvider = await ZeroDevEthersProvider.init('ECDSA', {
// projectId,
// owner: convertEthersV6SignerToAccountSigner(providerAccount),
// })

return zerodevProvider.getAccountSigner()
return kernelClient.account
}
}

Expand Down Expand Up @@ -273,10 +281,9 @@ export class NeverminedService {
didZeroX(did),
userAddress,
generateId(),
ethers.zeroPadValue('0x', 32),
pad('0x', {size: 32}),
`download file ${index}`,
from,
{ zeroDevSigner: this.zerodevSigner },
from
)
Logger.debug(`Provenance: USED event Id (${provId}) for DID ${did} registered`)
}
Expand Down
2 changes: 1 addition & 1 deletion tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@
"composite": true,
"allowJs": true
},
"include": ["next-env.d.ts", "**/*.ts", "./src/compute/argo-workflows-templates/*.yaml"],
"include": ["next-env.d.ts", "**/*.ts", "./src/compute/argo-workflows-templates/*.yaml",],
"exclude": ["node_modules"]
}

0 comments on commit 1bb8616

Please sign in to comment.