Source Code
Latest 25 from a total of 447 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Attest Praise | 23649889 | 408 days ago | IN | 0.00003 ETH | 0.00000938 | ||||
| Attest Praise | 23514621 | 411 days ago | IN | 0.00003 ETH | 0.00000556 | ||||
| Attest Praise | 23287313 | 417 days ago | IN | 0.00003 ETH | 0.00003627 | ||||
| Attest Praise | 23287308 | 417 days ago | IN | 0.00003 ETH | 0.00003261 | ||||
| Attest Praise | 23211420 | 418 days ago | IN | 0.00003 ETH | 0.00001873 | ||||
| Attest Praise | 22863236 | 426 days ago | IN | 0.00003 ETH | 0.00000894 | ||||
| Attest Praise | 22863230 | 426 days ago | IN | 0.00003 ETH | 0.00000913 | ||||
| Attest Praise | 22863225 | 426 days ago | IN | 0.00003 ETH | 0.00000834 | ||||
| Attest Praise | 22863218 | 426 days ago | IN | 0.00003 ETH | 0.0000078 | ||||
| Attest Praise | 22863212 | 426 days ago | IN | 0.00003 ETH | 0.00001018 | ||||
| Attest Praise | 22863206 | 426 days ago | IN | 0.00003 ETH | 0.00000827 | ||||
| Attest Praise | 22863199 | 426 days ago | IN | 0.00003 ETH | 0.00001171 | ||||
| Attest Praise | 22658216 | 431 days ago | IN | 0.00003 ETH | 0.00001462 | ||||
| Attest Praise | 22374862 | 438 days ago | IN | 0.00003 ETH | 0.00000836 | ||||
| Attest Praise | 22374855 | 438 days ago | IN | 0.00003 ETH | 0.00000755 | ||||
| Attest Praise | 22374367 | 438 days ago | IN | 0.00003 ETH | 0.0000083 | ||||
| Attest Praise | 22374292 | 438 days ago | IN | 0.00003 ETH | 0.00001 | ||||
| Attest Praise | 22374262 | 438 days ago | IN | 0.00003 ETH | 0.00000752 | ||||
| Attest Praise | 22374062 | 438 days ago | IN | 0.00003 ETH | 0.00000836 | ||||
| Attest Praise | 22374024 | 438 days ago | IN | 0.00003 ETH | 0.00001076 | ||||
| Attest Praise | 22373977 | 438 days ago | IN | 0.00003 ETH | 0.00001024 | ||||
| Attest Praise | 22373906 | 438 days ago | IN | 0.00003 ETH | 0.00000833 | ||||
| Attest Praise | 22373720 | 438 days ago | IN | 0.00003 ETH | 0.00001064 | ||||
| Attest Praise | 22373684 | 438 days ago | IN | 0.00003 ETH | 0.00000968 | ||||
| Attest Praise | 22371666 | 438 days ago | IN | 0.00003 ETH | 0.00001353 |
Latest 1 internal transaction
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 19603039 | 502 days ago | 0.00003 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
PraiseAttester
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/**
*Submitted for verification at basescan.org on 2024-09-10
*/
// File: @ethereum-attestation-service/eas-contracts/contracts/ISemver.sol
pragma solidity ^0.8.0;
/// @title ISemver
/// @notice A semver interface.
interface ISemver {
/// @notice Returns the full semver contract version.
/// @return Semver contract version as a string.
function version() external view returns (string memory);
}
// File: @ethereum-attestation-service/eas-contracts/contracts/Common.sol
pragma solidity ^0.8.0;
// A representation of an empty/uninitialized UID.
bytes32 constant EMPTY_UID = 0;
// A zero expiration represents an non-expiring attestation.
uint64 constant NO_EXPIRATION_TIME = 0;
error AccessDenied();
error DeadlineExpired();
error InvalidEAS();
error InvalidLength();
error InvalidSignature();
error NotFound();
/// @notice A struct representing ECDSA signature data.
struct Signature {
uint8 v; // The recovery ID.
bytes32 r; // The x-coordinate of the nonce R.
bytes32 s; // The signature data.
}
/// @notice A struct representing a single attestation.
struct Attestation {
bytes32 uid; // A unique identifier of the attestation.
bytes32 schema; // The unique identifier of the schema.
uint64 time; // The time when the attestation was created (Unix timestamp).
uint64 expirationTime; // The time when the attestation expires (Unix timestamp).
uint64 revocationTime; // The time when the attestation was revoked (Unix timestamp).
bytes32 refUID; // The UID of the related attestation.
address recipient; // The recipient of the attestation.
address attester; // The attester/sender of the attestation.
bool revocable; // Whether the attestation is revocable.
bytes data; // Custom attestation data.
}
/// @notice A helper function to work with unchecked iterators in loops.
function uncheckedInc(uint256 i) pure returns (uint256 j) {
unchecked {
j = i + 1;
}
}
// File: @ethereum-attestation-service/eas-contracts/contracts/resolver/ISchemaResolver.sol
pragma solidity ^0.8.0;
/// @title ISchemaResolver
/// @notice The interface of an optional schema resolver.
interface ISchemaResolver is ISemver {
/// @notice Checks if the resolver can be sent ETH.
/// @return Whether the resolver supports ETH transfers.
function isPayable() external pure returns (bool);
/// @notice Processes an attestation and verifies whether it's valid.
/// @param attestation The new attestation.
/// @return Whether the attestation is valid.
function attest(Attestation calldata attestation) external payable returns (bool);
/// @notice Processes multiple attestations and verifies whether they are valid.
/// @param attestations The new attestations.
/// @param values Explicit ETH amounts which were sent with each attestation.
/// @return Whether all the attestations are valid.
function multiAttest(
Attestation[] calldata attestations,
uint256[] calldata values
) external payable returns (bool);
/// @notice Processes an attestation revocation and verifies if it can be revoked.
/// @param attestation The existing attestation to be revoked.
/// @return Whether the attestation can be revoked.
function revoke(Attestation calldata attestation) external payable returns (bool);
/// @notice Processes revocation of multiple attestation and verifies they can be revoked.
/// @param attestations The existing attestations to be revoked.
/// @param values Explicit ETH amounts which were sent with each revocation.
/// @return Whether the attestations can be revoked.
function multiRevoke(
Attestation[] calldata attestations,
uint256[] calldata values
) external payable returns (bool);
}
// File: @ethereum-attestation-service/eas-contracts/contracts/ISchemaRegistry.sol
pragma solidity ^0.8.0;
/// @notice A struct representing a record for a submitted schema.
struct SchemaRecord {
bytes32 uid; // The unique identifier of the schema.
ISchemaResolver resolver; // Optional schema resolver.
bool revocable; // Whether the schema allows revocations explicitly.
string schema; // Custom specification of the schema (e.g., an ABI).
}
/// @title ISchemaRegistry
/// @notice The interface of global attestation schemas for the Ethereum Attestation Service protocol.
interface ISchemaRegistry is ISemver {
/// @notice Emitted when a new schema has been registered
/// @param uid The schema UID.
/// @param registerer The address of the account used to register the schema.
/// @param schema The schema data.
event Registered(bytes32 indexed uid, address indexed registerer, SchemaRecord schema);
/// @notice Submits and reserves a new schema
/// @param schema The schema data schema.
/// @param resolver An optional schema resolver.
/// @param revocable Whether the schema allows revocations explicitly.
/// @return The UID of the new schema.
function register(string calldata schema, ISchemaResolver resolver, bool revocable) external returns (bytes32);
/// @notice Returns an existing schema by UID
/// @param uid The UID of the schema to retrieve.
/// @return The schema data members.
function getSchema(bytes32 uid) external view returns (SchemaRecord memory);
}
// File: @ethereum-attestation-service/eas-contracts/contracts/IEAS.sol
pragma solidity ^0.8.0;
/// @notice A struct representing the arguments of the attestation request.
struct AttestationRequestData {
address recipient; // The recipient of the attestation.
uint64 expirationTime; // The time when the attestation expires (Unix timestamp).
bool revocable; // Whether the attestation is revocable.
bytes32 refUID; // The UID of the related attestation.
bytes data; // Custom attestation data.
uint256 value; // An explicit ETH amount to send to the resolver. This is important to prevent accidental user errors.
}
/// @notice A struct representing the full arguments of the attestation request.
struct AttestationRequest {
bytes32 schema; // The unique identifier of the schema.
AttestationRequestData data; // The arguments of the attestation request.
}
/// @notice A struct representing the full arguments of the full delegated attestation request.
struct DelegatedAttestationRequest {
bytes32 schema; // The unique identifier of the schema.
AttestationRequestData data; // The arguments of the attestation request.
Signature signature; // The ECDSA signature data.
address attester; // The attesting account.
uint64 deadline; // The deadline of the signature/request.
}
/// @notice A struct representing the full arguments of the multi attestation request.
struct MultiAttestationRequest {
bytes32 schema; // The unique identifier of the schema.
AttestationRequestData[] data; // The arguments of the attestation request.
}
/// @notice A struct representing the full arguments of the delegated multi attestation request.
struct MultiDelegatedAttestationRequest {
bytes32 schema; // The unique identifier of the schema.
AttestationRequestData[] data; // The arguments of the attestation requests.
Signature[] signatures; // The ECDSA signatures data. Please note that the signatures are assumed to be signed with increasing nonces.
address attester; // The attesting account.
uint64 deadline; // The deadline of the signature/request.
}
/// @notice A struct representing the arguments of the revocation request.
struct RevocationRequestData {
bytes32 uid; // The UID of the attestation to revoke.
uint256 value; // An explicit ETH amount to send to the resolver. This is important to prevent accidental user errors.
}
/// @notice A struct representing the full arguments of the revocation request.
struct RevocationRequest {
bytes32 schema; // The unique identifier of the schema.
RevocationRequestData data; // The arguments of the revocation request.
}
/// @notice A struct representing the arguments of the full delegated revocation request.
struct DelegatedRevocationRequest {
bytes32 schema; // The unique identifier of the schema.
RevocationRequestData data; // The arguments of the revocation request.
Signature signature; // The ECDSA signature data.
address revoker; // The revoking account.
uint64 deadline; // The deadline of the signature/request.
}
/// @notice A struct representing the full arguments of the multi revocation request.
struct MultiRevocationRequest {
bytes32 schema; // The unique identifier of the schema.
RevocationRequestData[] data; // The arguments of the revocation request.
}
/// @notice A struct representing the full arguments of the delegated multi revocation request.
struct MultiDelegatedRevocationRequest {
bytes32 schema; // The unique identifier of the schema.
RevocationRequestData[] data; // The arguments of the revocation requests.
Signature[] signatures; // The ECDSA signatures data. Please note that the signatures are assumed to be signed with increasing nonces.
address revoker; // The revoking account.
uint64 deadline; // The deadline of the signature/request.
}
/// @title IEAS
/// @notice EAS - Ethereum Attestation Service interface.
interface IEAS is ISemver {
/// @notice Emitted when an attestation has been made.
/// @param recipient The recipient of the attestation.
/// @param attester The attesting account.
/// @param uid The UID of the new attestation.
/// @param schemaUID The UID of the schema.
event Attested(address indexed recipient, address indexed attester, bytes32 uid, bytes32 indexed schemaUID);
/// @notice Emitted when an attestation has been revoked.
/// @param recipient The recipient of the attestation.
/// @param attester The attesting account.
/// @param schemaUID The UID of the schema.
/// @param uid The UID the revoked attestation.
event Revoked(address indexed recipient, address indexed attester, bytes32 uid, bytes32 indexed schemaUID);
/// @notice Emitted when a data has been timestamped.
/// @param data The data.
/// @param timestamp The timestamp.
event Timestamped(bytes32 indexed data, uint64 indexed timestamp);
/// @notice Emitted when a data has been revoked.
/// @param revoker The address of the revoker.
/// @param data The data.
/// @param timestamp The timestamp.
event RevokedOffchain(address indexed revoker, bytes32 indexed data, uint64 indexed timestamp);
/// @notice Returns the address of the global schema registry.
/// @return The address of the global schema registry.
function getSchemaRegistry() external view returns (ISchemaRegistry);
/// @notice Attests to a specific schema.
/// @param request The arguments of the attestation request.
/// @return The UID of the new attestation.
///
/// Example:
/// attest({
/// schema: "0facc36681cbe2456019c1b0d1e7bedd6d1d40f6f324bf3dd3a4cef2999200a0",
/// data: {
/// recipient: "0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf",
/// expirationTime: 0,
/// revocable: true,
/// refUID: "0x0000000000000000000000000000000000000000000000000000000000000000",
/// data: "0xF00D",
/// value: 0
/// }
/// })
function attest(AttestationRequest calldata request) external payable returns (bytes32);
/// @notice Attests to a specific schema via the provided ECDSA signature.
/// @param delegatedRequest The arguments of the delegated attestation request.
/// @return The UID of the new attestation.
///
/// Example:
/// attestByDelegation({
/// schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc',
/// data: {
/// recipient: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',
/// expirationTime: 1673891048,
/// revocable: true,
/// refUID: '0x0000000000000000000000000000000000000000000000000000000000000000',
/// data: '0x1234',
/// value: 0
/// },
/// signature: {
/// v: 28,
/// r: '0x148c...b25b',
/// s: '0x5a72...be22'
/// },
/// attester: '0xc5E8740aD971409492b1A63Db8d83025e0Fc427e',
/// deadline: 1673891048
/// })
function attestByDelegation(
DelegatedAttestationRequest calldata delegatedRequest
) external payable returns (bytes32);
/// @notice Attests to multiple schemas.
/// @param multiRequests The arguments of the multi attestation requests. The requests should be grouped by distinct
/// schema ids to benefit from the best batching optimization.
/// @return The UIDs of the new attestations.
///
/// Example:
/// multiAttest([{
/// schema: '0x33e9094830a5cba5554d1954310e4fbed2ef5f859ec1404619adea4207f391fd',
/// data: [{
/// recipient: '0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf',
/// expirationTime: 1673891048,
/// revocable: true,
/// refUID: '0x0000000000000000000000000000000000000000000000000000000000000000',
/// data: '0x1234',
/// value: 1000
/// },
/// {
/// recipient: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',
/// expirationTime: 0,
/// revocable: false,
/// refUID: '0x480df4a039efc31b11bfdf491b383ca138b6bde160988222a2a3509c02cee174',
/// data: '0x00',
/// value: 0
/// }],
/// },
/// {
/// schema: '0x5ac273ce41e3c8bfa383efe7c03e54c5f0bff29c9f11ef6ffa930fc84ca32425',
/// data: [{
/// recipient: '0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf',
/// expirationTime: 0,
/// revocable: true,
/// refUID: '0x75bf2ed8dca25a8190c50c52db136664de25b2449535839008ccfdab469b214f',
/// data: '0x12345678',
/// value: 0
/// },
/// }])
function multiAttest(MultiAttestationRequest[] calldata multiRequests) external payable returns (bytes32[] memory);
/// @notice Attests to multiple schemas using via provided ECDSA signatures.
/// @param multiDelegatedRequests The arguments of the delegated multi attestation requests. The requests should be
/// grouped by distinct schema ids to benefit from the best batching optimization.
/// @return The UIDs of the new attestations.
///
/// Example:
/// multiAttestByDelegation([{
/// schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc',
/// data: [{
/// recipient: '0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266',
/// expirationTime: 1673891048,
/// revocable: true,
/// refUID: '0x0000000000000000000000000000000000000000000000000000000000000000',
/// data: '0x1234',
/// value: 0
/// },
/// {
/// recipient: '0xdEADBeAFdeAdbEafdeadbeafDeAdbEAFdeadbeaf',
/// expirationTime: 0,
/// revocable: false,
/// refUID: '0x0000000000000000000000000000000000000000000000000000000000000000',
/// data: '0x00',
/// value: 0
/// }],
/// signatures: [{
/// v: 28,
/// r: '0x148c...b25b',
/// s: '0x5a72...be22'
/// },
/// {
/// v: 28,
/// r: '0x487s...67bb',
/// s: '0x12ad...2366'
/// }],
/// attester: '0x1D86495b2A7B524D747d2839b3C645Bed32e8CF4',
/// deadline: 1673891048
/// }])
function multiAttestByDelegation(
MultiDelegatedAttestationRequest[] calldata multiDelegatedRequests
) external payable returns (bytes32[] memory);
/// @notice Revokes an existing attestation to a specific schema.
/// @param request The arguments of the revocation request.
///
/// Example:
/// revoke({
/// schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc',
/// data: {
/// uid: '0x101032e487642ee04ee17049f99a70590c735b8614079fc9275f9dd57c00966d',
/// value: 0
/// }
/// })
function revoke(RevocationRequest calldata request) external payable;
/// @notice Revokes an existing attestation to a specific schema via the provided ECDSA signature.
/// @param delegatedRequest The arguments of the delegated revocation request.
///
/// Example:
/// revokeByDelegation({
/// schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc',
/// data: {
/// uid: '0xcbbc12102578c642a0f7b34fe7111e41afa25683b6cd7b5a14caf90fa14d24ba',
/// value: 0
/// },
/// signature: {
/// v: 27,
/// r: '0xb593...7142',
/// s: '0x0f5b...2cce'
/// },
/// revoker: '0x244934dd3e31bE2c81f84ECf0b3E6329F5381992',
/// deadline: 1673891048
/// })
function revokeByDelegation(DelegatedRevocationRequest calldata delegatedRequest) external payable;
/// @notice Revokes existing attestations to multiple schemas.
/// @param multiRequests The arguments of the multi revocation requests. The requests should be grouped by distinct
/// schema ids to benefit from the best batching optimization.
///
/// Example:
/// multiRevoke([{
/// schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc',
/// data: [{
/// uid: '0x211296a1ca0d7f9f2cfebf0daaa575bea9b20e968d81aef4e743d699c6ac4b25',
/// value: 1000
/// },
/// {
/// uid: '0xe160ac1bd3606a287b4d53d5d1d6da5895f65b4b4bab6d93aaf5046e48167ade',
/// value: 0
/// }],
/// },
/// {
/// schema: '0x5ac273ce41e3c8bfa383efe7c03e54c5f0bff29c9f11ef6ffa930fc84ca32425',
/// data: [{
/// uid: '0x053d42abce1fd7c8fcddfae21845ad34dae287b2c326220b03ba241bc5a8f019',
/// value: 0
/// },
/// }])
function multiRevoke(MultiRevocationRequest[] calldata multiRequests) external payable;
/// @notice Revokes existing attestations to multiple schemas via provided ECDSA signatures.
/// @param multiDelegatedRequests The arguments of the delegated multi revocation attestation requests. The requests
/// should be grouped by distinct schema ids to benefit from the best batching optimization.
///
/// Example:
/// multiRevokeByDelegation([{
/// schema: '0x8e72f5bc0a8d4be6aa98360baa889040c50a0e51f32dbf0baa5199bd93472ebc',
/// data: [{
/// uid: '0x211296a1ca0d7f9f2cfebf0daaa575bea9b20e968d81aef4e743d699c6ac4b25',
/// value: 1000
/// },
/// {
/// uid: '0xe160ac1bd3606a287b4d53d5d1d6da5895f65b4b4bab6d93aaf5046e48167ade',
/// value: 0
/// }],
/// signatures: [{
/// v: 28,
/// r: '0x148c...b25b',
/// s: '0x5a72...be22'
/// },
/// {
/// v: 28,
/// r: '0x487s...67bb',
/// s: '0x12ad...2366'
/// }],
/// revoker: '0x244934dd3e31bE2c81f84ECf0b3E6329F5381992',
/// deadline: 1673891048
/// }])
function multiRevokeByDelegation(
MultiDelegatedRevocationRequest[] calldata multiDelegatedRequests
) external payable;
/// @notice Timestamps the specified bytes32 data.
/// @param data The data to timestamp.
/// @return The timestamp the data was timestamped with.
function timestamp(bytes32 data) external returns (uint64);
/// @notice Timestamps the specified multiple bytes32 data.
/// @param data The data to timestamp.
/// @return The timestamp the data was timestamped with.
function multiTimestamp(bytes32[] calldata data) external returns (uint64);
/// @notice Revokes the specified bytes32 data.
/// @param data The data to timestamp.
/// @return The timestamp the data was revoked with.
function revokeOffchain(bytes32 data) external returns (uint64);
/// @notice Revokes the specified multiple bytes32 data.
/// @param data The data to timestamp.
/// @return The timestamp the data was revoked with.
function multiRevokeOffchain(bytes32[] calldata data) external returns (uint64);
/// @notice Returns an existing attestation by UID.
/// @param uid The UID of the attestation to retrieve.
/// @return The attestation data members.
function getAttestation(bytes32 uid) external view returns (Attestation memory);
/// @notice Checks whether an attestation exists.
/// @param uid The UID of the attestation to retrieve.
/// @return Whether an attestation exists.
function isAttestationValid(bytes32 uid) external view returns (bool);
/// @notice Returns the timestamp that the specified data was timestamped with.
/// @param data The data to query.
/// @return The timestamp the data was timestamped with.
function getTimestamp(bytes32 data) external view returns (uint64);
/// @notice Returns the timestamp that the specified data was timestamped with.
/// @param data The data to query.
/// @return The timestamp the data was timestamped with.
function getRevokeOffchain(address revoker, bytes32 data) external view returns (uint64);
}
// File: contracts/PraiseAttester.sol
pragma solidity >=0.7.0 <0.9.0;
contract PraiseAttester
{
event Log(string func, uint256 gas);
address public owner;
uint256 public fee = 0.00003 ether;
address multisig = 0x3eF5DF44E144f873065B0e59891cdD9Ee4297E64;
bytes32 schema = 0x82c2ec8ec89cf1d13022ff0867744f1cecf932faa4fe334aa1bb443edbfee3fa;
/**
* @dev Set contract deployer as owner
*/
constructor() {
owner = msg.sender; // 'msg.sender' is sender of current call, contract deployer for a constructor
}
modifier ownerOnly() {
require(msg.sender == owner, "Only owner can access this function");
_;
}
function updateOwner(address newOwner) public ownerOnly {
owner = newOwner;
emit Log("updateOwner", gasleft());
}
function updateFee(uint256 newFee) public ownerOnly {
fee = newFee;
emit Log("updateFee", gasleft());
}
function updateSchema(bytes32 newSchema) public ownerOnly{
schema = newSchema;
emit Log("updateSchema", gasleft());
}
function attestPraise(address recipient, bytes calldata data) public payable
{
require(address(msg.sender).balance >= fee, "Insufficient balance to pay fee");
require(msg.value == fee, "Must pay the fee amount");
IEAS(0x4200000000000000000000000000000000000021).attest(
AttestationRequest({
schema: schema,
data: AttestationRequestData({
recipient: recipient,
expirationTime: NO_EXPIRATION_TIME,
revocable: true,
refUID: EMPTY_UID,
data: data,
value:0
})
})
);
emit Log("attested", gasleft());
}
receive() external payable {}
fallback() external payable {
emit Log("fallback", gasleft());
}
// Function to withdraw Ether from the contract (for testing purposes)
function withdraw() public {
// Transfer the Ether to the multisig address
(bool success, ) = multisig.call{value: address(this).balance}("");
require(success, "Failed to send Ether");
emit Log("withdraw", gasleft());
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"func","type":"string"},{"indexed":false,"internalType":"uint256","name":"gas","type":"uint256"}],"name":"Log","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"attestPraise","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"updateFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"updateOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"newSchema","type":"bytes32"}],"name":"updateSchema","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080604052651b48eb57e000600155733ef5df44e144f873065b0e59891cdd9ee4297e6460025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f82c2ec8ec89cf1d13022ff0867744f1cecf932faa4fe334aa1bb443edbfee3fa5f1b6003553480156092575f80fd5b50335f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110f3806100df5f395ff3fe608060405260043610610073575f3560e01c80638da5cb5b1161004d5780638da5cb5b146101195780639012c4a814610143578063bd277f131461016b578063ddca3f43146101875761007a565b80633ccfd60b146100b357806358ff2232146100c9578063880cdc31146100f15761007a565b3661007a57005b7fdd970dd9b5bfe707922155b058a407655cb18288b807e2216442bca8ad83d6b55a6040516100a99190610805565b60405180910390a1005b3480156100be575f80fd5b506100c76101b1565b005b3480156100d4575f80fd5b506100ef60048036038101906100ea919061086c565b6102b4565b005b3480156100fc575f80fd5b50610117600480360381019061011291906108f1565b610382565b005b348015610124575f80fd5b5061012d610488565b60405161013a919061092b565b60405180910390f35b34801561014e575f80fd5b506101696004803603810190610164919061096e565b6104ab565b005b610185600480360381019061018091906109fa565b610579565b005b348015610192575f80fd5b5061019b61078d565b6040516101a89190610a57565b60405180910390f35b5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516101f790610a9d565b5f6040518083038185875af1925050503d805f8114610231576040519150601f19603f3d011682016040523d82523d5f602084013e610236565b606091505b505090508061027a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027190610afb565b60405180910390fd5b7fdd970dd9b5bfe707922155b058a407655cb18288b807e2216442bca8ad83d6b55a6040516102a99190610b63565b60405180910390a150565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033890610bff565b60405180910390fd5b806003819055507fdd970dd9b5bfe707922155b058a407655cb18288b807e2216442bca8ad83d6b55a6040516103779190610c67565b60405180910390a150565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461040f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040690610bff565b60405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fdd970dd9b5bfe707922155b058a407655cb18288b807e2216442bca8ad83d6b55a60405161047d9190610cdd565b60405180910390a150565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052f90610bff565b60405180910390fd5b806001819055507fdd970dd9b5bfe707922155b058a407655cb18288b807e2216442bca8ad83d6b55a60405161056e9190610d53565b60405180910390a150565b6001543373ffffffffffffffffffffffffffffffffffffffff163110156105d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cc90610dc9565b60405180910390fd5b6001543414610619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061090610e31565b60405180910390fd5b73420000000000000000000000000000000000002173ffffffffffffffffffffffffffffffffffffffff1663f17325e7604051806040016040528060035481526020016040518060c001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020015f67ffffffffffffffff1681526020016001151581526020015f801b815260200187878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081526020015f8152508152506040518263ffffffff1660e01b81526004016107109190610fe8565b6020604051808303815f875af115801561072c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610750919061101c565b507fdd970dd9b5bfe707922155b058a407655cb18288b807e2216442bca8ad83d6b55a6040516107809190611091565b60405180910390a1505050565b60015481565b5f82825260208201905092915050565b7f66616c6c6261636b0000000000000000000000000000000000000000000000005f82015250565b5f6107d7600883610793565b91506107e2826107a3565b602082019050919050565b5f819050919050565b6107ff816107ed565b82525050565b5f6040820190508181035f83015261081c816107cb565b905061082b60208301846107f6565b92915050565b5f80fd5b5f80fd5b5f819050919050565b61084b81610839565b8114610855575f80fd5b50565b5f8135905061086681610842565b92915050565b5f6020828403121561088157610880610831565b5b5f61088e84828501610858565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6108c082610897565b9050919050565b6108d0816108b6565b81146108da575f80fd5b50565b5f813590506108eb816108c7565b92915050565b5f6020828403121561090657610905610831565b5b5f610913848285016108dd565b91505092915050565b610925816108b6565b82525050565b5f60208201905061093e5f83018461091c565b92915050565b61094d816107ed565b8114610957575f80fd5b50565b5f8135905061096881610944565b92915050565b5f6020828403121561098357610982610831565b5b5f6109908482850161095a565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126109ba576109b9610999565b5b8235905067ffffffffffffffff8111156109d7576109d661099d565b5b6020830191508360018202830111156109f3576109f26109a1565b5b9250929050565b5f805f60408486031215610a1157610a10610831565b5b5f610a1e868287016108dd565b935050602084013567ffffffffffffffff811115610a3f57610a3e610835565b5b610a4b868287016109a5565b92509250509250925092565b5f602082019050610a6a5f8301846107f6565b92915050565b5f81905092915050565b50565b5f610a885f83610a70565b9150610a9382610a7a565b5f82019050919050565b5f610aa782610a7d565b9150819050919050565b7f4661696c656420746f2073656e642045746865720000000000000000000000005f82015250565b5f610ae5601483610793565b9150610af082610ab1565b602082019050919050565b5f6020820190508181035f830152610b1281610ad9565b9050919050565b7f77697468647261770000000000000000000000000000000000000000000000005f82015250565b5f610b4d600883610793565b9150610b5882610b19565b602082019050919050565b5f6040820190508181035f830152610b7a81610b41565b9050610b8960208301846107f6565b92915050565b7f4f6e6c79206f776e65722063616e2061636365737320746869732066756e63745f8201527f696f6e0000000000000000000000000000000000000000000000000000000000602082015250565b5f610be9602383610793565b9150610bf482610b8f565b604082019050919050565b5f6020820190508181035f830152610c1681610bdd565b9050919050565b7f757064617465536368656d6100000000000000000000000000000000000000005f82015250565b5f610c51600c83610793565b9150610c5c82610c1d565b602082019050919050565b5f6040820190508181035f830152610c7e81610c45565b9050610c8d60208301846107f6565b92915050565b7f7570646174654f776e65720000000000000000000000000000000000000000005f82015250565b5f610cc7600b83610793565b9150610cd282610c93565b602082019050919050565b5f6040820190508181035f830152610cf481610cbb565b9050610d0360208301846107f6565b92915050565b7f75706461746546656500000000000000000000000000000000000000000000005f82015250565b5f610d3d600983610793565b9150610d4882610d09565b602082019050919050565b5f6040820190508181035f830152610d6a81610d31565b9050610d7960208301846107f6565b92915050565b7f496e73756666696369656e742062616c616e636520746f2070617920666565005f82015250565b5f610db3601f83610793565b9150610dbe82610d7f565b602082019050919050565b5f6020820190508181035f830152610de081610da7565b9050919050565b7f4d75737420706179207468652066656520616d6f756e740000000000000000005f82015250565b5f610e1b601783610793565b9150610e2682610de7565b602082019050919050565b5f6020820190508181035f830152610e4881610e0f565b9050919050565b610e5881610839565b82525050565b610e67816108b6565b82525050565b5f67ffffffffffffffff82169050919050565b610e8981610e6d565b82525050565b5f8115159050919050565b610ea381610e8f565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610eeb82610ea9565b610ef58185610eb3565b9350610f05818560208601610ec3565b610f0e81610ed1565b840191505092915050565b610f22816107ed565b82525050565b5f60c083015f830151610f3d5f860182610e5e565b506020830151610f506020860182610e80565b506040830151610f636040860182610e9a565b506060830151610f766060860182610e4f565b5060808301518482036080860152610f8e8282610ee1565b91505060a0830151610fa360a0860182610f19565b508091505092915050565b5f604083015f830151610fc35f860182610e4f565b5060208301518482036020860152610fdb8282610f28565b9150508091505092915050565b5f6020820190508181035f8301526110008184610fae565b905092915050565b5f8151905061101681610842565b92915050565b5f6020828403121561103157611030610831565b5b5f61103e84828501611008565b91505092915050565b7f61747465737465640000000000000000000000000000000000000000000000005f82015250565b5f61107b600883610793565b915061108682611047565b602082019050919050565b5f6040820190508181035f8301526110a88161106f565b90506110b760208301846107f6565b9291505056fea26469706673582212201ab6c4c0ddb9536aec6b6fad46bf482a6d144c13de58a04fbe359444cf53914064736f6c634300081a0033
Deployed Bytecode
0x608060405260043610610073575f3560e01c80638da5cb5b1161004d5780638da5cb5b146101195780639012c4a814610143578063bd277f131461016b578063ddca3f43146101875761007a565b80633ccfd60b146100b357806358ff2232146100c9578063880cdc31146100f15761007a565b3661007a57005b7fdd970dd9b5bfe707922155b058a407655cb18288b807e2216442bca8ad83d6b55a6040516100a99190610805565b60405180910390a1005b3480156100be575f80fd5b506100c76101b1565b005b3480156100d4575f80fd5b506100ef60048036038101906100ea919061086c565b6102b4565b005b3480156100fc575f80fd5b50610117600480360381019061011291906108f1565b610382565b005b348015610124575f80fd5b5061012d610488565b60405161013a919061092b565b60405180910390f35b34801561014e575f80fd5b506101696004803603810190610164919061096e565b6104ab565b005b610185600480360381019061018091906109fa565b610579565b005b348015610192575f80fd5b5061019b61078d565b6040516101a89190610a57565b60405180910390f35b5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516101f790610a9d565b5f6040518083038185875af1925050503d805f8114610231576040519150601f19603f3d011682016040523d82523d5f602084013e610236565b606091505b505090508061027a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027190610afb565b60405180910390fd5b7fdd970dd9b5bfe707922155b058a407655cb18288b807e2216442bca8ad83d6b55a6040516102a99190610b63565b60405180910390a150565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033890610bff565b60405180910390fd5b806003819055507fdd970dd9b5bfe707922155b058a407655cb18288b807e2216442bca8ad83d6b55a6040516103779190610c67565b60405180910390a150565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461040f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040690610bff565b60405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fdd970dd9b5bfe707922155b058a407655cb18288b807e2216442bca8ad83d6b55a60405161047d9190610cdd565b60405180910390a150565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052f90610bff565b60405180910390fd5b806001819055507fdd970dd9b5bfe707922155b058a407655cb18288b807e2216442bca8ad83d6b55a60405161056e9190610d53565b60405180910390a150565b6001543373ffffffffffffffffffffffffffffffffffffffff163110156105d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105cc90610dc9565b60405180910390fd5b6001543414610619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061090610e31565b60405180910390fd5b73420000000000000000000000000000000000002173ffffffffffffffffffffffffffffffffffffffff1663f17325e7604051806040016040528060035481526020016040518060c001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020015f67ffffffffffffffff1681526020016001151581526020015f801b815260200187878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081526020015f8152508152506040518263ffffffff1660e01b81526004016107109190610fe8565b6020604051808303815f875af115801561072c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610750919061101c565b507fdd970dd9b5bfe707922155b058a407655cb18288b807e2216442bca8ad83d6b55a6040516107809190611091565b60405180910390a1505050565b60015481565b5f82825260208201905092915050565b7f66616c6c6261636b0000000000000000000000000000000000000000000000005f82015250565b5f6107d7600883610793565b91506107e2826107a3565b602082019050919050565b5f819050919050565b6107ff816107ed565b82525050565b5f6040820190508181035f83015261081c816107cb565b905061082b60208301846107f6565b92915050565b5f80fd5b5f80fd5b5f819050919050565b61084b81610839565b8114610855575f80fd5b50565b5f8135905061086681610842565b92915050565b5f6020828403121561088157610880610831565b5b5f61088e84828501610858565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6108c082610897565b9050919050565b6108d0816108b6565b81146108da575f80fd5b50565b5f813590506108eb816108c7565b92915050565b5f6020828403121561090657610905610831565b5b5f610913848285016108dd565b91505092915050565b610925816108b6565b82525050565b5f60208201905061093e5f83018461091c565b92915050565b61094d816107ed565b8114610957575f80fd5b50565b5f8135905061096881610944565b92915050565b5f6020828403121561098357610982610831565b5b5f6109908482850161095a565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126109ba576109b9610999565b5b8235905067ffffffffffffffff8111156109d7576109d661099d565b5b6020830191508360018202830111156109f3576109f26109a1565b5b9250929050565b5f805f60408486031215610a1157610a10610831565b5b5f610a1e868287016108dd565b935050602084013567ffffffffffffffff811115610a3f57610a3e610835565b5b610a4b868287016109a5565b92509250509250925092565b5f602082019050610a6a5f8301846107f6565b92915050565b5f81905092915050565b50565b5f610a885f83610a70565b9150610a9382610a7a565b5f82019050919050565b5f610aa782610a7d565b9150819050919050565b7f4661696c656420746f2073656e642045746865720000000000000000000000005f82015250565b5f610ae5601483610793565b9150610af082610ab1565b602082019050919050565b5f6020820190508181035f830152610b1281610ad9565b9050919050565b7f77697468647261770000000000000000000000000000000000000000000000005f82015250565b5f610b4d600883610793565b9150610b5882610b19565b602082019050919050565b5f6040820190508181035f830152610b7a81610b41565b9050610b8960208301846107f6565b92915050565b7f4f6e6c79206f776e65722063616e2061636365737320746869732066756e63745f8201527f696f6e0000000000000000000000000000000000000000000000000000000000602082015250565b5f610be9602383610793565b9150610bf482610b8f565b604082019050919050565b5f6020820190508181035f830152610c1681610bdd565b9050919050565b7f757064617465536368656d6100000000000000000000000000000000000000005f82015250565b5f610c51600c83610793565b9150610c5c82610c1d565b602082019050919050565b5f6040820190508181035f830152610c7e81610c45565b9050610c8d60208301846107f6565b92915050565b7f7570646174654f776e65720000000000000000000000000000000000000000005f82015250565b5f610cc7600b83610793565b9150610cd282610c93565b602082019050919050565b5f6040820190508181035f830152610cf481610cbb565b9050610d0360208301846107f6565b92915050565b7f75706461746546656500000000000000000000000000000000000000000000005f82015250565b5f610d3d600983610793565b9150610d4882610d09565b602082019050919050565b5f6040820190508181035f830152610d6a81610d31565b9050610d7960208301846107f6565b92915050565b7f496e73756666696369656e742062616c616e636520746f2070617920666565005f82015250565b5f610db3601f83610793565b9150610dbe82610d7f565b602082019050919050565b5f6020820190508181035f830152610de081610da7565b9050919050565b7f4d75737420706179207468652066656520616d6f756e740000000000000000005f82015250565b5f610e1b601783610793565b9150610e2682610de7565b602082019050919050565b5f6020820190508181035f830152610e4881610e0f565b9050919050565b610e5881610839565b82525050565b610e67816108b6565b82525050565b5f67ffffffffffffffff82169050919050565b610e8981610e6d565b82525050565b5f8115159050919050565b610ea381610e8f565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610eeb82610ea9565b610ef58185610eb3565b9350610f05818560208601610ec3565b610f0e81610ed1565b840191505092915050565b610f22816107ed565b82525050565b5f60c083015f830151610f3d5f860182610e5e565b506020830151610f506020860182610e80565b506040830151610f636040860182610e9a565b506060830151610f766060860182610e4f565b5060808301518482036080860152610f8e8282610ee1565b91505060a0830151610fa360a0860182610f19565b508091505092915050565b5f604083015f830151610fc35f860182610e4f565b5060208301518482036020860152610fdb8282610f28565b9150508091505092915050565b5f6020820190508181035f8301526110008184610fae565b905092915050565b5f8151905061101681610842565b92915050565b5f6020828403121561103157611030610831565b5b5f61103e84828501611008565b91505092915050565b7f61747465737465640000000000000000000000000000000000000000000000005f82015250565b5f61107b600883610793565b915061108682611047565b602082019050919050565b5f6040820190508181035f8301526110a88161106f565b90506110b760208301846107f6565b9291505056fea26469706673582212201ab6c4c0ddb9536aec6b6fad46bf482a6d144c13de58a04fbe359444cf53914064736f6c634300081a0033
Deployed Bytecode Sourcemap
22709:2333:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24661:26;24677:9;24661:26;;;;;;:::i;:::-;;;;;;;;22709:2333;24779:260;;;;;;;;;;;;;:::i;:::-;;23611:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23333:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22783:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23477:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23759:813;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22810:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24779:260;24873:12;24891:8;;;;;;;;;;;:13;;24912:21;24891:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24872:66;;;24957:7;24949:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;25005:26;25021:9;25005:26;;;;;;:::i;:::-;;;;;;;;24806:233;24779:260::o;23611:140::-;23262:5;;;;;;;;;;23248:19;;:10;:19;;;23240:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23688:9:::1;23679:6;:18;;;;23713:30;23733:9;23713:30;;;;;;:::i;:::-;;;;;;;;23611:140:::0;:::o;23333:136::-;23262:5;;;;;;;;;;23248:19;;:10;:19;;;23240:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23408:8:::1;23400:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;23432:29;23451:9;23432:29;;;;;;:::i;:::-;;;;;;;;23333:136:::0;:::o;22783:20::-;;;;;;;;;;;;:::o;23477:126::-;23262:5;;;;;;;;;;23248:19;;:10;:19;;;23240:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23546:6:::1;23540:3;:12;;;;23568:27;23585:9;23568:27;;;;;;:::i;:::-;;;;;;;;23477:126:::0;:::o;23759:813::-;23891:3;;23868:10;23860:27;;;:34;;23852:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;23962:3;;23949:9;:16;23941:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;24011:42;24006:55;;;24080:417;;;;;;;;24130:6;;24080:417;;;;24165:312;;;;;;;;24226:9;24165:312;;;;;;658:1;24165:312;;;;;;24334:4;24165:312;;;;;;553:1;24373:9;;24165:312;;;;24415:4;;24165:312;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24452:1;24165:312;;;24080:417;;;24006:506;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24538:26;24554:9;24538:26;;;;;;:::i;:::-;;;;;;;;23759:813;;;:::o;22810:34::-;;;;:::o;7:169:1:-;91:11;125:6;120:3;113:19;165:4;160:3;156:14;141:29;;7:169;;;;:::o;182:158::-;322:10;318:1;310:6;306:14;299:34;182:158;:::o;346:365::-;488:3;509:66;573:1;568:3;509:66;:::i;:::-;502:73;;584:93;673:3;584:93;:::i;:::-;702:2;697:3;693:12;686:19;;346:365;;;:::o;717:77::-;754:7;783:5;772:16;;717:77;;;:::o;800:118::-;887:24;905:5;887:24;:::i;:::-;882:3;875:37;800:118;;:::o;924:529::-;1118:4;1156:2;1145:9;1141:18;1133:26;;1205:9;1199:4;1195:20;1191:1;1180:9;1176:17;1169:47;1233:131;1359:4;1233:131;:::i;:::-;1225:139;;1374:72;1442:2;1431:9;1427:18;1418:6;1374:72;:::i;:::-;924:529;;;;:::o;1540:117::-;1649:1;1646;1639:12;1663:117;1772:1;1769;1762:12;1786:77;1823:7;1852:5;1841:16;;1786:77;;;:::o;1869:122::-;1942:24;1960:5;1942:24;:::i;:::-;1935:5;1932:35;1922:63;;1981:1;1978;1971:12;1922:63;1869:122;:::o;1997:139::-;2043:5;2081:6;2068:20;2059:29;;2097:33;2124:5;2097:33;:::i;:::-;1997:139;;;;:::o;2142:329::-;2201:6;2250:2;2238:9;2229:7;2225:23;2221:32;2218:119;;;2256:79;;:::i;:::-;2218:119;2376:1;2401:53;2446:7;2437:6;2426:9;2422:22;2401:53;:::i;:::-;2391:63;;2347:117;2142:329;;;;:::o;2477:126::-;2514:7;2554:42;2547:5;2543:54;2532:65;;2477:126;;;:::o;2609:96::-;2646:7;2675:24;2693:5;2675:24;:::i;:::-;2664:35;;2609:96;;;:::o;2711:122::-;2784:24;2802:5;2784:24;:::i;:::-;2777:5;2774:35;2764:63;;2823:1;2820;2813:12;2764:63;2711:122;:::o;2839:139::-;2885:5;2923:6;2910:20;2901:29;;2939:33;2966:5;2939:33;:::i;:::-;2839:139;;;;:::o;2984:329::-;3043:6;3092:2;3080:9;3071:7;3067:23;3063:32;3060:119;;;3098:79;;:::i;:::-;3060:119;3218:1;3243:53;3288:7;3279:6;3268:9;3264:22;3243:53;:::i;:::-;3233:63;;3189:117;2984:329;;;;:::o;3319:118::-;3406:24;3424:5;3406:24;:::i;:::-;3401:3;3394:37;3319:118;;:::o;3443:222::-;3536:4;3574:2;3563:9;3559:18;3551:26;;3587:71;3655:1;3644:9;3640:17;3631:6;3587:71;:::i;:::-;3443:222;;;;:::o;3671:122::-;3744:24;3762:5;3744:24;:::i;:::-;3737:5;3734:35;3724:63;;3783:1;3780;3773:12;3724:63;3671:122;:::o;3799:139::-;3845:5;3883:6;3870:20;3861:29;;3899:33;3926:5;3899:33;:::i;:::-;3799:139;;;;:::o;3944:329::-;4003:6;4052:2;4040:9;4031:7;4027:23;4023:32;4020:119;;;4058:79;;:::i;:::-;4020:119;4178:1;4203:53;4248:7;4239:6;4228:9;4224:22;4203:53;:::i;:::-;4193:63;;4149:117;3944:329;;;;:::o;4279:117::-;4388:1;4385;4378:12;4402:117;4511:1;4508;4501:12;4525:117;4634:1;4631;4624:12;4661:552;4718:8;4728:6;4778:3;4771:4;4763:6;4759:17;4755:27;4745:122;;4786:79;;:::i;:::-;4745:122;4899:6;4886:20;4876:30;;4929:18;4921:6;4918:30;4915:117;;;4951:79;;:::i;:::-;4915:117;5065:4;5057:6;5053:17;5041:29;;5119:3;5111:4;5103:6;5099:17;5089:8;5085:32;5082:41;5079:128;;;5126:79;;:::i;:::-;5079:128;4661:552;;;;;:::o;5219:672::-;5298:6;5306;5314;5363:2;5351:9;5342:7;5338:23;5334:32;5331:119;;;5369:79;;:::i;:::-;5331:119;5489:1;5514:53;5559:7;5550:6;5539:9;5535:22;5514:53;:::i;:::-;5504:63;;5460:117;5644:2;5633:9;5629:18;5616:32;5675:18;5667:6;5664:30;5661:117;;;5697:79;;:::i;:::-;5661:117;5810:64;5866:7;5857:6;5846:9;5842:22;5810:64;:::i;:::-;5792:82;;;;5587:297;5219:672;;;;;:::o;5897:222::-;5990:4;6028:2;6017:9;6013:18;6005:26;;6041:71;6109:1;6098:9;6094:17;6085:6;6041:71;:::i;:::-;5897:222;;;;:::o;6125:147::-;6226:11;6263:3;6248:18;;6125:147;;;;:::o;6278:114::-;;:::o;6398:398::-;6557:3;6578:83;6659:1;6654:3;6578:83;:::i;:::-;6571:90;;6670:93;6759:3;6670:93;:::i;:::-;6788:1;6783:3;6779:11;6772:18;;6398:398;;;:::o;6802:379::-;6986:3;7008:147;7151:3;7008:147;:::i;:::-;7001:154;;7172:3;7165:10;;6802:379;;;:::o;7187:170::-;7327:22;7323:1;7315:6;7311:14;7304:46;7187:170;:::o;7363:366::-;7505:3;7526:67;7590:2;7585:3;7526:67;:::i;:::-;7519:74;;7602:93;7691:3;7602:93;:::i;:::-;7720:2;7715:3;7711:12;7704:19;;7363:366;;;:::o;7735:419::-;7901:4;7939:2;7928:9;7924:18;7916:26;;7988:9;7982:4;7978:20;7974:1;7963:9;7959:17;7952:47;8016:131;8142:4;8016:131;:::i;:::-;8008:139;;7735:419;;;:::o;8160:158::-;8300:10;8296:1;8288:6;8284:14;8277:34;8160:158;:::o;8324:365::-;8466:3;8487:66;8551:1;8546:3;8487:66;:::i;:::-;8480:73;;8562:93;8651:3;8562:93;:::i;:::-;8680:2;8675:3;8671:12;8664:19;;8324:365;;;:::o;8695:529::-;8889:4;8927:2;8916:9;8912:18;8904:26;;8976:9;8970:4;8966:20;8962:1;8951:9;8947:17;8940:47;9004:131;9130:4;9004:131;:::i;:::-;8996:139;;9145:72;9213:2;9202:9;9198:18;9189:6;9145:72;:::i;:::-;8695:529;;;;:::o;9230:222::-;9370:34;9366:1;9358:6;9354:14;9347:58;9439:5;9434:2;9426:6;9422:15;9415:30;9230:222;:::o;9458:366::-;9600:3;9621:67;9685:2;9680:3;9621:67;:::i;:::-;9614:74;;9697:93;9786:3;9697:93;:::i;:::-;9815:2;9810:3;9806:12;9799:19;;9458:366;;;:::o;9830:419::-;9996:4;10034:2;10023:9;10019:18;10011:26;;10083:9;10077:4;10073:20;10069:1;10058:9;10054:17;10047:47;10111:131;10237:4;10111:131;:::i;:::-;10103:139;;9830:419;;;:::o;10255:162::-;10395:14;10391:1;10383:6;10379:14;10372:38;10255:162;:::o;10423:366::-;10565:3;10586:67;10650:2;10645:3;10586:67;:::i;:::-;10579:74;;10662:93;10751:3;10662:93;:::i;:::-;10780:2;10775:3;10771:12;10764:19;;10423:366;;;:::o;10795:529::-;10989:4;11027:2;11016:9;11012:18;11004:26;;11076:9;11070:4;11066:20;11062:1;11051:9;11047:17;11040:47;11104:131;11230:4;11104:131;:::i;:::-;11096:139;;11245:72;11313:2;11302:9;11298:18;11289:6;11245:72;:::i;:::-;10795:529;;;;:::o;11330:161::-;11470:13;11466:1;11458:6;11454:14;11447:37;11330:161;:::o;11497:366::-;11639:3;11660:67;11724:2;11719:3;11660:67;:::i;:::-;11653:74;;11736:93;11825:3;11736:93;:::i;:::-;11854:2;11849:3;11845:12;11838:19;;11497:366;;;:::o;11869:529::-;12063:4;12101:2;12090:9;12086:18;12078:26;;12150:9;12144:4;12140:20;12136:1;12125:9;12121:17;12114:47;12178:131;12304:4;12178:131;:::i;:::-;12170:139;;12319:72;12387:2;12376:9;12372:18;12363:6;12319:72;:::i;:::-;11869:529;;;;:::o;12404:159::-;12544:11;12540:1;12532:6;12528:14;12521:35;12404:159;:::o;12569:365::-;12711:3;12732:66;12796:1;12791:3;12732:66;:::i;:::-;12725:73;;12807:93;12896:3;12807:93;:::i;:::-;12925:2;12920:3;12916:12;12909:19;;12569:365;;;:::o;12940:529::-;13134:4;13172:2;13161:9;13157:18;13149:26;;13221:9;13215:4;13211:20;13207:1;13196:9;13192:17;13185:47;13249:131;13375:4;13249:131;:::i;:::-;13241:139;;13390:72;13458:2;13447:9;13443:18;13434:6;13390:72;:::i;:::-;12940:529;;;;:::o;13475:181::-;13615:33;13611:1;13603:6;13599:14;13592:57;13475:181;:::o;13662:366::-;13804:3;13825:67;13889:2;13884:3;13825:67;:::i;:::-;13818:74;;13901:93;13990:3;13901:93;:::i;:::-;14019:2;14014:3;14010:12;14003:19;;13662:366;;;:::o;14034:419::-;14200:4;14238:2;14227:9;14223:18;14215:26;;14287:9;14281:4;14277:20;14273:1;14262:9;14258:17;14251:47;14315:131;14441:4;14315:131;:::i;:::-;14307:139;;14034:419;;;:::o;14459:173::-;14599:25;14595:1;14587:6;14583:14;14576:49;14459:173;:::o;14638:366::-;14780:3;14801:67;14865:2;14860:3;14801:67;:::i;:::-;14794:74;;14877:93;14966:3;14877:93;:::i;:::-;14995:2;14990:3;14986:12;14979:19;;14638:366;;;:::o;15010:419::-;15176:4;15214:2;15203:9;15199:18;15191:26;;15263:9;15257:4;15253:20;15249:1;15238:9;15234:17;15227:47;15291:131;15417:4;15291:131;:::i;:::-;15283:139;;15010:419;;;:::o;15435:108::-;15512:24;15530:5;15512:24;:::i;:::-;15507:3;15500:37;15435:108;;:::o;15549:::-;15626:24;15644:5;15626:24;:::i;:::-;15621:3;15614:37;15549:108;;:::o;15663:101::-;15699:7;15739:18;15732:5;15728:30;15717:41;;15663:101;;;:::o;15770:105::-;15845:23;15862:5;15845:23;:::i;:::-;15840:3;15833:36;15770:105;;:::o;15881:90::-;15915:7;15958:5;15951:13;15944:21;15933:32;;15881:90;;;:::o;15977:99::-;16048:21;16063:5;16048:21;:::i;:::-;16043:3;16036:34;15977:99;;:::o;16082:98::-;16133:6;16167:5;16161:12;16151:22;;16082:98;;;:::o;16186:158::-;16259:11;16293:6;16288:3;16281:19;16333:4;16328:3;16324:14;16309:29;;16186:158;;;;:::o;16350:139::-;16439:6;16434:3;16429;16423:23;16480:1;16471:6;16466:3;16462:16;16455:27;16350:139;;;:::o;16495:102::-;16536:6;16587:2;16583:7;16578:2;16571:5;16567:14;16563:28;16553:38;;16495:102;;;:::o;16603:353::-;16679:3;16707:38;16739:5;16707:38;:::i;:::-;16761:60;16814:6;16809:3;16761:60;:::i;:::-;16754:67;;16830:65;16888:6;16883:3;16876:4;16869:5;16865:16;16830:65;:::i;:::-;16920:29;16942:6;16920:29;:::i;:::-;16915:3;16911:39;16904:46;;16683:273;16603:353;;;;:::o;16962:108::-;17039:24;17057:5;17039:24;:::i;:::-;17034:3;17027:37;16962:108;;:::o;17146:1333::-;17283:3;17319:4;17314:3;17310:14;17411:4;17404:5;17400:16;17394:23;17430:63;17487:4;17482:3;17478:14;17464:12;17430:63;:::i;:::-;17334:169;17595:4;17588:5;17584:16;17578:23;17614:61;17669:4;17664:3;17660:14;17646:12;17614:61;:::i;:::-;17513:172;17772:4;17765:5;17761:16;17755:23;17791:57;17842:4;17837:3;17833:14;17819:12;17791:57;:::i;:::-;17695:163;17942:4;17935:5;17931:16;17925:23;17961:63;18018:4;18013:3;18009:14;17995:12;17961:63;:::i;:::-;17868:166;18116:4;18109:5;18105:16;18099:23;18169:3;18163:4;18159:14;18152:4;18147:3;18143:14;18136:38;18195:71;18261:4;18247:12;18195:71;:::i;:::-;18187:79;;18044:233;18360:4;18353:5;18349:16;18343:23;18379:63;18436:4;18431:3;18427:14;18413:12;18379:63;:::i;:::-;18287:165;18469:4;18462:11;;17288:1191;17146:1333;;;;:::o;18547:686::-;18686:3;18722:4;18717:3;18713:14;18811:4;18804:5;18800:16;18794:23;18830:63;18887:4;18882:3;18878:14;18864:12;18830:63;:::i;:::-;18737:166;18985:4;18978:5;18974:16;18968:23;19038:3;19032:4;19028:14;19021:4;19016:3;19012:14;19005:38;19064:131;19190:4;19176:12;19064:131;:::i;:::-;19056:139;;18913:293;19223:4;19216:11;;18691:542;18547:686;;;;:::o;19239:413::-;19402:4;19440:2;19429:9;19425:18;19417:26;;19489:9;19483:4;19479:20;19475:1;19464:9;19460:17;19453:47;19517:128;19640:4;19631:6;19517:128;:::i;:::-;19509:136;;19239:413;;;;:::o;19658:143::-;19715:5;19746:6;19740:13;19731:22;;19762:33;19789:5;19762:33;:::i;:::-;19658:143;;;;:::o;19807:351::-;19877:6;19926:2;19914:9;19905:7;19901:23;19897:32;19894:119;;;19932:79;;:::i;:::-;19894:119;20052:1;20077:64;20133:7;20124:6;20113:9;20109:22;20077:64;:::i;:::-;20067:74;;20023:128;19807:351;;;;:::o;20164:158::-;20304:10;20300:1;20292:6;20288:14;20281:34;20164:158;:::o;20328:365::-;20470:3;20491:66;20555:1;20550:3;20491:66;:::i;:::-;20484:73;;20566:93;20655:3;20566:93;:::i;:::-;20684:2;20679:3;20675:12;20668:19;;20328:365;;;:::o;20699:529::-;20893:4;20931:2;20920:9;20916:18;20908:26;;20980:9;20974:4;20970:20;20966:1;20955:9;20951:17;20944:47;21008:131;21134:4;21008:131;:::i;:::-;21000:139;;21149:72;21217:2;21206:9;21202:18;21193:6;21149:72;:::i;:::-;20699:529;;;;:::o
Swarm Source
ipfs://1ab6c4c0ddb9536aec6b6fad46bf482a6d144c13de58a04fbe359444cf539140
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$37.87
Net Worth in ETH
0.01329
Token Allocations
ETH
100.00%
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| BASE | 100.00% | $2,849.72 | 0.0133 | $37.87 |
Loading...
Loading
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.