Sepolia Testnet

Contract

0x4fA977A54e50dE83c311626E551f690f96534C38

Overview

ETH Balance

0 ETH

Multichain Info

N/A
Transaction Hash
Method
Block
From
To
Calculate AI Res...66481572024-09-07 8:19:00222 days ago1725697140IN
0x4fA977A5...f96534C38
0.0234 ETH0.0191283911.63077228
Calculate AI Res...65312552024-08-19 15:38:36241 days ago1724081916IN
0x4fA977A5...f96534C38
0.0191 ETH0.0104086.3292661
Calculate AI Res...64668812024-08-09 12:33:00251 days ago1723206780IN
0x4fA977A5...f96534C38
0.05 ETH0.0520672531.6786745
Calculate AI Res...64625452024-08-08 19:54:24252 days ago1723146864IN
0x4fA977A5...f96534C38
0.032 ETH0.014542929.09705288
Calculate AI Res...64624992024-08-08 19:43:24252 days ago1723146204IN
0x4fA977A5...f96534C38
0.0287 ETH0.012901348.07043629
Calculate AI Res...64624762024-08-08 19:37:36252 days ago1723145856IN
0x4fA977A5...f96534C38
0.0179 ETH0.000811687.46476042
Calculate AI Res...64624752024-08-08 19:37:24252 days ago1723145844IN
0x4fA977A5...f96534C38
0.0179 ETH0.011942917.47066541
Calculate AI Res...62368122024-07-03 8:01:36288 days ago1719993696IN
0x4fA977A5...f96534C38
0.1793 ETH0.1628711763.02729788
Calculate AI Res...62365762024-07-03 7:05:48288 days ago1719990348IN
0x4fA977A5...f96534C38
0.1206 ETH0.0933457641.58907435
Calculate AI Res...62365762024-07-03 7:05:48288 days ago1719990348IN
0x4fA977A5...f96534C38
0.0752 ETH0.0036546832.50512111

Latest 10 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Request Callback66481572024-09-07 8:19:00222 days ago1725697140
0x4fA977A5...f96534C38
0.0234 ETH
Request Callback65312552024-08-19 15:38:36241 days ago1724081916
0x4fA977A5...f96534C38
0.0191 ETH
Request Callback64668812024-08-09 12:33:00251 days ago1723206780
0x4fA977A5...f96534C38
0.05 ETH
Request Callback64625452024-08-08 19:54:24252 days ago1723146864
0x4fA977A5...f96534C38
0.032 ETH
Request Callback64624992024-08-08 19:43:24252 days ago1723146204
0x4fA977A5...f96534C38
0.0287 ETH
Request Callback64624762024-08-08 19:37:36252 days ago1723145856
0x4fA977A5...f96534C38
0.0179 ETH
Request Callback64624752024-08-08 19:37:24252 days ago1723145844
0x4fA977A5...f96534C38
0.0179 ETH
Request Callback62368122024-07-03 8:01:36288 days ago1719993696
0x4fA977A5...f96534C38
0.1793 ETH
Request Callback62365762024-07-03 7:05:48288 days ago1719990348
0x4fA977A5...f96534C38
0.1206 ETH
Request Callback62365762024-07-03 7:05:48288 days ago1719990348
0x4fA977A5...f96534C38
0.0752 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Prompt

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 3 : Prompt.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;

import {IAIOracle} from "OAO/contracts/interfaces/IAIOracle.sol";
import {AIOracleCallbackReceiver} from "OAO/contracts/AIOracleCallbackReceiver.sol";

