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

Fix/ dev deployment #188

Merged
merged 5 commits into from
Dec 21, 2023
Merged
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
4 changes: 2 additions & 2 deletions tests/integration/completeFlow.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ import { OceanNodeConfig } from '../../@types/OceanNode.js'
import { createFee } from '../../components/core/feesHandler.js'
import { DDO } from '../../@types/DDO/DDO.js'

describe('Indexer stores a new published DDO', () => {
describe('Should run a complete node flow.', () => {
let config: OceanNodeConfig
let database: Database
let oceanNode: OceanNode
Expand Down Expand Up @@ -74,7 +74,7 @@ describe('Indexer stores a new published DDO', () => {
}
config = await getConfig()
database = await new Database(dbConfig)
oceanNode = await new OceanNode(config)
oceanNode = await new OceanNode(config, database)

indexer = new OceanIndexer(database, mockSupportedNetworks)

Expand Down
62 changes: 39 additions & 23 deletions tests/integration/indexer.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,10 @@ import { getEventFromTx } from '../../utils/util.js'
import { delay, waitToIndex, signMessage } from './testUtils.js'
import { genericDDO } from '../data/ddo.js'
import { getOceanArtifactsAdresses } from '../../utils/address.js'
import { createFee } from '../../components/core/feesHandler.js'
import { DDO } from '../../@types/DDO/DDO.js'

describe('Indexer stores a new published DDO', () => {
describe('Indexer stores a new metadata events and orders.', () => {
let database: Database
let indexer: OceanIndexer
let provider: JsonRpcProvider
Expand Down Expand Up @@ -156,7 +158,7 @@ describe('Indexer stores a new published DDO', () => {
assert(trxReceipt, 'set metada failed')
})

delay(50000)
delay(30000)

it('should store the ddo in the database and return it ', async () => {
resolvedDDO = await waitToIndex(assetDID, database)
Expand Down Expand Up @@ -186,7 +188,7 @@ describe('Indexer stores a new published DDO', () => {
assert(trxReceipt, 'set metada failed')
})

delay(50000)
delay(30000)

it('should detect update event and store the udpdated ddo in the database', async () => {
const updatedDDO = await waitToIndex(assetDID, database)
Expand Down Expand Up @@ -219,7 +221,7 @@ describe('Indexer stores a new published DDO', () => {
assert(trxReceipt, 'set metada state failed')
})

delay(100000)
delay(30000)

it('should get the active state', async () => {
const retrievedDDO = await waitToIndex(assetDID, database)
Expand All @@ -239,6 +241,13 @@ describe('Indexer stores a new published DDO', () => {
const paymentCollector = await dataTokenContract.getPaymentCollector()
assert(paymentCollector === publisherAddress, 'paymentCollector not correct')

const feeData = await createFee(
resolvedDDO as DDO,
0,
'null',
resolvedDDO.services[0]
)

// sign provider data
providerData = JSON.stringify({ timeout })
message = solidityPackedKeccak256(
Expand All @@ -265,14 +274,14 @@ describe('Indexer stores a new published DDO', () => {
consumerAddress,
serviceIndex,
{
providerFeeAddress,
providerFeeToken,
providerFeeAmount,
v: signedMessage.v,
r: signedMessage.r,
s: signedMessage.s,
providerData: hexlify(toUtf8Bytes(providerData)),
validUntil: providerValidUntil
providerFeeAddress: feeData.providerFeeAddress,
providerFeeToken: feeData.providerFeeToken,
providerFeeAmount: feeData.providerFeeAmount,
v: feeData.v,
r: feeData.r,
s: feeData.s,
providerData: feeData.providerData,
validUntil: feeData.validUntil
},
{
consumeMarketFeeAddress,
Expand All @@ -290,7 +299,7 @@ describe('Indexer stores a new published DDO', () => {
expect(parseInt(orderEvent.args[3].toString())).to.equal(serviceIndex) // serviceIndex
})

delay(50000)
delay(30000)

it('should get number of orders', async () => {
const retrievedDDO = await waitToIndex(assetDID, database)
Expand All @@ -307,17 +316,24 @@ describe('Indexer stores a new published DDO', () => {
it('should detect OrderReused event', async function () {
this.timeout(15000) // Extend default Mocha test timeout

const feeData = await createFee(
resolvedDDO as DDO,
0,
'null',
resolvedDDO.services[0]
)

const orderTx = await dataTokenContractWithNewSigner.reuseOrder(
orderTxId,
{
providerFeeAddress,
providerFeeToken,
providerFeeAmount,
v: signedMessage.v,
r: signedMessage.r,
s: signedMessage.s,
providerData: hexlify(toUtf8Bytes(providerData)),
validUntil: providerValidUntil
providerFeeAddress: feeData.providerFeeAddress,
providerFeeToken: feeData.providerFeeToken,
providerFeeAmount: feeData.providerFeeAmount,
v: feeData.v,
r: feeData.r,
s: feeData.s,
providerData: feeData.providerData,
validUntil: feeData.validUntil
},
{
consumeMarketFeeAddress,
Expand All @@ -334,7 +350,7 @@ describe('Indexer stores a new published DDO', () => {
expect(reusedOrderEvent.args[0]).to.equal(orderTxId)
})

delay(50000)
delay(30000)

it('should increase number of orders', async () => {
const retrievedDDO = await waitToIndex(assetDID, database)
Expand All @@ -355,7 +371,7 @@ describe('Indexer stores a new published DDO', () => {
assert(trxReceipt, 'set metada state failed')
})

delay(100000)
delay(30000)

it('should have a short version of ddo', async () => {
const result = await nftContract.getMetaData()
Expand Down
111 changes: 74 additions & 37 deletions tests/integration/transactionValidation.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,13 @@ import ERC721Factory from '@oceanprotocol/contracts/artifacts/contracts/ERC721Fa
import ERC721Template from '@oceanprotocol/contracts/artifacts/contracts/templates/ERC721Template.sol/ERC721Template.json' assert { type: 'json' }
import ERC20Template from '@oceanprotocol/contracts/artifacts/contracts/templates/ERC20TemplateEnterprise.sol/ERC20TemplateEnterprise.json' assert { type: 'json' }
import { getEventFromTx } from '../../utils/util.js'
import { signMessage } from './testUtils.js'
import { delay, signMessage, waitToIndex } from './testUtils.js'
import { genericDDO } from '../data/ddo.js'
import { Database } from '../../components/database/index.js'
import { getOceanArtifactsAdresses } from '../../utils/address.js'
import { AssetUtils } from '../../utils/asset.js'
import { createFee } from '../../components/core/feesHandler.js'
import { DDO } from '../../@types/DDO/DDO.js'

describe('validateOrderTransaction Function with Orders', () => {
let database: Database
Expand All @@ -47,6 +49,7 @@ describe('validateOrderTransaction Function with Orders', () => {
r: string
s: string
}
let resolvedDDO: any

const feeToken = '0x312213d6f6b5FCF9F56B7B8946A6C727Bf4Bc21f'
const providerFeeAddress = ZeroAddress // publisherAddress
Expand Down Expand Up @@ -151,6 +154,12 @@ describe('validateOrderTransaction Function with Orders', () => {
assert(trxReceipt, 'set metadata failed')
})

delay(30000)

it('should get the active state', async () => {
resolvedDDO = await waitToIndex(genericDDO.id, database)
})

it('should start an order and validate the transaction', async function () {
this.timeout(15000) // Extend default Mocha test timeout
dataTokenContract = new Contract(
Expand All @@ -161,16 +170,23 @@ describe('validateOrderTransaction Function with Orders', () => {
const paymentCollector = await dataTokenContract.getPaymentCollector()
assert(paymentCollector === publisherAddress, 'paymentCollector not correct')

const feeData = await createFee(
resolvedDDO as DDO,
0,
'null',
resolvedDDO.services[0]
)

// sign provider data
providerData = JSON.stringify({ timeout })
message = solidityPackedKeccak256(
['bytes', 'address', 'address', 'uint256', 'uint256'],
[
hexlify(toUtf8Bytes(providerData)),
providerFeeAddress,
providerFeeToken,
providerFeeAmount,
providerValidUntil
feeData.providerFeeAddress,
feeData.providerFeeToken,
feeData.providerFeeAmount,
feeData.validUntil
]
)
signedMessage = await signMessage(message, publisherAddress, provider)
Expand All @@ -187,14 +203,14 @@ describe('validateOrderTransaction Function with Orders', () => {
consumerAddress,
serviceId,
{
providerFeeAddress,
providerFeeToken,
providerFeeAmount,
v: signedMessage.v,
r: signedMessage.r,
s: signedMessage.s,
providerData: hexlify(toUtf8Bytes(providerData)),
validUntil: providerValidUntil
providerFeeAddress: feeData.providerFeeAddress,
providerFeeToken: feeData.providerFeeToken,
providerFeeAmount: feeData.providerFeeAmount,
v: feeData.v,
r: feeData.r,
s: feeData.s,
providerData: feeData.providerData,
validUntil: feeData.validUntil
},
{
consumeMarketFeeAddress,
Expand Down Expand Up @@ -228,17 +244,24 @@ describe('validateOrderTransaction Function with Orders', () => {
it('should reuse an order and validate the transaction', async function () {
this.timeout(15000) // Extend default Mocha test timeout

const feeData = await createFee(
resolvedDDO as DDO,
0,
'null',
resolvedDDO.services[0]
)

const orderTx = await dataTokenContractWithNewSigner.reuseOrder(
orderTxId,
{
providerFeeAddress,
providerFeeToken,
providerFeeAmount,
v: signedMessage.v,
r: signedMessage.r,
s: signedMessage.s,
providerData: hexlify(toUtf8Bytes(providerData)),
validUntil: providerValidUntil
providerFeeAddress: feeData.providerFeeAddress,
providerFeeToken: feeData.providerFeeToken,
providerFeeAmount: feeData.providerFeeAmount,
v: feeData.v,
r: feeData.r,
s: feeData.s,
providerData: feeData.providerData,
validUntil: feeData.validUntil
},
{
consumeMarketFeeAddress,
Expand Down Expand Up @@ -273,17 +296,24 @@ describe('validateOrderTransaction Function with Orders', () => {
it('should reject reuse an order with invald serviceId', async function () {
this.timeout(15000) // Extend default Mocha test timeout

const feeData = await createFee(
resolvedDDO as DDO,
0,
'null',
resolvedDDO.services[0]
)

const orderTx = await dataTokenContractWithNewSigner.reuseOrder(
orderTxId,
{
providerFeeAddress,
providerFeeToken,
providerFeeAmount,
v: signedMessage.v,
r: signedMessage.r,
s: signedMessage.s,
providerData: hexlify(toUtf8Bytes(providerData)),
validUntil: providerValidUntil
providerFeeAddress: feeData.providerFeeAddress,
providerFeeToken: feeData.providerFeeToken,
providerFeeAmount: feeData.providerFeeAmount,
v: feeData.v,
r: feeData.r,
s: feeData.s,
providerData: feeData.providerData,
validUntil: feeData.validUntil
},
{
consumeMarketFeeAddress,
Expand Down Expand Up @@ -318,17 +348,24 @@ describe('validateOrderTransaction Function with Orders', () => {
it('should reject reuse an order with invald user address', async function () {
this.timeout(15000) // Extend default Mocha test timeout

const feeData = await createFee(
resolvedDDO as DDO,
0,
'null',
resolvedDDO.services[0]
)

const orderTx = await dataTokenContractWithNewSigner.reuseOrder(
orderTxId,
{
providerFeeAddress,
providerFeeToken,
providerFeeAmount,
v: signedMessage.v,
r: signedMessage.r,
s: signedMessage.s,
providerData: hexlify(toUtf8Bytes(providerData)),
validUntil: providerValidUntil
providerFeeAddress: feeData.providerFeeAddress,
providerFeeToken: feeData.providerFeeToken,
providerFeeAmount: feeData.providerFeeAmount,
v: feeData.v,
r: feeData.r,
s: feeData.s,
providerData: feeData.providerData,
validUntil: feeData.validUntil
},
{
consumeMarketFeeAddress,
Expand Down
Loading