βοΈCreating a New Utility Mining Client
Deploy a contract implementing the interface
IFluidClient. Essentially the client must implementbatchReward()andgetUtilityVars(), with the former emitting the eventRewardfor each reward paid out and the latter returning your desired utility variables.Update the registry by calling
updateUtilityClientsinRegistry.sol. This requires the above client, an address for the relevant token, and a name for the client. This call must be made by the operator, which is currently a centralised entity, with plans in the works to decentralise this responsibility to the DAO.Update the automation used by the offchain worker. Namely, update
ENV_FLU_ETHEREUM_UTILITY_CONTRACTSin the application server for the given network (automation/<network>/application-server/mainnet.yml) to include the client name and address as set in the previous step. In the worker server and spooler automation (automation/<network>/worker-server/mainnet.ymlandautomation/<network>/worker-spooler/mainnet.ymlrespectively), updateENV_FLU_ETHEREUM_UTILITY_TOKEN_DETAILSto include the client name, token name, and token decimals. For example, adding Wombat:
diff --git a/automation/arbitrum/application-server/mainnet.yml b/automation/arbitrum/application-server/mainnet.yml
--- a/automation/arbitrum/application-server/mainnet.yml
+++ b/automation/arbitrum/application-server/mainnet.yml
@@ -1,8 +1,8 @@
DOCKER_IMAGE: microservice-arbitrum-application-server
DOCKERFILE_PATH: ./cmd/microservice-ethereum-application-server
-ENV_FLU_ETHEREUM_UTILITY_CONTRACTS: 'chronos initial boost:0x0176416bdc885b1bb751b0a014d495760a972a73:0x62030690385A481Ab0c6039fEA75AC6658B7b961'
+ENV_FLU_ETHEREUM_UTILITY_CONTRACTS: 'chronos initial boost:0x0176416bdc885b1bb751b0a014d495760a972a73:0x62030690385A481Ab0c6039fEA75AC6658B7b961,wombat initial boost:0x956454c7be9318863297309183c79b793d370401'
diff --git a/automation/arbitrum/worker-server/mainnet.yml b/automation/arbitrum/worker-server/mainnet.yml
--- a/automation/arbitrum/worker-server/mainnet.yml
+++ b/automation/arbitrum/worker-server/mainnet.yml
@@ -10,7 +10,7 @@ SERVICES:
SERVICE_NAME: microservice-arbitrum-worker-server-usdt
ENV_FLU_WORKER_ID: arbitrum-microservice-arbitrum-worker-server-usdt
ENV_FLU_ETHEREUM_CONTRACT_ADDR: "0xc9fa90d24b7103ad2215de52afec5e1e4c7a6e62"
- ENV_FLU_ETHERUEM_UTILITY_TOKEN_DETAILS: "FLUID:USDT:6,chronos initial boost:USDC:6"
+ ENV_FLU_ETHERUEM_UTILITY_TOKEN_DETAILS: "FLUID:USDT:6,wombat initial boost:WOM:18,chronos initial boost:USDC:6"
ENV_FLU_ETHEREUM_AMQP_QUEUE_NAME: arbitrum.worker.usdt
ENV_FLU_ETHEREUM_WORK_QUEUE: worker.arbitrum.server.work.usdt
@@ -18,7 +18,7 @@ SERVICES:
SERVICE_NAME: microservice-arbitrum-worker-server-usdc
ENV_FLU_WORKER_ID: arbitrum-microservice-arbitrum-worker-server-usdc
ENV_FLU_ETHEREUM_CONTRACT_ADDR: "0x4cfa50b7ce747e2d61724fcac57f24b748ff2b2a"
- ENV_FLU_ETHERUEM_UTILITY_TOKEN_DETAILS: "FLUID:USDC:6,chronos initial boost:USDC:6"
+ ENV_FLU_ETHERUEM_UTILITY_TOKEN_DETAILS: "FLUID:USDC:6,wombat initial boost:WOM:18,chronos initial boost:USDC:6"
ENV_FLU_ETHEREUM_AMQP_QUEUE_NAME: arbitrum.worker.usdc
ENV_FLU_ETHEREUM_WORK_QUEUE: worker.arbitrum.server.work.usdc
@@ -26,6 +26,6 @@ SERVICES:
SERVICE_NAME: microservice-arbitrum-worker-server-dai
ENV_FLU_WORKER_ID: arbitrum-microservice-arbitrum-worker-server-dai
ENV_FLU_ETHEREUM_CONTRACT_ADDR: "0x1b40e7812e75d02eef97e4399c33865d2ff5952b"
- ENV_FLU_ETHERUEM_UTILITY_TOKEN_DETAILS: "FLUID:DAI:18,chronos initial boost:USDC:6"
+ ENV_FLU_ETHERUEM_UTILITY_TOKEN_DETAILS: "FLUID:DAI:18,wombat initial boost:WOM:18,chronos initial boost:USDC:6"
ENV_FLU_ETHEREUM_AMQP_QUEUE_NAME: arbitrum.worker.dai
ENV_FLU_ETHEREUM_WORK_QUEUE: worker.arbitrum.server.work.dai
diff --git a/automation/arbitrum/worker-spooler/mainnet.yml b/automation/arbitrum/worker-spooler/mainnet.yml
--- a/automation/arbitrum/worker-spooler/mainnet.yml
+++ b/automation/arbitrum/worker-spooler/mainnet.yml
@@ -11,18 +11,18 @@ SERVICES:
ENV_FLU_WORKER_ID: arbitrum-microservice-arbitrum-worker-spooler-usdc
ENV_FLU_ETHEREUM_WINNERS_AMQP_QUEUE_NAME: arbitrum.winners.usdc
ENV_FLU_ETHEREUM_BATCHED_WINNERS_AMQP_QUEUE_NAME: arbitrum.winners.batched.usdc
- ENV_FLU_ETHERUEM_UTILITY_TOKEN_DETAILS: "FLUID:USDC:6,chronos initial boost:USDC:6"
+ ENV_FLU_ETHERUEM_UTILITY_TOKEN_DETAILS: "FLUID:USDC:6,wombat initial boost:WOM:18,chronos initial boost:USDC:6"
- SPOOLER_USDT:
SERVICE_NAME: microservice-arbitrum-worker-spooler-usdt
ENV_FLU_WORKER_ID: arbitrum-microservice-arbitrum-worker-spooler-usdt
ENV_FLU_ETHEREUM_WINNERS_AMQP_QUEUE_NAME: arbitrum.winners.usdt
ENV_FLU_ETHEREUM_BATCHED_WINNERS_AMQP_QUEUE_NAME: arbitrum.winners.batched.usdt
- ENV_FLU_ETHERUEM_UTILITY_TOKEN_DETAILS: "FLUID:USDT:6,chronos initial boost:USDC:6"
+ ENV_FLU_ETHERUEM_UTILITY_TOKEN_DETAILS: "FLUID:USDT:6,wombat initial boost:WOM:18,chronos initial boost:USDC:6"
- SPOOLER_DAI:
SERVICE_NAME: microservice-arbitrum-worker-spooler-dai
ENV_FLU_WORKER_ID: arbitrum-microservice-arbitrum-worker-spooler-dai
ENV_FLU_ETHEREUM_WINNERS_AMQP_QUEUE_NAME: arbitrum.winners.dai
ENV_FLU_ETHEREUM_BATCHED_WINNERS_AMQP_QUEUE_NAME: arbitrum.winners.batched.dai
- ENV_FLU_ETHERUEM_UTILITY_TOKEN_DETAILS: "FLUID:DAI:18,chronos initial boost:USDC:6"
+ ENV_FLU_ETHERUEM_UTILITY_TOKEN_DETAILS: "FLUID:DAI:18,wombat initial boost:WOM:18,chronos initial boost:USDC:6"
Set up an instance of
microservice-ethereum-track-winnersinautomation/<network>/track-winners/mainnet.yml, using the following template:
- TRACK_WINNERS_<TOKEN>:
SERVICE_NAME: microservice-<network>-track-winners-<token>
ENV_FLU_WORKER_ID: <network>-microservice-<network>-track-winners-<token>
ENV_FLU_ETHEREUM_CONTRACT_ADDR: "contract address of the underlying token"
ENV_FLU_ETHEREUM_UNDERLYING_TOKEN_NAME: TOKEN_NAME
ENV_FLU_ETHEREUM_UNDERLYING_TOKEN_DECIMALS: 6Last updated
Was this helpful?