/// @notice User interfacing contract that interacts with OAO
/// @dev Prompt contract inherits AIOracleCallbackReceiver, so that OPML nodes can callback with the result.
contract Prompt is AIOracleCallbackReceiver {
    event promptsUpdated(
        uint256 requestId,
        uint256 modelId,
        string input,
        string output,
        bytes callbackData
    );

    event ScoreUpdated(address indexed user, uint8 newScore);

    event promptRequest(
        uint256 requestId,
        address sender,
        uint256 modelId,
        string prompt
    );

    struct AIOracleRequest {
        address sender;
        uint256 modelId;
        bytes input;
        bytes output;
    }

    address public owner;

    string private systemPrompt =
        "7007 protocol tokenizes AI outputs as unique inference  assets, each representing a specific AI-generated data piece. This protocol makes AI inferences verifiable, immutable, and non-fungible, securing data and computation integrity on the blockchain. You are rating community members engagement with and potential to improve a crypto project. Rate replies based on: 0-1: The reply does not contribute value or is unclear/incomplete/short. 2-5: The member only wants financial incentive only but provides insufficient details to introduce their potential contribution. 6-9: The member could potentially improve the project and explains their plans and contribution convincingly. 10: The reply shows special passion and benefits for the project. You must output only the score in the format:";

    modifier onlyOwner() {
        require(msg.sender == owner, "Only owner");
        _;
    }

    /// @dev requestId => AIOracleRequest
    mapping(uint256 => AIOracleRequest) public requests;

    /// @dev modelId => callback gasLimit
    mapping(uint256 => uint64) public callbackGasLimit;

    // @dev address => score
    mapping(address => uint8) public addressScore;

    /// @notice Initialize the contract, binding it to a specified AIOracle.
    constructor(IAIOracle _aiOracle) AIOracleCallbackReceiver(_aiOracle) {
        owner = msg.sender;
        callbackGasLimit[14] = 2_500_000; // score checking
    }

    /// @notice sets the callback gas limit for a model
    /// @dev only owner can set the gas limit
    function setCallbackGasLimit(
        uint256 modelId,
        uint64 gasLimit
    ) external onlyOwner {
        callbackGasLimit[modelId] = gasLimit;
    }

    /// @dev uint256: modelID => (string: prompt => string: output)
    mapping(uint256 => mapping(string => string)) public prompts;

    /// @notice returns the output for the specified model and prompt
    function getAIResult(
        uint256 modelId,
        string calldata prompt
    ) external view returns (string memory) {
        string memory input = string(
            abi.encodePacked(
                '{"instruction":"',
                systemPrompt,
                '",',
                '"input": "',
                prompt,
                '"}'
            )
        );
        return prompts[modelId][input];
    }

    /// @notice OAO executes this method after it finishes with computation
    /// @param requestId id of the request
    /// @param output result of the OAO computation
    /// @param callbackData optional data that is executed in the callback
    function aiOracleCallback(
        uint256 requestId,
        bytes calldata output,
        bytes calldata callbackData
    ) external override onlyAIOracleCallback {
        // since we do not set the callbackData in this example, the callbackData should be empty
        AIOracleRequest storage request = requests[requestId];
        require(request.sender != address(0), "request does not exist");
        request.output = output;
        prompts[request.modelId][string(request.input)] = string(output);

        uint8 outputScore = safelyConvertToScore(output);
        address sender = request.sender;
        uint8 currentScore = addressScore[sender];
        if (outputScore > currentScore) {
            addressScore[sender] = outputScore;
            emit ScoreUpdated(sender, outputScore);
        }

        emit promptsUpdated(
            requestId,
            request.modelId,
            string(request.input),
            string(output),
            callbackData
        );
    }

    function safelyConvertToScore(
        bytes memory b
    ) public pure returns (uint8) {
        if (b.length == 0) return 5; // Empty input

        // Only consider the first byte
        uint8 firstByte = uint8(b[0]);

        if (firstByte >= 48 && firstByte <= 57) {
            uint8 digit = firstByte - 48;
            if (digit >= 1 && digit <= 10) {
                return digit;
            }
        }

        // Default to 5 for any invalid input
        return 5;
    }

    /// @notice estimating fee that is spent by OAO
    function estimateFee(uint256 modelId) public view returns (uint256) {
        return aiOracle.estimateFee(modelId, callbackGasLimit[modelId]);
    }

    function setSystemPrompt(string calldata _systemPrompt) external onlyOwner {
        systemPrompt = _systemPrompt;
    }

    /// @notice main point of interaction with OAO
    /// @dev aiOracle.requestCallback sends request to OAO
    function calculateAIResult(
        uint256 modelId,
        string calldata prompt
    ) external payable returns (uint256) {
        bytes memory input = bytes(
            abi.encodePacked(
                '{"instruction":"',
                systemPrompt,
                '",',
                '"input": "',
                prompt,
                '"}'
            )
        );
        uint256 requestId = aiOracle.requestCallback{value: msg.value}(
            modelId,
            input,
            address(this),
            callbackGasLimit[modelId],
            ""
        );
        AIOracleRequest storage request = requests[requestId];
        request.input = input;
        request.sender = msg.sender;
        request.modelId = modelId;
        emit promptRequest(requestId, msg.sender, modelId, prompt);
        return requestId;
    }
}

File 2 of 3 : IAIOracle.sol
// SampleContract.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

interface IAIOracle {
    /// @notice Event emitted upon receiving a callback request through requestCallback.
    event AICallbackRequest(
        address indexed account,
        uint256 indexed requestId,
        uint256 modelId,
        bytes input,
        address callbackContract,
        uint64 gasLimit,
        bytes callbackData
    );

    /// @notice Event emitted when the result is uploaded or update.
    event AICallbackResult(
        address indexed account,
        uint256 indexed requestId,
        address invoker,
        bytes output
    );

    /**
     * initiate a request in OAO
     * @param modelId ID for AI model
     * @param input input for AI model
     * @param callbackContract address of callback contract
     * @param gasLimit gas limitation of calling the callback function
     * @param callbackData optional, user-defined data, will send back to the callback function
     * @return requestID
     */
    function requestCallback(
        uint256 modelId,
        bytes memory input,
        address callbackContract,
        uint64 gasLimit,
        bytes memory callbackData
    ) external payable returns (uint256);

