1
0
mirror of https://github.com/oceanprotocol/ocean.js.git synced 2024-11-26 20:39:05 +01:00

fix signature and download

This commit is contained in:
Bogdan Fazakas 2023-03-22 16:37:56 +02:00
parent 53900d5b62
commit 74f3b3046b
4 changed files with 84 additions and 94 deletions

View File

@ -29,7 +29,7 @@
"mocha": "TS_NODE_PROJECT='./test/tsconfig.json' mocha --config=test/.mocharc.json --node-env=test --exit", "mocha": "TS_NODE_PROJECT='./test/tsconfig.json' mocha --config=test/.mocharc.json --node-env=test --exit",
"test": "npm run lint && npm run test:unit:cover && npm run test:integration:cover", "test": "npm run lint && npm run test:unit:cover && npm run test:integration:cover",
"test:unit": "npm run mocha -- 'test/unit/**/*.test.ts'", "test:unit": "npm run mocha -- 'test/unit/**/*.test.ts'",
"test:integration": "npm run mocha -- 'test/integration/Provider.test.ts' 'test/integration/PublishFlow.test.ts' 'test/integration/PublishEditConsume.test.ts'", "test:integration": "npm run mocha -- 'test/integration/Provider.test.ts' 'test/integration/PublishFlow.test.ts' 'test/integration/PublishEditConsume.test.ts'",
"test:unit:cover": "nyc --report-dir coverage/unit npm run test:unit", "test:unit:cover": "nyc --report-dir coverage/unit npm run test:unit",
"test:integration:cover": "nyc --report-dir coverage/integration --no-clean npm run test:integration", "test:integration:cover": "nyc --report-dir coverage/integration --no-clean npm run test:integration",
"create:guide": "./scripts/createCodeExamples.sh test/integration/CodeExamples.test.ts", "create:guide": "./scripts/createCodeExamples.sh test/integration/CodeExamples.test.ts",

View File

