Skip to content

Commit 94963fe

Browse files
committed
Env vars, flow updates
1 parent 1fe6990 commit 94963fe

6 files changed

Lines changed: 52 additions & 58 deletions

File tree

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
## Development
44

5+
1. TLS CA key - `export NODE_EXTRA_CA_CERTS=$(pwd)/admin-ui-ca.crt`
6+
57
2. Redis queues - `docker run --name validator_dev_redis -p 6379:6379 redis:7.2`
68

79
3. MongoDB store - `docker run --name validator_dev_mongo -p 27017:27017 mongo:5.0`

operations/staking-rewards-controller-stage.hcl

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -27,22 +27,40 @@ job "staking-rewards-controller-stage" {
2727
}
2828

2929
vault {
30-
policies = ["valid-ator-stage"]
30+
policies = ["staking-rewards-stage"]
31+
}
32+
33+
env {
34+
BUMP=""
35+
IS_LIVE="true"
36+
VERSION="[[.commit_sha]]"
37+
BUNDLER_GATEWAY="https://ar.anyone.tech"
38+
BUNDLER_NODE="https://ar.anyone.tech/bundler"
39+
CPU_COUNT="2"
40+
CONSUL_HOST="${NOMAD_IP_http}"
41+
CONSUL_PORT="8500"
42+
SERVICE_NAME="staking-rewards-controller-stage"
43+
ROUND_PERIOD_SECONDS="900"
44+
DO_CLEAN="false"
45+
PORT="${NOMAD_PORT_http}"
46+
NO_COLOR="1"
47+
MIN_HEALTHY_CONSENSUS_WEIGHT="50"
3148
}
3249

3350
template {
3451
data = <<EOH
35-
{{with secret "kv/valid-ator/stage"}}
36-
STAKING_REWARDS_CONTROLLER_KEY="{{.Data.data.DISTRIBUTION_OPERATOR_KEY}}"
37-
38-
BUNDLER_NETWORK="{{.Data.data.IRYS_NETWORK}}"
39-
BUNDLER_CONTROLLER_KEY="{{.Data.data.DISTRIBUTION_OPERATOR_KEY}}"
40-
41-
JSON_RPC="{{.Data.data.JSON_RPC}}"
42-
CONSUL_TOKEN="{{.Data.data.CONSUL_TOKEN_RELAY_REWARDS}}"
52+
{{with secret "kv/staking-rewards/stage"}}
53+
STAKING_REWARDS_CONTROLLER_KEY="{{.Data.data.STAKING_REWARDS_CONTROLLER_KEY}}"
54+
REWARDS_POOL_KEY="{{.Data.data.STAKING_REWARDS_CONTROLLER_KEY}}"
55+
BUNDLER_NETWORK="{{.Data.data.BUNDLER_NETWORK}}"
56+
BUNDLER_CONTROLLER_KEY="{{.Data.data.STAKING_REWARDS_CONTROLLER_KEY}}"
57+
EVM_JSON_RPC="{{.Data.data.EVM_JSON_RPC}}"
58+
CONSUL_TOKEN_CONTROLLER_CLUSTER="{{.Data.data.CONSUL_TOKEN_CONTROLLER_CLUSTER}}"
4359
{{end}}
60+
4461
OPERATOR_REGISTRY_PROCESS_ID="[[ consulKey "smart-contracts/stage/operator-registry-address" ]]"
4562
TOKEN_CONTRACT_ADDRESS="[[ consulKey "ator-token/sepolia/stage/address" ]]"
63+
HODLER_CONTRACT_ADDRESS="[[ consulKey "hodler/sepolia/stage/address" ]]"
4664
{{- range service "validator-stage-mongo" }}
4765
MONGO_URI="mongodb://{{ .Address }}:{{ .Port }}/staking-rewards-controller-stage-testnet"
4866
{{- end }}
@@ -54,27 +72,12 @@ job "staking-rewards-controller-stage" {
5472
{{- range service "onionoo-war-live" }}
5573
ONIONOO_DETAILS_URI="http://{{ .Address }}:{{ .Port }}/details"
5674
{{- end }}
75+
ONIONOO_REQUEST_TIMEOUT="60000"
76+
ONIONOO_REQUEST_MAX_REDIRECTS="3"
5777
EOH
5878
destination = "secrets/file.env"
5979
env = true
6080
}
61-
62-
env {
63-
BUMP="redeploy-rewards-3"
64-
IS_LIVE="true"
65-
VERSION="[[.commit_sha]]"
66-
BUNDLER_GATEWAY="https://ar.anyone.tech"
67-
BUNDLER_NODE="https://ar.anyone.tech/bundler"
68-
CPU_COUNT="2"
69-
CONSUL_HOST="${NOMAD_IP_http}"
70-
CONSUL_PORT="8500"
71-
SERVICE_NAME="staking-rewards-controller-stage"
72-
ROUND_PERIOD_SECONDS="900"
73-
DO_CLEAN="false"
74-
PORT="${NOMAD_PORT_http}"
75-
NO_COLOR="1"
76-
MIN_HEALTHY_CONSENSUS_WEIGHT="50"
77-
}
7881

7982
resources {
8083
cpu = 2048

src/app.module.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { ConfigModule, ConfigService } from '@nestjs/config'
66
import { DistributionModule } from './distribution/distribution.module'
77
import { BullModule } from '@nestjs/bullmq'
88
import { ClusterModule } from './cluster/cluster.module'
9-
import { RelayRewardsModule } from './staking-rewards/staking-rewards.module'
9+
import { StakingRewardsModule } from './staking-rewards/staking-rewards.module'
1010
import { OperatorRegistryModule } from './operator-registry/operator-registry.module'
1111
import { BundlingModule } from './bundling/bundling.module'
1212

@@ -37,7 +37,7 @@ import { BundlingModule } from './bundling/bundling.module'
3737
BundlingModule,
3838
DistributionModule,
3939
ClusterModule,
40-
RelayRewardsModule,
40+
StakingRewardsModule,
4141
OperatorRegistryModule,
4242
],
4343
controllers: [AppController],

src/distribution/distribution.service.ts

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -146,15 +146,15 @@ export class DistributionService {
146146
}
147147
}
148148

