Sepolia Testnet

Contract

0x7d0EAD1c3A0e4d74E57E27052d054fB5d73C508D

Overview

ETH Balance

0 ETH

More Info

Multichain Info

N/A
Transaction Hash
Method
Block
From
To
Amount

There are no matching entries

Please try again later

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

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

Contract Name:
PoseidonPoseidonFullRoundKey0Column

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 1000000 runs

Other Settings:
default evmVersion, Apache-2.0 license

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 1 : PoseidonPoseidonFullRoundKey0Column.sol
/*
  Copyright 2019-2024 StarkWare Industries Ltd.

  Licensed under the Apache License, Version 2.0 (the "License").
  You may not use this file except in compliance with the License.
  You may obtain a copy of the License at

  https://www.starkware.co/open-source-license/

  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions
  and limitations under the License.
*/
// SPDX-License-Identifier: Apache-2.0.
pragma solidity ^0.6.12;

contract PoseidonPoseidonFullRoundKey0Column {
    function compute(uint256 x) external pure returns(uint256 result) {
        uint256 PRIME = 0x800000000000011000000000000000000000000000000000000000000000001;

        assembly {
            // Use Horner's method to compute f(x).
            // The idea is that
            //   a_0 + a_1 * x + a_2 * x^2 + ... + a_n * x^n =
            //   (...(((a_n * x) + a_{n-1}) * x + a_{n-2}) * x + ...) + a_0.
            // Consequently we need to do deg(f) horner iterations that consist of:
            //   1. Multiply the last result by x
            //   2. Add the next coefficient (starting from the highest coefficient)
            //
            //  We slightly diverge from the algorithm above by updating the result only once
            //  every 7 horner iterations.
            //  We do this because variable assignment in solidity's functional-style assembly results in
            //  a swap followed by a pop.
            //  7 is the highest batch we can do due to the 16 slots limit in evm.
            result :=
                add(0x2574ea7cc37bd716e0ec143a2420103589ba7b2af9d6b07569af3b108450a90, mulmod(
                add(0x712a2cab5d2a48c76a95de8f29a898d655cc216172a400ca054d6eb9950d698, mulmod(
                add(0x7865d89fa1e9dce49da0ac14d7437366bd450fb823a4fd3d2d8b1726f924c8f, mulmod(
                add(0x1b8c9c9cfe3c81279569f1130da6064cbf12c4b828d7e0cf60735514cf96c22, mulmod(
                add(0x11eaccb2939fb9e21a2a44d6f1e0608aac4248f817bc9458cce8a56077a22b1, mulmod(
                add(0x5f3e9a55edfd3f6abac770ff5606fca5aaf7074bedae94ade74395453235e8e, mulmod(
                add(0x7ed6ec4a18e23340489e4e36db8f4fcebf6b6ebd56185c29397344c5deea4c8, mulmod(
                    result,
                x, PRIME)),
                x, PRIME)),
                x, PRIME)),
                x, PRIME)),
                x, PRIME)),
                x, PRIME)),
                x, PRIME))

            result :=
                add(0x47da67f078d657e777a79423be81a5d41f445f9455b207ec9768858cfd134f1, mulmod(
                    result,
                x, PRIME))


        }
        return result % PRIME;
    }
}

Settings
{
  "metadata": {
    "useLiteralContent": true
  },
  "libraries": {},
  "remappings": [],
  "optimizer": {
    "enabled": true,
    "runs": 1000000
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract ABI

API
[{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"compute","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"pure","type":"function"}]

0x608060405234801561001057600080fd5b506101f7806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80635ed86d5c14610030575b600080fd5b61004d6004803603602081101561004657600080fd5b503561005f565b60408051918252519081900360200190f35b60007f080000000000001100000000000000000000000000000000000000000000000180838181818181818181818181818f097f07ed6ec4a18e23340489e4e36db8f4fcebf6b6ebd56185c29397344c5deea4c801097f05f3e9a55edfd3f6abac770ff5606fca5aaf7074bedae94ade74395453235e8e01097f011eaccb2939fb9e21a2a44d6f1e0608aac4248f817bc9458cce8a56077a22b101097f01b8c9c9cfe3c81279569f1130da6064cbf12c4b828d7e0cf60735514cf96c2201097f07865d89fa1e9dce49da0ac14d7437366bd450fb823a4fd3d2d8b1726f924c8f01097f0712a2cab5d2a48c76a95de8f29a898d655cc216172a400ca054d6eb9950d69801097f02574ea7cc37bd716e0ec143a2420103589ba7b2af9d6b07569af3b108450a90019150808383097f047da67f078d657e777a79423be81a5d41f445f9455b207ec9768858cfd134f10191508082816101b957fe5b06939250505056fea2646970667358221220c9c00049f87114b146862ac7883690d53e5d81699ea9c3a42e8fd8cba70b9a8d64736f6c634300060c0033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80635ed86d5c14610030575b600080fd5b61004d6004803603602081101561004657600080fd5b503561005f565b60408051918252519081900360200190f35b60007f080000000000001100000000000000000000000000000000000000000000000180838181818181818181818181818f097f07ed6ec4a18e23340489e4e36db8f4fcebf6b6ebd56185c29397344c5deea4c801097f05f3e9a55edfd3f6abac770ff5606fca5aaf7074bedae94ade74395453235e8e01097f011eaccb2939fb9e21a2a44d6f1e0608aac4248f817bc9458cce8a56077a22b101097f01b8c9c9cfe3c81279569f1130da6064cbf12c4b828d7e0cf60735514cf96c2201097f07865d89fa1e9dce49da0ac14d7437366bd450fb823a4fd3d2d8b1726f924c8f01097f0712a2cab5d2a48c76a95de8f29a898d655cc216172a400ca054d6eb9950d69801097f02574ea7cc37bd716e0ec143a2420103589ba7b2af9d6b07569af3b108450a90019150808383097f047da67f078d657e777a79423be81a5d41f445f9455b207ec9768858cfd134f10191508082816101b957fe5b06939250505056fea2646970667358221220c9c00049f87114b146862ac7883690d53e5d81699ea9c3a42e8fd8cba70b9a8d64736f6c634300060c0033

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

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.