@ -99,28 +99,20 @@ export class Provider {
} }
} }
public async signProviderRequest( public async signProviderRequest(signer: Signer, message: string): Promise<string> {
signer: Signer,
message: string,
web3?: Web3
): Promise<string> {
const consumerMessage = ethers.utils.solidityKeccak256( const consumerMessage = ethers.utils.solidityKeccak256(
['bytes'], ['bytes'],
[ethers.utils.hexlify(ethers.utils.toUtf8Bytes(message))] [ethers.utils.hexlify(ethers.utils.toUtf8Bytes(message))]
) )
// const isMetaMask = web3 && web3.currentProvider && (web3.currentProvider as any).isMetaMask
// if (isMetaMask) return await web3.eth.personal.sign(consumerMessage, accountId, password)
// await web3.eth.sign(consumerMessage, await signer.getAddress())
// const isMetaMask = const messageHashBytes = ethers.utils.arrayify(consumerMessage)
// web3 && web3.currentProvider && (web3.currentProvider as any).isMetaMask let newSignature = await (signer as providers.JsonRpcSigner)._legacySignMessage(
messageHashBytes
// return await web3.eth.personal.sign(consumerMessage, accountId, password)
// if (isMetaMask)
// (signer as providers.JsonRpcSigner)._legacySignMessage(consumerMessage)
// else
const oldSignature = await web3.eth.sign(consumerMessage, await signer.getAddress())
console.log('initial signature = ', oldSignature)
const newSignature = await (signer as providers.JsonRpcSigner)._legacySignMessage(
consumerMessage
) )
console.log('new signature = ', newSignature) console.log('new signature = ', newSignature)
return newSignature return newSignature
} }
@ -395,7 +387,6 @@ export class Provider {
transferTxId: string, transferTxId: string,
providerUri: string, providerUri: string,
signer: Signer, signer: Signer,
web3: Web3,
userCustomParameters?: UserCustomParameters userCustomParameters?: UserCustomParameters
): Promise<any> { ): Promise<any> {
const providerEndpoints = await this.getEndpoints(providerUri) const providerEndpoints = await this.getEndpoints(providerUri)
@ -408,7 +399,7 @@ export class Provider {
: null : null
if (!downloadUrl) return null if (!downloadUrl) return null
const nonce = Date.now() const nonce = Date.now()
const signature = await this.signProviderRequest(signer, did + nonce, web3) const signature = await this.signProviderRequest(signer, did + nonce)
let consumeUrl = downloadUrl let consumeUrl = downloadUrl
consumeUrl += `?fileIndex=${fileIndex}` consumeUrl += `?fileIndex=${fileIndex}`
consumeUrl += `&documentId=${did}` consumeUrl += `&documentId=${did}`

View File

@ -396,77 +396,76 @@ describe('Publish consume test', async () => {
}) })
it('Should download the datasets files', async () => { it('Should download the datasets files', async () => {
// const urlDownloadUrl = await ProviderInstance.getDownloadUrl( const urlDownloadUrl = await ProviderInstance.getDownloadUrl(
// resolvedUrlAssetDdo.id, resolvedUrlAssetDdo.id,
// resolvedUrlAssetDdo.services[0].id, resolvedUrlAssetDdo.services[0].id,
// 0, 0,
// urlOrderTx.transactionHash, urlOrderTx.transactionHash,
// providerUrl, providerUrl,
// consumerAccount, consumerAccount
// web3 )
// ) assert(urlDownloadUrl, 'Provider getDownloadUrl failed for url dataset')
// assert(urlDownloadUrl, 'Provider getDownloadUrl failed for url dataset') try {
// try { await downloadFile(urlDownloadUrl)
// await downloadFile(urlDownloadUrl) } catch (e) {
// } catch (e) { assert.fail(`Download url dataset failed: ${e}`)
// assert.fail(`Download url dataset failed: ${e}`) }
// } const arwaveDownloadURL = await ProviderInstance.getDownloadUrl(
// const arwaveDownloadURL = await ProviderInstance.getDownloadUrl( resolvedArweaveAssetDdo.id,
// resolvedArweaveAssetDdo.id, resolvedArweaveAssetDdo.services[0].id,
// resolvedArweaveAssetDdo.services[0].id, 0,
// 0, arwaveOrderTx.transactionHash,
// arwaveOrderTx.transactionHash, providerUrl,
// providerUrl, consumerAccount
// consumerAccount )
// ) assert(arwaveDownloadURL, 'Provider getDownloadUrl failed for arwave dataset')
// assert(arwaveDownloadURL, 'Provider getDownloadUrl failed for arwave dataset') try {
// try { await downloadFile(arwaveDownloadURL)
// await downloadFile(arwaveDownloadURL) } catch (e) {
// } catch (e) { assert.fail(`Download arwave dataset failed: ${e}`)
// assert.fail(`Download arwave dataset failed: ${e}`) }
// } const ipfsDownloadURL = await ProviderInstance.getDownloadUrl(
// const ipfsDownloadURL = await ProviderInstance.getDownloadUrl( resolvedIpfsAssetDdo.id,
// resolvedIpfsAssetDdo.id, resolvedIpfsAssetDdo.services[0].id,
// resolvedIpfsAssetDdo.services[0].id, 0,
// 0, ipfsOrderTx.transactionHash,
// ipfsOrderTx.transactionHash, providerUrl,
// providerUrl, consumerAccount
// consumerAccount )
// ) assert(ipfsDownloadURL, 'Provider getDownloadUrl failed for ipfs dataset')
// assert(ipfsDownloadURL, 'Provider getDownloadUrl failed for ipfs dataset') try {
// try { await downloadFile(ipfsDownloadURL)
// await downloadFile(ipfsDownloadURL) } catch (e) {
// } catch (e) { assert.fail(`Download ipfs dataset failed ${e}`)
// assert.fail(`Download ipfs dataset failed ${e}`) }
// } const onchainDownloadURL = await ProviderInstance.getDownloadUrl(
// const onchainDownloadURL = await ProviderInstance.getDownloadUrl( resolvedOnchainAssetDdo.id,
// resolvedOnchainAssetDdo.id, resolvedOnchainAssetDdo.services[0].id,
// resolvedOnchainAssetDdo.services[0].id, 0,
// 0, onchainOrderTx.transactionHash,
// onchainOrderTx.transactionHash, providerUrl,
// providerUrl, consumerAccount
// consumerAccount )
// ) assert(onchainDownloadURL, 'Provider getDownloadUrl failed for onchain dataset')
// assert(onchainDownloadURL, 'Provider getDownloadUrl failed for onchain dataset') try {
// try { await downloadFile(onchainDownloadURL)
// await downloadFile(onchainDownloadURL) } catch (e) {
// } catch (e) { assert.fail(`Download onchain dataset failed ${e}`)
// assert.fail(`Download onchain dataset failed ${e}`) }
// } const graphqlDownloadURL = await ProviderInstance.getDownloadUrl(
// const graphqlDownloadURL = await ProviderInstance.getDownloadUrl( resolvedGraphqlAssetDdo.id,
// resolvedGraphqlAssetDdo.id, resolvedGraphqlAssetDdo.services[0].id,
// resolvedGraphqlAssetDdo.services[0].id, 0,
// 0, grapqlOrderTx.transactionHash,
// grapqlOrderTx.transactionHash, providerUrl,
// providerUrl, consumerAccount
// consumerAccount )
// ) assert(graphqlDownloadURL, 'Provider getDownloadUrl failed for graphql dataset')
// assert(graphqlDownloadURL, 'Provider getDownloadUrl failed for graphql dataset') try {
// try { await downloadFile(graphqlDownloadURL)
// await downloadFile(graphqlDownloadURL) } catch (e) {
// } catch (e) { assert.fail(`Download graphql dataset failed ${e}`)
// assert.fail(`Download graphql dataset failed ${e}`) }
// }
}) })
it('Should update datasets metadata', async () => { it('Should update datasets metadata', async () => {

View File

@ -180,8 +180,6 @@ export async function orderAsset(
providerUrl providerUrl
) )
console.log('intialized', initializeData)
const providerFees: ProviderFees = { const providerFees: ProviderFees = {
providerFeeAddress: initializeData.providerFee.providerFeeAddress, providerFeeAddress: initializeData.providerFee.providerFeeAddress,
providerFeeToken: initializeData.providerFee.providerFeeToken, providerFeeToken: initializeData.providerFee.providerFeeToken,
@ -194,11 +192,13 @@ export async function orderAsset(
} }
// make the payment // make the payment
const orderTx = await datatoken.startOrder( const tx = await datatoken.startOrder(
datatokenAddress, datatokenAddress,
consumerAccount, consumerAccount,
0, 0,
providerFees providerFees
) )
return orderTx const orderTx = await tx.wait()
const OrderStartedTx = getEventFromTx(orderTx, 'OrderStarted')
return OrderStartedTx
} }