149-
data[verifiedAddress].expected++
149+
data[verifiedAddress].expected = data[verifiedAddress].expected + 1
150150
})
151151

152152
relaysData.forEach(relay => {
153153
const verifiedAddress = verificationData[relay.fingerprint]
154154
if (verifiedAddress && verifiedAddress.length > 0) {
155-
data[verifiedAddress].found++
155+
data[verifiedAddress].found = data[verifiedAddress].found + 1
156156
if (relay.running && relay.consensus_weight > this.minHealthyConsensusWeight) {
157-
data[verifiedAddress].running++
157+
data[verifiedAddress].running = data[verifiedAddress].running + 1
158158
}
159159
} else {
160160
// this.logger.debug(`Found unverified relay ${relay.fingerprint}`)
@@ -163,18 +163,19 @@ export class DistributionService {
163163

164164
const scores = []
165165

166-
Object.keys(data).forEach(hodler => {
167-
const hodlerData = data[hodler]
168-
Object.keys(hodlerData).forEach(operator => {
169-
const runningShare = Math.max(0, Math.min(hodlerData.running / hodlerData.expected, 1))
170-
const staked = stakingData[hodler][operator] ?? '0'
171-
scores.push({
172-
Hodler: hodler,
173-
Operator: operator,
174-
Running: runningShare,
175-
Staked: staked
166+
Object.keys(data).forEach(operator => {
167+
const runningShare = Math.max(0, Math.min(data[operator].running / data[operator].expected, 1))
168+
if (stakingData[operator]) {
169+
Object.keys(stakingData[operator]).forEach(hodler => {
170+
const staked = stakingData[operator][hodler] ?? '0'
171+
scores.push({
172+
Hodler: hodler,
173+
Operator: operator,
174+
Running: runningShare,
175+
Staked: staked
176+
})
176177
})
177-
})
178+
}
178179
})
179180

180181
return scores

src/operator-registry/operator-registry.service.ts

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ export class OperatorRegistryService {
1414
private isLive?: string
1515

1616
private readonly operatorRegistryProcessId: string
17-
private readonly operatorRegistryControllerKey: string
1817

1918
constructor(
2019
private readonly config: ConfigService<{
@@ -31,15 +30,7 @@ export class OperatorRegistryService {
3130
})
3231
if (operatorRegistryPid != undefined) {
3332
this.operatorRegistryProcessId = operatorRegistryPid
34-
} else this.logger.error('Missing relay rewards process id')
35-
36-
const operatorRegistryKey = this.config.get<string>('RELAY_REWARDS_CONTROLLER_KEY', {
37-
infer: true,
38-
})
39-
40-
if (operatorRegistryKey != undefined) {
41-
this.operatorRegistryControllerKey = operatorRegistryKey
42-
} else this.logger.error('Missing relay rewards controller key')
33+
} else this.logger.error('Missing operator rewards process id')
4334
}
4435

4536
public async getOperatorRegistryState(): Promise<OperatorRegistryState> {

src/staking-rewards/staking-rewards.service.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ export class StakingRewardsService {
2626
IS_LIVE: string
2727
STAKING_REWARDS_PROCESS_ID: string
2828
STAKING_REWARDS_CONTROLLER_KEY: string
29-
HODLER_ADDRESS: string
29+
HODLER_CONTRACT_ADDRESS: string
3030
EVM_JSON_RPC: string
3131
}>
3232
) {
@@ -37,7 +37,7 @@ export class StakingRewardsService {
3737

3838
const provider = new ethers.JsonRpcProvider(jsonRpc)
3939

40-
const hodlerAddress = this.config.get<string>('HODLER_ADDRESS', { infer: true })
40+
const hodlerAddress = this.config.get<string>('HODLER_CONTRACT_ADDRESS', { infer: true })
4141
this.hodlerContract = new ethers.Contract(
4242
hodlerAddress,
4343
hodlerABI,
@@ -73,10 +73,7 @@ export class StakingRewardsService {
7373
const keys = await this.hodlerContract.getHodlerKeys()
7474
for (const key of keys) {
7575
const stakes: { operator: string, amount: string }[] = await this.hodlerContract.getStakes(key)
76-
stakes.forEach((stake) => {
77-
this.logger.debug(`Found stake: ${stake}`)
78-
result[key][stake.operator] = stake.amount
79-
})
76+
stakes.forEach((stake) => result[stake.operator][key] = stake.amount)
8077
}
8178

8279
return result

0 commit comments

Comments
 (0)