    function estimateFee(uint256 modelId, uint256 gasLimit) external view returns (uint256);

    function isFinalized(uint256 requestId) external view returns (bool);
}

File 3 of 3 : AIOracleCallbackReceiver.sol
// SampleContract.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

import "./interfaces/IAIOracle.sol";

/// @notice A base contract for writing a AIOracle app
abstract contract AIOracleCallbackReceiver {

    // Address of the AIOracle contract
    IAIOracle public immutable aiOracle;

    // Invalid callback source error
    error UnauthorizedCallbackSource(IAIOracle expected, IAIOracle found);

    /// @notice Initialize the contract, binding it to a specified AIOracle contract
    constructor(IAIOracle _aiOracle) {
        aiOracle = _aiOracle;
    }

    /// @notice Verify this is a callback by the aiOracle contract 
    modifier onlyAIOracleCallback() {
        IAIOracle foundRelayAddress = IAIOracle(msg.sender);
        if (foundRelayAddress != aiOracle) {
            revert UnauthorizedCallbackSource(aiOracle, foundRelayAddress);
        }
        _;
    }

    /**
     * @dev the callback function in OAO, should add the modifier onlyAIOracleCallback!
     * @param requestId Id for the request in OAO (unique per request)
     * @param output AI model's output
     * @param callbackData user-defined data (The same as when the user call aiOracle.requestCallback)
     */
    function aiOracleCallback(uint256 requestId, bytes calldata output, bytes calldata callbackData) external virtual;

    function isFinalized(uint256 requestId) external view returns (bool) {
        return aiOracle.isFinalized(requestId);
    }
}

