Skip to content
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
5 changes: 5 additions & 0 deletions packages/apps/job-launcher/server/.env.example
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@ PGP_PRIVATE_KEY=
PGP_ENCRYPT=
PGP_PASSPHRASE=
REPUTATION_ORACLE_ADDRESS=
CVAT_EXCHANGE_ORACLE_ADDRESS=
CVAT_RECORDING_ORACLE_ADDRESS=
AUDINO_EXCHANGE_ORACLE_ADDRESS=
AUDINO_RECORDING_ORACLE_ADDRESS=
HCAPTCHA_ORACLE_ADDRESS=
HCAPTCHA_RECORDING_ORACLE_URI=
HCAPTCHA_REPUTATION_ORACLE_URI=
HCAPTCHA_SITE_KEY=
Expand Down
15 changes: 15 additions & 0 deletions packages/apps/job-launcher/server/ENV.md
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,21 @@ REPUTATION_ORACLE_ADDRESS=
### List of reputation oracle addresses, typically comma-separated. Required
REPUTATION_ORACLES=

### Address of the CVAT exchange oracle contract. Required
CVAT_EXCHANGE_ORACLE_ADDRESS=

### Address of the CVAT recording oracle contract. Required
CVAT_RECORDING_ORACLE_ADDRESS=

### Address of the Audino exchange oracle contract. Required
AUDINO_EXCHANGE_ORACLE_ADDRESS=

### Address of the Audino recording oracle contract. Required
AUDINO_RECORDING_ORACLE_ADDRESS=

### Address of the hCaptcha oracle contract. Required
HCAPTCHA_ORACLE_ADDRESS=

