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",
"test": "npm run lint && npm run test:unit:cover && npm run test:integration:cover",
"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:integration:cover": "nyc --report-dir coverage/integration --no-clean npm run test:integration",
"create:guide": "./scripts/createCodeExamples.sh test/integration/CodeExamples.test.ts",

View File

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

View File

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

View File

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