Settings
{
  "remappings": [
    "@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/",
    "OAO/=lib/OAO/",
    "forge-std/=lib/forge-std/src/",
    "@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "paris",
  "viaIR": false,
  "libraries": {}
}

Contract ABI

API
[{"inputs":[{"internalType":"contract IAIOracle","name":"_aiOracle","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"contract IAIOracle","name":"expected","type":"address"},{"internalType":"contract IAIOracle","name":"found","type":"address"}],"name":"UnauthorizedCallbackSource","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint8","name":"newScore","type":"uint8"}],"name":"ScoreUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"modelId","type":"uint256"},{"indexed":false,"internalType":"string","name":"prompt","type":"string"}],"name":"promptRequest","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"modelId","type":"uint256"},{"indexed":false,"internalType":"string","name":"input","type":"string"},{"indexed":false,"internalType":"string","name":"output","type":"string"},{"indexed":false,"internalType":"bytes","name":"callbackData","type":"bytes"}],"name":"promptsUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"addressScore","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"aiOracle","outputs":[{"internalType":"contract IAIOracle","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"bytes","name":"output","type":"bytes"},{"internalType":"bytes","name":"callbackData","type":"bytes"}],"name":"aiOracleCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"modelId","type":"uint256"},{"internalType":"string","name":"prompt","type":"string"}],"name":"calculateAIResult","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"callbackGasLimit","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"modelId","type":"uint256"}],"name":"estimateFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"modelId","type":"uint256"},{"internalType":"string","name":"prompt","type":"string"}],"name":"getAIResult","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"name":"isFinalized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"string","name":"","type":"string"}],"name":"prompts","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"requests","outputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"modelId","type":"uint256"},{"internalType":"bytes","name":"input","type":"bytes"},{"internalType":"bytes","name":"output","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"b","type":"bytes"}],"name":"safelyConvertToScore","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"modelId","type":"uint256"},{"internalType":"uint64","name":"gasLimit","type":"uint64"}],"name":"setCallbackGasLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_systemPrompt","type":"string"}],"name":"setSystemPrompt","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6103e060405261031660a081815290620017e060c0396001906200002490826200015b565b503480156200003257600080fd5b5060405162001af638038062001af6833981016040819052620000559162000227565b6001600160a01b0316608052600080546001600160a01b03191633178155600e905260036020527fd6ebcc64c739277b117ce359e436534b234b76e914c80ad276abf5b56207893980546001600160401b031916622625a017905562000259565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000e157607f821691505b6020821081036200010257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200015657600081815260208120601f850160051c81016020861015620001315750805b601f850160051c820191505b8181101562000152578281556001016200013d565b5050505b505050565b81516001600160401b03811115620001775762000177620000b6565b6200018f81620001888454620000cc565b8462000108565b602080601f831160018114620001c75760008415620001ae5750858301515b600019600386901b1c1916600185901b17855562000152565b600085815260208120601f198616915b82811015620001f857888601518255948401946001909101908401620001d7565b5085821015620002175787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200023a57600080fd5b81516001600160a01b03811681146200025257600080fd5b9392505050565b60805161154862000298600039600081816101a201528181610387015281816105000152818161087e015281816108bb0152610b6e01526115486000f3fe6080604052600436106100dd5760003560e01c8063813d1e151161007f5780638da5cb5b116100595780638da5cb5b146102e0578063b034781414610300578063dd3c176114610320578063fac5d7e11461034057600080fd5b8063813d1e151461026e57806381d12c58146102905780638cbc52d9146102c057600080fd5b806331b221cd116100bb57806331b221cd1461019057806333727c4d146101dc578063482640341461020c578063629942d51461023e57600080fd5b8063127e8e4d146100e257806320f38718146101155780632c6296b714610163575b600080fd5b3480156100ee57600080fd5b506101026100fd366004610c79565b610353565b6040519081526020015b60405180910390f35b34801561012157600080fd5b5061014b610130366004610c79565b6003602052600090815260409020546001600160401b031681565b6040516001600160401b03909116815260200161010c565b34801561016f57600080fd5b5061018361017e366004610cda565b6103ff565b60405161010c9190610d75565b34801561019c57600080fd5b506101c47f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161010c565b3480156101e857600080fd5b506101fc6101f7366004610c79565b6104e7565b604051901515815260200161010c565b34801561021857600080fd5b5061022c610227366004610e1a565b610573565b60405160ff909116815260200161010c565b34801561024a57600080fd5b5061022c610259366004610e6a565b60046020526000908152604090205460ff1681565b34801561027a57600080fd5b5061028e610289366004610e93565b6105fd565b005b34801561029c57600080fd5b506102b06102ab366004610c79565b610678565b60405161010c9493929190610ecf565b3480156102cc57600080fd5b506101836102db366004610f13565b6107bd565b3480156102ec57600080fd5b506000546101c4906001600160a01b031681565b34801561030c57600080fd5b5061028e61031b366004610f6d565b610873565b34801561032c57600080fd5b5061028e61033b366004610fe6565b610ac5565b61010261034e366004610cda565b610b1e565b600081815260036020526040808220549051620e1d8d60e41b8152600481018490526001600160401b0390911660248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169062e1d8d090604401602060405180830381865afa1580156103d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f99190611027565b92915050565b6060600060018484604051602001610419939291906110ed565b60408051601f1981840301815282825260008881526005602052919091209092509061044690839061114f565b9081526020016040518091039020805461045f90611040565b80601f016020809104026020016040519081016040528092919081815260200182805461048b90611040565b80156104d85780601f106104ad576101008083540402835291602001916104d8565b820191906000526020600020905b8154815290600101906020018083116104bb57829003601f168201915b50505050509150509392505050565b6040516333727c4d60e01b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906333727c4d90602401602060405180830381865afa15801561054f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f9919061116b565b6000815160000361058657506005919050565b60008260008151811061059b5761059b61118d565b016020015160f81c9050603081108015906105ba575060398160ff1611155b156105f45760006105cc6030836111a3565b905060018160ff16101580156105e65750600a8160ff1611155b156105f2579392505050565b505b50600592915050565b6000546001600160a01b031633146106495760405162461bcd60e51b815260206004820152600a60248201526927b7363c9037bbb732b960b11b60448201526064015b60405180910390fd5b600091825260036020526040909120805467ffffffffffffffff19166001600160401b03909216919091179055565b60026020819052600091825260409091208054600182015492820180546001600160a01b039092169392916106ac90611040565b80601f01602080910402602001604051908101604052809291908181526020018280546106d890611040565b80156107255780601f106106fa57610100808354040283529160200191610725565b820191906000526020600020905b81548152906001019060200180831161070857829003601f168201915b50505050509080600301805461073a90611040565b80601f016020809104026020016040519081016040528092919081815260200182805461076690611040565b80156107b35780601f10610788576101008083540402835291602001916107b3565b820191906000526020600020905b81548152906001019060200180831161079657829003601f168201915b5050505050905084565b60056020908152600092835260409092208151808301840180519281529084019290930191909120915280546107f290611040565b80601f016020809104026020016040519081016040528092919081815260200182805461081e90611040565b801561086b5780601f106108405761010080835404028352916020019161086b565b820191906000526020600020905b81548152906001019060200180831161084e57829003601f168201915b505050505081565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001681146108f05760405163432e033760e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015282166024820152604401610640565b600086815260026020526040902080546001600160a01b031661094e5760405162461bcd60e51b81526020600482015260166024820152751c995c5d595cdd08191bd95cc81b9bdd08195e1a5cdd60521b6044820152606401610640565b6003810161095d868883611218565b50858560056000846001015481526020019081526020016000208360020160405161098891906112d8565b908152602001604051809103902091826109a3929190611218565b5060006109e587878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061057392505050565b82546001600160a01b03166000818152600460205260409020549192509060ff908116908316811015610a6f576001600160a01b038216600081815260046020908152604091829020805460ff191660ff881690811790915591519182527fcd1a12ecb9eefeb52825050dd2d30ccc9a4bc1466bd71e9a4c376548b3b71af6910160405180910390a25b7faf2b2381ddcb18a2b18a7826186fd216acdd9c852a8c7a9a49e7eab127f96ccf8a8560010154866002018c8c8c8c604051610ab1979695949392919061130d565b60405180910390a150505050505050505050565b6000546001600160a01b03163314610b0c5760405162461bcd60e51b815260206004820152600a60248201526927b7363c9037bbb732b960b11b6044820152606401610640565b6001610b19828483611218565b505050565b60008060018484604051602001610b37939291906110ed565b60408051601f198184030181528282526000888152600360205291822054632dca9c0360e11b845290935090916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691635b953806913491610bb3918b91889130916001600160401b0316906004016113d3565b60206040518083038185885af1158015610bd1573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bf69190611027565b60008181526002602081905260409091209192508101610c168482611425565b5080546001600160a01b031916339081178255600182018890556040517fa0faead83d70148ae18b694377f9bef079251342ab90e14af0f9ef68b891269f91610c67918591908b908b908b906114e4565b60405180910390a15095945050505050565b600060208284031215610c8b57600080fd5b5035919050565b60008083601f840112610ca457600080fd5b5081356001600160401b03811115610cbb57600080fd5b602083019150836020828501011115610cd357600080fd5b9250929050565b600080600060408486031215610cef57600080fd5b8335925060208401356001600160401b03811115610d0c57600080fd5b610d1886828701610c92565b9497909650939450505050565b60005b83811015610d40578181015183820152602001610d28565b50506000910152565b60008151808452610d61816020860160208601610d25565b601f01601f19169290920160200192915050565b602081526000610d886020830184610d49565b9392505050565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b0380841115610dbf57610dbf610d8f565b604051601f8501601f19908116603f01168101908282118183101715610de757610de7610d8f565b81604052809350858152868686011115610e0057600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215610e2c57600080fd5b81356001600160401b03811115610e4257600080fd5b8201601f81018413610e5357600080fd5b610e6284823560208401610da5565b949350505050565b600060208284031215610e7c57600080fd5b81356001600160a01b0381168114610d8857600080fd5b60008060408385031215610ea657600080fd5b8235915060208301356001600160401b0381168114610ec457600080fd5b809150509250929050565b60018060a01b0385168152836020820152608060408201526000610ef66080830185610d49565b8281036060840152610f088185610d49565b979650505050505050565b60008060408385031215610f2657600080fd5b8235915060208301356001600160401b03811115610f4357600080fd5b8301601f81018513610f5457600080fd5b610f6385823560208401610da5565b9150509250929050565b600080600080600060608688031215610f8557600080fd5b8535945060208601356001600160401b0380821115610fa357600080fd5b610faf89838a01610c92565b90965094506040880135915080821115610fc857600080fd5b50610fd588828901610c92565b969995985093965092949392505050565b60008060208385031215610ff957600080fd5b82356001600160401b0381111561100f57600080fd5b61101b85828601610c92565b90969095509350505050565b60006020828403121561103957600080fd5b5051919050565b600181811c9082168061105457607f821691505b60208210810361107457634e487b7160e01b600052602260045260246000fd5b50919050565b6000815461108781611040565b6001828116801561109f57600181146110b4576110e3565b60ff19841687528215158302870194506110e3565b8560005260208060002060005b858110156110da5781548a8201529084019082016110c1565b50505082870194505b5050505092915050565b6f3d9134b739ba393ab1ba34b7b7111d1160811b81526000611112601083018661107a565b61088b60f21b8152691134b7383aba111d101160b11b60028201528385600c83013761227d60f01b9301600c8101939093525050600e0192915050565b60008251611161818460208701610d25565b9190910192915050565b60006020828403121561117d57600080fd5b81518015158114610d8857600080fd5b634e487b7160e01b600052603260045260246000fd5b60ff82811682821603908111156103f957634e487b7160e01b600052601160045260246000fd5b601f821115610b1957600081815260208120601f850160051c810160208610156111f15750805b601f850160051c820191505b81811015611210578281556001016111fd565b505050505050565b6001600160401b0383111561122f5761122f610d8f565b6112438361123d8354611040565b836111ca565b6000601f841160018114611277576000851561125f5750838201355b600019600387901b1c1916600186901b1783556112d1565b600083815260209020601f19861690835b828110156112a85786850135825560209485019460019092019101611288565b50868210156112c55760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b6000610d88828461107a565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b87815260006020888184015260a060408401526000885461132d81611040565b8060a087015260c060018084166000811461134f576001811461136957611397565b60ff1985168984015283151560051b890183019550611397565b8d6000528660002060005b8581101561138f5781548b8201860152908301908801611374565b8a0184019650505b505050505083810360608501526113af81888a6112e4565b91505082810360808401526113c58185876112e4565b9a9950505050505050505050565b84815260a0602082015260006113ec60a0830186610d49565b6001600160a01b03949094166040830152506001600160401b039190911660608201528082036080909101526000815260200192915050565b81516001600160401b0381111561143e5761143e610d8f565b6114528161144c8454611040565b846111ca565b602080601f831160018114611487576000841561146f5750858301515b600019600386901b1c1916600185901b178555611210565b600085815260208120601f198616915b828110156114b657888601518255948401946001909101908401611497565b50858210156114d45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b85815260018060a01b0385166020820152836040820152608060608201526000610f086080830184866112e456fea2646970667358221220fe6f8bf814dde03abb2edca5df7036eae7a0d78adea70d765b1fa11c5c79982964736f6c63430008150033373030372070726f746f636f6c20746f6b656e697a6573204149206f75747075747320617320756e6971756520696e666572656e636520206173736574732c206561636820726570726573656e74696e6720612073706563696669632041492d67656e65726174656420646174612070696563652e20546869732070726f746f636f6c206d616b657320414920696e666572656e6365732076657269666961626c652c20696d6d757461626c652c20616e64206e6f6e2d66756e6769626c652c207365637572696e67206461746120616e6420636f6d7075746174696f6e20696e74656772697479206f6e2074686520626c6f636b636861696e2e20596f752061726520726174696e6720636f6d6d756e697479206d656d6265727320656e676167656d656e74207769746820616e6420706f74656e7469616c20746f20696d70726f766520612063727970746f2070726f6a6563742e2052617465207265706c696573206261736564206f6e3a20302d313a20546865207265706c7920646f6573206e6f7420636f6e747269627574652076616c7565206f7220697320756e636c6561722f696e636f6d706c6574652f73686f72742e20322d353a20546865206d656d626572206f6e6c792077616e74732066696e616e6369616c20696e63656e74697665206f6e6c79206275742070726f766964657320696e73756666696369656e742064657461696c7320746f20696e74726f6475636520746865697220706f74656e7469616c20636f6e747269627574696f6e2e20362d393a20546865206d656d62657220636f756c6420706f74656e7469616c6c7920696d70726f7665207468652070726f6a65637420616e64206578706c61696e7320746865697220706c616e7320616e6420636f6e747269627574696f6e20636f6e76696e63696e676c792e2031303a20546865207265706c792073686f7773207370656369616c2070617373696f6e20616e642062656e656669747320666f72207468652070726f6a6563742e20596f75206d757374206f7574707574206f6e6c79207468652073636f726520696e2074686520666f726d61743a0000000000000000000000000a0f4321214bb6c7811dd8a71cf587bdaf03f0a0