### URI for the hCaptcha recording oracle service. Required
HCAPTCHA_RECORDING_ORACLE_URI=

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,11 @@ export const envValidator = Joi.object({
GAS_PRICE_MULTIPLIER: Joi.number(),
REPUTATION_ORACLE_ADDRESS: Joi.string().required(),
REPUTATION_ORACLES: Joi.string().required(),
CVAT_EXCHANGE_ORACLE_ADDRESS: Joi.string().required(),
CVAT_RECORDING_ORACLE_ADDRESS: Joi.string().required(),
AUDINO_EXCHANGE_ORACLE_ADDRESS: Joi.string(),
AUDINO_RECORDING_ORACLE_ADDRESS: Joi.string(),
HCAPTCHA_ORACLE_ADDRESS: Joi.string().required(),
HCAPTCHA_RECORDING_ORACLE_URI: Joi.string().required(),
HCAPTCHA_REPUTATION_ORACLE_URI: Joi.string().required(),
HCAPTCHA_SITE_KEY: Joi.string().required(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,50 @@ export class Web3ConfigService {
'HCAPTCHA_REPUTATION_ORACLE_URI',
);
}

/**
* Address of the CVAT exchange oracle contract.
* Required
*/
get cvatExchangeOracleAddress(): string {
return this.configService.getOrThrow<string>(
'CVAT_EXCHANGE_ORACLE_ADDRESS',
);
}

/**
* Address of the CVAT recording oracle contract.
* Required
*/
get cvatRecordingOracleAddress(): string {
return this.configService.getOrThrow<string>(
'CVAT_RECORDING_ORACLE_ADDRESS',
);
}

/**
* Address of the hCaptcha oracle contract.
* Required
*/
get hCaptchaOracleAddress(): string {
return this.configService.getOrThrow<string>('HCAPTCHA_ORACLE_ADDRESS');
}

/**
* Address of the Audino exchange oracle.
*/
get audinoExchangeOracleAddress(): string {
return this.configService.getOrThrow<string>(
'AUDINO_EXCHANGE_ORACLE_ADDRESS',
);
}

/**
* Address of the Audino recording oracle.
*/
get audinoRecordingOracleAddress(): string {
return this.configService.getOrThrow<string>(
'AUDINO_RECORDING_ORACLE_ADDRESS',
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,12 @@ import { Web3Service } from '../web3/web3.service';
import { Web3ConfigService } from '../../common/config/web3-config.service';
import { hashString } from '../../common/utils';
import { ErrorRoutingProtocol } from '../../common/constants/errors';
import { JobRequestType } from '../../common/enums/job';
import {
AudinoJobType,
CvatJobType,
HCaptchaJobType,
JobRequestType,
} from '../../common/enums/job';
import { ControlledError } from '../../common/errors/controlled';
import { NetworkConfigService } from '../../common/config/network-config.service';
import {
Expand Down Expand Up @@ -155,6 +160,26 @@ export class RoutingProtocolService {
exchangeOracle: string;
recordingOracle: string;
}> {
if (jobType === HCaptchaJobType.HCAPTCHA) {
return {
reputationOracle: this.web3ConfigService.hCaptchaOracleAddress,
exchangeOracle: this.web3ConfigService.hCaptchaOracleAddress,
recordingOracle: this.web3ConfigService.hCaptchaOracleAddress,
};
} else if (Object.values(CvatJobType).includes(jobType as CvatJobType)) {
return {
reputationOracle: this.web3ConfigService.reputationOracleAddress,
exchangeOracle: this.web3ConfigService.cvatExchangeOracleAddress,
recordingOracle: this.web3ConfigService.cvatRecordingOracleAddress,
};
} else if (jobType === AudinoJobType.AUDIO_TRANSCRIPTION) {
return {
reputationOracle: this.web3ConfigService.reputationOracleAddress,
exchangeOracle: this.web3ConfigService.audinoExchangeOracleAddress,
recordingOracle: this.web3ConfigService.audinoRecordingOracleAddress,
};
}

const reputationOracle = this.selectReputationOracle();
const availableOracles = await this.web3Service.findAvailableOracles(
chainId,
Expand Down
2 changes: 2 additions & 0 deletions packages/apps/job-launcher/server/test/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,8 @@ export const mockConfig: any = {
STRIPE_API_VERSION: MOCK_STRIPE_API_VERSION,
STRIPE_APP_NAME: MOCK_STRIPE_APP_NAME,
STRIPE_APP_INFO_URL: MOCK_STRIPE_APP_INFO_URL,
CVAT_EXCHANGE_ORACLE_ADDRESS: MOCK_ADDRESS,
CVAT_RECORDING_ORACLE_ADDRESS: MOCK_ADDRESS,
HCAPTCHA_SITE_KEY: MOCK_HCAPTCHA_SITE_KEY,
HCAPTCHA_RECORDING_ORACLE_URI: MOCK_RECORDING_ORACLE_URL,
HCAPTCHA_REPUTATION_ORACLE_URI: MOCK_REPUTATION_ORACLE_URL,
Expand Down
2 changes: 2 additions & 0 deletions scripts/cvat/docker-compose.local.yml
Original file line number Diff line number Diff line change
Expand Up @@ -442,6 +442,8 @@ services:
S3_BUCKET: *bucket_name_manifests
REPUTATION_ORACLES: *reputation_oracle_address
REPUTATION_ORACLE_ADDRESS: *reputation_oracle_address
CVAT_EXCHANGE_ORACLE_ADDRESS: *exchange_oracle_address
CVAT_RECORDING_ORACLE_ADDRESS: *recording_oracle_address
FE_URL: http://localhost:${JOB_LAUNCHER_CLIENT_PORT:?}

job-launcher-client:
Expand Down
3 changes: 3 additions & 0 deletions scripts/fortune/.env.jl-server
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,12 @@ GAS_PRICE_MULTIPLIER=1
# PGP_PRIVATE_KEY=
PGP_ENCRYPT=false
# PGP_PASSPHRASE=
CVAT_EXCHANGE_ORACLE_ADDRESS=0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC
CVAT_RECORDING_ORACLE_ADDRESS=0x90F79bf6EB2c4f870365E785982E1f101E93b906
REPUTATION_ORACLE_ADDRESS=0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65
HCAPTCHA_RECORDING_ORACLE_URI=a
HCAPTCHA_REPUTATION_ORACLE_URI=a
HCAPTCHA_ORACLE_ADDRESS=a
HCAPTCHA_SITE_KEY=a

# Auth
Expand Down