Skip to content

Commit 2b01f32

Browse files
authored
use Ocean as default token (#929)
1 parent c30b26c commit 2b01f32

2 files changed

Lines changed: 38 additions & 2 deletions

File tree

src/components/c2d/compute_engine_docker.ts

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ import type {
1313
ComputeResult,
1414
RunningPlatform,
1515
ComputeEnvFeesStructure,
16-
ComputeResourceRequest
16+
ComputeResourceRequest,
17+
ComputeEnvFees
1718
} from '../../@types/C2D/C2D.js'
1819
import { getConfiguration } from '../../utils/config.js'
1920
import { C2DEngine } from './compute_engine_base.js'
@@ -43,6 +44,7 @@ import { decryptFilesObject, omitDBComputeFieldsFromComputeJob } from './index.j
4344
import * as drc from 'docker-registry-client'
4445
import { ValidateParams } from '../httpRoutes/validateCommands.js'
4546
import { Service } from '@oceanprotocol/ddo-js'
47+
import { getOceanTokenAddressForChain } from '../../utils/address.js'
4648

4749
export class C2DEngineDocker extends C2DEngine {
4850
private envs: ComputeEnvironment[] = []
@@ -113,7 +115,34 @@ export class C2DEngineDocker extends C2DEngine {
113115
if (supportedChains.includes(parseInt(feeChain))) {
114116
if (fees === null) fees = {}
115117
if (!(feeChain in fees)) fees[feeChain] = []
116-
fees[feeChain] = envConfig.fees[feeChain]
118+
const tmpFees: ComputeEnvFees[] = []
119+
for (let i = 0; i < envConfig.fees[feeChain].length; i++) {
120+
if (
121+
envConfig.fees[feeChain][i].prices &&
122+
envConfig.fees[feeChain][i].prices.length > 0
123+
) {
124+
if (!envConfig.fees[feeChain][i].feeToken) {
125+
const tokenAddress = await getOceanTokenAddressForChain(parseInt(feeChain))
126+
if (tokenAddress) {
127+
envConfig.fees[feeChain][i].feeToken = tokenAddress
128+
tmpFees.push(envConfig.fees[feeChain][i])
129+
} else {
130+
CORE_LOGGER.error(
131+
`Unable to find Ocean token address for chain ${feeChain} and no custom token provided`
132+
)
133+
}
134+
} else {
135+
tmpFees.push(envConfig.fees[feeChain][i])
136+
}
137+
} else {
138+
CORE_LOGGER.error(
139+
`Unable to find prices for fee ${JSON.stringify(
140+
envConfig.fees[feeChain][i]
141+
)} on chain ${feeChain}`
142+
)
143+
}
144+
}
145+
fees[feeChain] = tmpFees
117146
}
118147

119148
/* for (const chain of Object.keys(config.supportedNetworks)) {

src/utils/address.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,13 @@ export function getOceanArtifactsAdressesByChainId(chain: number): any {
5555
return null
5656
}
5757

58+
// eslint-disable-next-line require-await
59+
export function getOceanTokenAddressForChain(chainId: number): Promise<string | null> {
60+
const addresses = getOceanArtifactsAdressesByChainId(chainId)
61+
if (addresses && addresses.Ocean) return addresses.Ocean
62+
return null
63+
}
64+
5865
// default token addresses per chain
5966
export const OCEAN_ARTIFACTS_ADDRESSES_PER_CHAIN = addresses
6067
export const DEVELOPMENT_CHAIN_ID = 8996

0 commit comments

Comments
 (0)