ETH Price: $1,890.04 (-2.18%)

Contract

0xD5182D60d419ffaa127eEc9ec2dF8584A1D6859E

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
3145872025-01-28 11:09:5847 days ago1738062598  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

API
[{"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

0x0000008003000039000000400030043f00000001002001900000003e0000c13d00000060021002700000002302200197000000040020008c000000600000413d000000000301043b000000e003300270000000250030009c000000460000613d000000260030009c000000590000613d000000270030009c000000600000c13d000000640020008c000000600000413d0000000003000416000000000003004b000000600000c13d0000000403100370000000000303043b0000002404100370000000000404043b0000002b0040009c000000600000213d0000004404100370000000000404043b0000002c0040009c000000600000213d0000002305400039000000000025004b000000600000813d0000000405400039000000000651034f000000000606043b0000002c0060009c000000600000213d000000600060008c000000600000413d00000000046400190000002404400039000000000024004b000000600000213d0000002004500039000000000241034f000000000202043b000000280020009c000000620000213d0000002d01000041000000800010043f0000002001000039000000840010043f0000003001000039000000a40010043f0000003101000041000000c40010043f0000003201000041000000e40010043f000000300100004100000088000104300000000001000416000000000001004b000000600000c13d0000002001000039000001000010044300000120000004430000002401000041000000870001042e000000440020008c000000600000413d0000000002000416000000000002004b000000600000c13d0000000402100370000000000302043b0000002401100370000000000201043b0000000001030019008600780000040f000000280110012a000000400200043d0000000000120435000000230020009c0000002302008041000000400120021000000029011001c7000000870001042e0000000001000416000000000001004b000000600000c13d0000002801000041000000800010043f0000002a01000041000000870001042e000000000100001900000088000104300000002004400039000000000541034f000000000505043b000000000053004b0000006c0000413d0000002004400039000000000141034f000000000101043b000000000013004b0000004f0000a13d0000002d01000041000000800010043f0000002001000039000000840010043f0000002501000039000000a40010043f0000002e01000041000000c40010043f0000002f01000041000000e40010043f00000030010000410000008800010430000000000301001900000000011200a9000000000003004b0000007f0000613d00000000033100d9000000000023004b000000800000c13d000000000001042d0000003301000041000000000010043f0000001101000039000000040010043f000000340100004100000088000104300000008600000432000000870001042e000000880001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000c809356100000000000000000000000000000000000000000000000000000000aaf5eb6800000000000000000000000000000000000000000000000000000000437b503100000000000000000000000000000000000000000000000000000000000186a000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000800000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff08c379a0000000000000000000000000000000000000000000000000000000004d756c526577617264506f6c6963793a20746f6c6c206973206f7574206f662072616e676500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000008000000000000000004d756c526577617264506f6c6963793a206d756c7469706c65206d7573742062652067726561746572207468616e2031000000000000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cdf5d5a3566fdf56c11531d7f86f976840fed126a7b0922dd20ce78b1b55846c

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.