Deployed Bytecode

0x6080604052600436106100dd5760003560e01c8063813d1e151161007f5780638da5cb5b116100595780638da5cb5b146102e0578063b034781414610300578063dd3c176114610320578063fac5d7e11461034057600080fd5b8063813d1e151461026e57806381d12c58146102905780638cbc52d9146102c057600080fd5b806331b221cd116100bb57806331b221cd1461019057806333727c4d146101dc578063482640341461020c578063629942d51461023e57600080fd5b8063127e8e4d146100e257806320f38718146101155780632c6296b714610163575b600080fd5b3480156100ee57600080fd5b506101026100fd366004610c79565b610353565b6040519081526020015b60405180910390f35b34801561012157600080fd5b5061014b610130366004610c79565b6003602052600090815260409020546001600160401b031681565b6040516001600160401b03909116815260200161010c565b34801561016f57600080fd5b5061018361017e366004610cda565b6103ff565b60405161010c9190610d75565b34801561019c57600080fd5b506101c47f0000000000000000000000000a0f4321214bb6c7811dd8a71cf587bdaf03f0a081565b6040516001600160a01b03909116815260200161010c565b3480156101e857600080fd5b506101fc6101f7366004610c79565b6104e7565b604051901515815260200161010c565b34801561021857600080fd5b5061022c610227366004610e1a565b610573565b60405160ff909116815260200161010c565b34801561024a57600080fd5b5061022c610259366004610e6a565b60046020526000908152604090205460ff1681565b34801561027a57600080fd5b5061028e610289366004610e93565b6105fd565b005b34801561029c57600080fd5b506102b06102ab366004610c79565b610678565b60405161010c9493929190610ecf565b3480156102cc57600080fd5b506101836102db366004610f13565b6107bd565b3480156102ec57600080fd5b506000546101c4906001600160a01b031681565b34801561030c57600080fd5b5061028e61031b366004610f6d565b610873565b34801561032c57600080fd5b5061028e61033b366004610fe6565b610ac5565b61010261034e366004610cda565b610b1e565b600081815260036020526040808220549051620e1d8d60e41b8152600481018490526001600160401b0390911660248201527f0000000000000000000000000a0f4321214bb6c7811dd8a71cf587bdaf03f0a06001600160a01b03169062e1d8d090604401602060405180830381865afa1580156103d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f99190611027565b92915050565b6060600060018484604051602001610419939291906110ed565b60408051601f1981840301815282825260008881526005602052919091209092509061044690839061114f565b9081526020016040518091039020805461045f90611040565b80601f016020809104026020016040519081016040528092919081815260200182805461048b90611040565b80156104d85780601f106104ad576101008083540402835291602001916104d8565b820191906000526020600020905b8154815290600101906020018083116104bb57829003601f168201915b50505050509150509392505050565b6040516333727c4d60e01b8152600481018290526000907f0000000000000000000000000a0f4321214bb6c7811dd8a71cf587bdaf03f0a06001600160a01b0316906333727c4d90602401602060405180830381865afa15801561054f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f9919061116b565b6000815160000361058657506005919050565b60008260008151811061059b5761059b61118d565b016020015160f81c9050603081108015906105ba575060398160ff1611155b156105f45760006105cc6030836111a3565b905060018160ff16101580156105e65750600a8160ff1611155b156105f2579392505050565b505b50600592915050565b6000546001600160a01b031633146106495760405162461bcd60e51b815260206004820152600a60248201526927b7363c9037bbb732b960b11b60448201526064015b60405180910390fd5b600091825260036020526040909120805467ffffffffffffffff19166001600160401b03909216919091179055565b60026020819052600091825260409091208054600182015492820180546001600160a01b039092169392916106ac90611040565b80601f01602080910402602001604051908101604052809291908181526020018280546106d890611040565b80156107255780601f106106fa57610100808354040283529160200191610725565b820191906000526020600020905b81548152906001019060200180831161070857829003601f168201915b50505050509080600301805461073a90611040565b80601f016020809104026020016040519081016040528092919081815260200182805461076690611040565b80156107b35780601f10610788576101008083540402835291602001916107b3565b820191906000526020600020905b81548152906001019060200180831161079657829003601f168201915b5050505050905084565b60056020908152600092835260409092208151808301840180519281529084019290930191909120915280546107f290611040565b80601f016020809104026020016040519081016040528092919081815260200182805461081e90611040565b801561086b5780601f106108405761010080835404028352916020019161086b565b820191906000526020600020905b81548152906001019060200180831161084e57829003601f168201915b505050505081565b336001600160a01b037f0000000000000000000000000a0f4321214bb6c7811dd8a71cf587bdaf03f0a01681146108f05760405163432e033760e11b81526001600160a01b037f0000000000000000000000000a0f4321214bb6c7811dd8a71cf587bdaf03f0a08116600483015282166024820152604401610640565b600086815260026020526040902080546001600160a01b031661094e5760405162461bcd60e51b81526020600482015260166024820152751c995c5d595cdd08191bd95cc81b9bdd08195e1a5cdd60521b6044820152606401610640565b6003810161095d868883611218565b50858560056000846001015481526020019081526020016000208360020160405161098891906112d8565b908152602001604051809103902091826109a3929190611218565b5060006109e587878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061057392505050565b82546001600160a01b03166000818152600460205260409020549192509060ff908116908316811015610a6f576001600160a01b038216600081815260046020908152604091829020805460ff191660ff881690811790915591519182527fcd1a12ecb9eefeb52825050dd2d30ccc9a4bc1466bd71e9a4c376548b3b71af6910160405180910390a25b7faf2b2381ddcb18a2b18a7826186fd216acdd9c852a8c7a9a49e7eab127f96ccf8a8560010154866002018c8c8c8c604051610ab1979695949392919061130d565b60405180910390a150505050505050505050565b6000546001600160a01b03163314610b0c5760405162461bcd60e51b815260206004820152600a60248201526927b7363c9037bbb732b960b11b6044820152606401610640565b6001610b19828483611218565b505050565b60008060018484604051602001610b37939291906110ed565b60408051601f198184030181528282526000888152600360205291822054632dca9c0360e11b845290935090916001600160a01b037f0000000000000000000000000a0f4321214bb6c7811dd8a71cf587bdaf03f0a01691635b953806913491610bb3918b91889130916001600160401b0316906004016113d3565b60206040518083038185885af1158015610bd1573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bf69190611027565b60008181526002602081905260409091209192508101610c168482611425565b5080546001600160a01b031916339081178255600182018890556040517fa0faead83d70148ae18b694377f9bef079251342ab90e14af0f9ef68b891269f91610c67918591908b908b908b906114e4565b60405180910390a15095945050505050565b600060208284031215610c8b57600080fd5b5035919050565b60008083601f840112610ca457600080fd5b5081356001600160401b03811115610cbb57600080fd5b602083019150836020828501011115610cd357600080fd5b9250929050565b600080600060408486031215610cef57600080fd5b8335925060208401356001600160401b03811115610d0c57600080fd5b610d1886828701610c92565b9497909650939450505050565b60005b83811015610d40578181015183820152602001610d28565b50506000910152565b60008151808452610d61816020860160208601610d25565b601f01601f19169290920160200192915050565b602081526000610d886020830184610d49565b9392505050565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b0380841115610dbf57610dbf610d8f565b604051601f8501601f19908116603f01168101908282118183101715610de757610de7610d8f565b81604052809350858152868686011115610e0057600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215610e2c57600080fd5b81356001600160401b03811115610e4257600080fd5b8201601f81018413610e5357600080fd5b610e6284823560208401610da5565b949350505050565b600060208284031215610e7c57600080fd5b81356001600160a01b0381168114610d8857600080fd5b60008060408385031215610ea657600080fd5b8235915060208301356001600160401b0381168114610ec457600080fd5b809150509250929050565b60018060a01b0385168152836020820152608060408201526000610ef66080830185610d49565b8281036060840152610f088185610d49565b979650505050505050565b60008060408385031215610f2657600080fd5b8235915060208301356001600160401b03811115610f4357600080fd5b8301601f81018513610f5457600080fd5b610f6385823560208401610da5565b9150509250929050565b600080600080600060608688031215610f8557600080fd5b8535945060208601356001600160401b0380821115610fa357600080fd5b610faf89838a01610c92565b90965094506040880135915080821115610fc857600080fd5b50610fd588828901610c92565b969995985093965092949392505050565b60008060208385031215610ff957600080fd5b82356001600160401b0381111561100f57600080fd5b61101b85828601610c92565b90969095509350505050565b60006020828403121561103957600080fd5b5051919050565b600181811c9082168061105457607f821691505b60208210810361107457634e487b7160e01b600052602260045260246000fd5b50919050565b6000815461108781611040565b6001828116801561109f57600181146110b4576110e3565b60ff19841687528215158302870194506110e3565b8560005260208060002060005b858110156110da5781548a8201529084019082016110c1565b50505082870194505b5050505092915050565b6f3d9134b739ba393ab1ba34b7b7111d1160811b81526000611112601083018661107a565b61088b60f21b8152691134b7383aba111d101160b11b60028201528385600c83013761227d60f01b9301600c8101939093525050600e0192915050565b60008251611161818460208701610d25565b9190910192915050565b60006020828403121561117d57600080fd5b81518015158114610d8857600080fd5b634e487b7160e01b600052603260045260246000fd5b60ff82811682821603908111156103f957634e487b7160e01b600052601160045260246000fd5b601f821115610b1957600081815260208120601f850160051c810160208610156111f15750805b601f850160051c820191505b81811015611210578281556001016111fd565b505050505050565b6001600160401b0383111561122f5761122f610d8f565b6112438361123d8354611040565b836111ca565b6000601f841160018114611277576000851561125f5750838201355b600019600387901b1c1916600186901b1783556112d1565b600083815260209020601f19861690835b828110156112a85786850135825560209485019460019092019101611288565b50868210156112c55760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b6000610d88828461107a565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b87815260006020888184015260a060408401526000885461132d81611040565b8060a087015260c060018084166000811461134f576001811461136957611397565b60ff1985168984015283151560051b890183019550611397565b8d6000528660002060005b8581101561138f5781548b8201860152908301908801611374565b8a0184019650505b505050505083810360608501526113af81888a6112e4565b91505082810360808401526113c58185876112e4565b9a9950505050505050505050565b84815260a0602082015260006113ec60a0830186610d49565b6001600160a01b03949094166040830152506001600160401b039190911660608201528082036080909101526000815260200192915050565b81516001600160401b0381111561143e5761143e610d8f565b6114528161144c8454611040565b846111ca565b602080601f831160018114611487576000841561146f5750858301515b600019600386901b1c1916600185901b178555611210565b600085815260208120601f198616915b828110156114b657888601518255948401946001909101908401611497565b50858210156114d45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b85815260018060a01b0385166020820152836040820152608060608201526000610f086080830184866112e456fea2646970667358221220fe6f8bf814dde03abb2edca5df7036eae7a0d78adea70d765b1fa11c5c79982964736f6c63430008150033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000000a0f4321214bb6c7811dd8a71cf587bdaf03f0a0

-----Decoded View---------------
Arg [0] : _aiOracle (address): 0x0A0f4321214BB6C7811dD8a71cF587bdaF03f0A0

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000a0f4321214bb6c7811dd8a71cf587bdaf03f0a0


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ 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.