ETH Price: $3,251.03 (+1.88%)

Contract

0xa7c2092477B94d5259645139d6846b38D4f2bcB4

Overview

ETH Balance

0 ETH

ETH Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

1 Internal Transaction found.

Latest 1 internal transaction

Parent Transaction Hash Block From To
4431682025-01-29 23:09:5632 hrs ago1738192196  Contract Creation0 ETH
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x28DD21e0...927ABc6e5
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
MulRewardPolicy

Compiler Version
v0.8.28+commit.7893614a

ZkSolc Version
v1.5.7

Optimization Enabled:
Yes with Mode 3

Other Settings:
cancun EvmVersion
File 1 of 2 : MulRewardPolicy.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;

import {IRewardPolicy} from "./interfaces/IRewardPolicy.sol";

contract MulRewardPolicy is IRewardPolicy {
    uint256 public constant PRECISION = 100_000;

    function escrow(uint256 toll, address, bytes calldata data) external pure returns (uint256 amount) {
        (uint256 multiple, uint256 tollMinimum, uint256 tollMaximum) = abi.decode(data, (uint256, uint256, uint256));
        if (multiple <= PRECISION) {
            revert("MulRewardPolicy: multiple must be greater than 1");
        }
        if (toll < tollMinimum || toll > tollMaximum) {
            revert("MulRewardPolicy: toll is out of range");
        }
        amount = toll * multiple / PRECISION;
    }

    function payout(uint256 max, bytes32 payoutData) external pure returns (uint256) {
        return max * uint256(payoutData) / PRECISION;
    }
}

File 2 of 2 : IRewardPolicy.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;

interface IRewardPolicy {
    // The maximum amount that can be paid out.
    function escrow(uint256 toll, address player, bytes calldata data) external returns (uint256 amount);
    // The actual amount that will be paid out.
    function payout(uint256 reward, bytes32 data) external returns (uint256 amount);
}

Settings
{
  "viaIR": false,
  "codegen": "yul",
  "remappings": [
    "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
    "ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/",
    "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
    "forge-std/=lib/forge-std/src/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/",
    "halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/"
  ],
  "evmVersion": "cancun",
  "outputSelection": {
    "*": {
      "*": [
        "abi",
        "metadata"
      ],
      "": [
        "ast"
      ]
    }
  },
  "optimizer": {
    "enabled": true,
    "mode": "3",
    "fallback_to_optimizing_for_size": false,
    "disable_system_request_memoization": true
  },
  "metadata": {},
  "libraries": {},
  "enableEraVMExtensions": false,
  "forceEVMLA": false
}

Contract Security Audit

Contract ABI

[{"inputs":[],"name":"PRECISION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"toll","type":"uint256"},{"internalType":"address","name":"","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"escrow","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"max","type":"uint256"},{"internalType":"bytes32","name":"payoutData","type":"bytes32"}],"name":"payout","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"}]

Deployed Bytecode

0x0000008003000039000000400030043f00000001002001900000003e0000c13d00000060021002700000002302200197000000040020008c000000600000413d000000000301043b000000e003300270000000250030009c000000460000613d000000260030009c000000590000613d000000270030009c000000600000c13d000000640020008c000000600000413d0000000003000416000000000003004b000000600000c13d0000000403100370000000000303043b0000002404100370000000000404043b0000002b0040009c000000600000213d0000004404100370000000000404043b0000002c0040009c000000600000213d0000002305400039000000000025004b000000600000813d0000000405400039000000000651034f000000000606043b0000002c0060009c000000600000213d000000600060008c000000600000413d00000000046400190000002404400039000000000024004b000000600000213d0000002004500039000000000241034f000000000202043b000000280020009c000000620000213d0000002d01000041000000800010043f0000002001000039000000840010043f0000003001000039000000a40010043f0000003101000041000000c40010043f0000003201000041000000e40010043f000000300100004100000088000104300000000001000416000000000001004b000000600000c13d0000002001000039000001000010044300000120000004430000002401000041000000870001042e000000440020008c000000600000413d0000000002000416000000000002004b000000600000c13d0000000402100370000000000302043b0000002401100370000000000201043b0000000001030019008600780000040f000000280110012a000000400200043d0000000000120435000000230020009c0000002302008041000000400120021000000029011001c7000000870001042e0000000001000416000000000001004b000000600000c13d0000002801000041000000800010043f0000002a01000041000000870001042e000000000100001900000088000104300000002004400039000000000541034f000000000505043b000000000053004b0000006c0000413d0000002004400039000000000141034f000000000101043b000000000013004b0000004f0000a13d0000002d01000041000000800010043f0000002001000039000000840010043f0000002501000039000000a40010043f0000002e01000041000000c40010043f0000002f01000041000000e40010043f00000030010000410000008800010430000000000301001900000000011200a9000000000003004b0000007f0000613d00000000033100d9000000000023004b000000800000c13d000000000001042d0000003301000041000000000010043f0000001101000039000000040010043f000000340100004100000088000104300000008600000432000000870001042e000000880001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000c809356100000000000000000000000000000000000000000000000000000000aaf5eb6800000000000000000000000000000000000000000000000000000000437b503100000000000000000000000000000000000000000000000000000000000186a000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000800000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff08c379a0000000000000000000000000000000000000000000000000000000004d756c526577617264506f6c6963793a20746f6c6c206973206f7574206f662072616e676500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000008000000000000000004d756c526577617264506f6c6963793a206d756c7469706c65206d7573742062652067726561746572207468616e2031000000000000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000736174e052f1dd600be3ef45f2870a7f3db597d52a41cae8dd90912fe2f031ff

Block Transaction Gas Used Reward
view all blocks produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.