Overview
ETH Balance
Eth Value
$0.00Latest 1 from a total of 1 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Set Status | 10345272 | 2072 days ago | IN | 0 ETH | 0.00216726 |
View more zero value Internal Transactions in Advanced View mode
Cross-Chain Transactions
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2019-12-30
*/
pragma solidity ^0.5.0;
/**
* @title Ownable
* @dev The Ownable contract has an owner address, and provides basic authorization control
* functions, this simplifies the implementation of "user permissions".
*/
contract Ownable {
address private _owner;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
/**
* @dev The Ownable constructor sets the original `owner` of the contract to the sender
* account.
*/
constructor() public {
_owner = msg.sender;
emit OwnershipTransferred(address(0), _owner);
}
/**
* @return the address of the owner.
*/
function owner() public view returns(address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(isOwner());
_;
}
/**
* @return true if `msg.sender` is the owner of the contract.
*/
function isOwner() public view returns(bool) {
return msg.sender == _owner;
}
/**
* @dev Allows the current owner to relinquish control of the contract.
* @notice Renouncing to ownership will leave the contract without an owner.
* It will not be possible to call the functions with the `onlyOwner`
* modifier anymore.
*/
function renounceOwnership() public onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
/**
* @dev Allows the current owner to transfer control of the contract to a newOwner.
* @param newOwner The address to transfer ownership to.
*/
function transferOwnership(address newOwner) public onlyOwner {
_transferOwnership(newOwner);
}
/**
* @dev Transfers control of the contract to a newOwner.
* @param newOwner The address to transfer ownership to.
*/
function _transferOwnership(address newOwner) internal {
require(newOwner != address(0));
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
interface SnowflakeResolverInterface {
function callOnAddition() external view returns (bool);
function callOnRemoval() external view returns (bool);
function onAddition(uint ein, uint allowance, bytes calldata extraData) external returns (bool);
function onRemoval(uint ein, bytes calldata extraData) external returns (bool);
}
contract SnowflakeResolver is Ownable {
string public snowflakeName;
string public snowflakeDescription;
address public snowflakeAddress;
bool public callOnAddition;
bool public callOnRemoval;
constructor(
string memory _snowflakeName, string memory _snowflakeDescription,
address _snowflakeAddress,
bool _callOnAddition, bool _callOnRemoval
)
public
{
snowflakeName = _snowflakeName;
snowflakeDescription = _snowflakeDescription;
setSnowflakeAddress(_snowflakeAddress);
callOnAddition = _callOnAddition;
callOnRemoval = _callOnRemoval;
}
modifier senderIsSnowflake() {
require(msg.sender == snowflakeAddress, "Did not originate from Snowflake.");
_;
}
// this can be overriden to initialize other variables, such as e.g. an ERC20 object to wrap the HYDRO token
function setSnowflakeAddress(address _snowflakeAddress) public onlyOwner {
snowflakeAddress = _snowflakeAddress;
}
// if callOnAddition is true, onAddition is called every time a user adds the contract as a resolver
// this implementation **must** use the senderIsSnowflake modifier
// returning false will disallow users from adding the contract as a resolver
function onAddition(uint ein, uint allowance, bytes memory extraData) public returns (bool);
// if callOnRemoval is true, onRemoval is called every time a user removes the contract as a resolver
// this function **must** use the senderIsSnowflake modifier
// returning false soft prevents users from removing the contract as a resolver
// however, note that they can force remove the resolver, bypassing onRemoval
function onRemoval(uint ein, bytes memory extraData) public returns (bool);
function transferHydroBalanceTo(uint einTo, uint amount) internal {
HydroInterface hydro = HydroInterface(SnowflakeInterface(snowflakeAddress).hydroTokenAddress());
require(hydro.approveAndCall(snowflakeAddress, amount, abi.encode(einTo)), "Unsuccessful approveAndCall.");
}
function withdrawHydroBalanceTo(address to, uint amount) internal {
HydroInterface hydro = HydroInterface(SnowflakeInterface(snowflakeAddress).hydroTokenAddress());
require(hydro.transfer(to, amount), "Unsuccessful transfer.");
}
function transferHydroBalanceToVia(address via, uint einTo, uint amount, bytes memory snowflakeCallBytes) internal {
HydroInterface hydro = HydroInterface(SnowflakeInterface(snowflakeAddress).hydroTokenAddress());
require(
hydro.approveAndCall(
snowflakeAddress, amount, abi.encode(true, address(this), via, einTo, snowflakeCallBytes)
),
"Unsuccessful approveAndCall."
);
}
function withdrawHydroBalanceToVia(address via, address to, uint amount, bytes memory snowflakeCallBytes) internal {
HydroInterface hydro = HydroInterface(SnowflakeInterface(snowflakeAddress).hydroTokenAddress());
require(
hydro.approveAndCall(
snowflakeAddress, amount, abi.encode(false, address(this), via, to, snowflakeCallBytes)
),
"Unsuccessful approveAndCall."
);
}
}
interface IdentityRegistryInterface {
function isSigned(address _address, bytes32 messageHash, uint8 v, bytes32 r, bytes32 s)
external pure returns (bool);
// Identity View Functions /////////////////////////////////////////////////////////////////////////////////////////
function identityExists(uint ein) external view returns (bool);
function hasIdentity(address _address) external view returns (bool);
function getEIN(address _address) external view returns (uint ein);
function isAssociatedAddressFor(uint ein, address _address) external view returns (bool);
function isProviderFor(uint ein, address provider) external view returns (bool);
function isResolverFor(uint ein, address resolver) external view returns (bool);
function getIdentity(uint ein) external view returns (
address recoveryAddress,
address[] memory associatedAddresses, address[] memory providers, address[] memory resolvers
);
// Identity Management Functions ///////////////////////////////////////////////////////////////////////////////////
function createIdentity(address recoveryAddress, address[] calldata providers, address[] calldata resolvers)
external returns (uint ein);
function createIdentityDelegated(
address recoveryAddress, address associatedAddress, address[] calldata providers, address[] calldata resolvers,
uint8 v, bytes32 r, bytes32 s, uint timestamp
) external returns (uint ein);
function addAssociatedAddress(
address approvingAddress, address addressToAdd, uint8 v, bytes32 r, bytes32 s, uint timestamp
) external;
function addAssociatedAddressDelegated(
address approvingAddress, address addressToAdd,
uint8[2] calldata v, bytes32[2] calldata r, bytes32[2] calldata s, uint[2] calldata timestamp
) external;
function removeAssociatedAddress() external;
function removeAssociatedAddressDelegated(address addressToRemove, uint8 v, bytes32 r, bytes32 s, uint timestamp)
external;
function addProviders(address[] calldata providers) external;
function addProvidersFor(uint ein, address[] calldata providers) external;
function removeProviders(address[] calldata providers) external;
function removeProvidersFor(uint ein, address[] calldata providers) external;
function addResolvers(address[] calldata resolvers) external;
function addResolversFor(uint ein, address[] calldata resolvers) external;
function removeResolvers(address[] calldata resolvers) external;
function removeResolversFor(uint ein, address[] calldata resolvers) external;
// Recovery Management Functions ///////////////////////////////////////////////////////////////////////////////////
function triggerRecoveryAddressChange(address newRecoveryAddress) external;
function triggerRecoveryAddressChangeFor(uint ein, address newRecoveryAddress) external;
function triggerRecovery(uint ein, address newAssociatedAddress, uint8 v, bytes32 r, bytes32 s, uint timestamp)
external;
function triggerDestruction(
uint ein, address[] calldata firstChunk, address[] calldata lastChunk, bool resetResolvers
) external;
}
interface HydroInterface {
function balances(address) external view returns (uint);
function allowed(address, address) external view returns (uint);
function transfer(address _to, uint256 _amount) external returns (bool success);
function transferFrom(address _from, address _to, uint256 _amount) external returns (bool success);
function balanceOf(address _owner) external view returns (uint256 balance);
function approve(address _spender, uint256 _amount) external returns (bool success);
function approveAndCall(address _spender, uint256 _value, bytes calldata _extraData)
external returns (bool success);
function allowance(address _owner, address _spender) external view returns (uint256 remaining);
function totalSupply() external view returns (uint);
function authenticate(uint _value, uint _challenge, uint _partnerId) external;
}
interface SnowflakeInterface {
function deposits(uint) external view returns (uint);
function resolverAllowances(uint, address) external view returns (uint);
function identityRegistryAddress() external returns (address);
function hydroTokenAddress() external returns (address);
function clientRaindropAddress() external returns (address);
function setAddresses(address _identityRegistryAddress, address _hydroTokenAddress) external;
function setClientRaindropAddress(address _clientRaindropAddress) external;
function createIdentityDelegated(
address recoveryAddress, address associatedAddress, address[] calldata providers, string calldata casedHydroId,
uint8 v, bytes32 r, bytes32 s, uint timestamp
) external returns (uint ein);
function addProvidersFor(
address approvingAddress, address[] calldata providers, uint8 v, bytes32 r, bytes32 s, uint timestamp
) external;
function removeProvidersFor(
address approvingAddress, address[] calldata providers, uint8 v, bytes32 r, bytes32 s, uint timestamp
) external;
function upgradeProvidersFor(
address approvingAddress, address[] calldata newProviders, address[] calldata oldProviders,
uint8[2] calldata v, bytes32[2] calldata r, bytes32[2] calldata s, uint[2] calldata timestamp
) external;
function addResolver(address resolver, bool isSnowflake, uint withdrawAllowance, bytes calldata extraData) external;
function addResolverFor(
address approvingAddress, address resolver, bool isSnowflake, uint withdrawAllowance, bytes calldata extraData,
uint8 v, bytes32 r, bytes32 s, uint timestamp
) external;
function changeResolverAllowances(address[] calldata resolvers, uint[] calldata withdrawAllowances) external;
function changeResolverAllowancesDelegated(
address approvingAddress, address[] calldata resolvers, uint[] calldata withdrawAllowances,
uint8 v, bytes32 r, bytes32 s
) external;
function removeResolver(address resolver, bool isSnowflake, bytes calldata extraData) external;
function removeResolverFor(
address approvingAddress, address resolver, bool isSnowflake, bytes calldata extraData,
uint8 v, bytes32 r, bytes32 s, uint timestamp
) external;
function triggerRecoveryAddressChangeFor(
address approvingAddress, address newRecoveryAddress, uint8 v, bytes32 r, bytes32 s
) external;
function transferSnowflakeBalance(uint einTo, uint amount) external;
function withdrawSnowflakeBalance(address to, uint amount) external;
function transferSnowflakeBalanceFrom(uint einFrom, uint einTo, uint amount) external;
function withdrawSnowflakeBalanceFrom(uint einFrom, address to, uint amount) external;
function transferSnowflakeBalanceFromVia(uint einFrom, address via, uint einTo, uint amount, bytes calldata _bytes)
external;
function withdrawSnowflakeBalanceFromVia(uint einFrom, address via, address to, uint amount, bytes calldata _bytes)
external;
}
contract Status is SnowflakeResolver {
mapping (uint => string) private statuses;
uint signUpFee = 1000000000000000000;
string firstStatus = "My first status 😎";
constructor (address snowflakeAddress)
SnowflakeResolver("Status", "Set your status.", snowflakeAddress, true, false) public
{}
// implement signup function
function onAddition(uint ein, uint, bytes memory) public senderIsSnowflake() returns (bool) {
SnowflakeInterface snowflake = SnowflakeInterface(snowflakeAddress);
snowflake.withdrawSnowflakeBalanceFrom(ein, owner(), signUpFee);
statuses[ein] = firstStatus;
emit StatusSignUp(ein);
return true;
}
function onRemoval(uint, bytes memory) public senderIsSnowflake() returns (bool) {}
function getStatus(uint ein) public view returns (string memory) {
return statuses[ein];
}
function setStatus(string memory status) public {
SnowflakeInterface snowflake = SnowflakeInterface(snowflakeAddress);
IdentityRegistryInterface identityRegistry = IdentityRegistryInterface(snowflake.identityRegistryAddress());
uint ein = identityRegistry.getEIN(msg.sender);
require(identityRegistry.isResolverFor(ein, address(this)), "The EIN has not set this resolver.");
statuses[ein] = status;
emit StatusUpdated(ein, status);
}
function withdrawFees(address to) public onlyOwner() {
SnowflakeInterface snowflake = SnowflakeInterface(snowflakeAddress);
HydroInterface hydro = HydroInterface(snowflake.hydroTokenAddress());
withdrawHydroBalanceTo(to, hydro.balanceOf(address(this)));
}
event StatusSignUp(uint ein);
event StatusUpdated(uint ein, string status);
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"snowflakeAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"ein","type":"uint256"}],"name":"StatusSignUp","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"ein","type":"uint256"},{"indexed":false,"internalType":"string","name":"status","type":"string"}],"name":"StatusUpdated","type":"event"},{"constant":true,"inputs":[],"name":"callOnAddition","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"callOnRemoval","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"ein","type":"uint256"}],"name":"getStatus","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"ein","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onAddition","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onRemoval","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_snowflakeAddress","type":"address"}],"name":"setSnowflakeAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"status","type":"string"}],"name":"setStatus","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"snowflakeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"snowflakeDescription","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"snowflakeName","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"withdrawFees","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
670de0b6b3a764000060055560c0604052601460808190527f4d792066697273742073746174757320f09f988e00000000000000000000000060a09081526200004c9160069190620001e7565b503480156200005a57600080fd5b50604051620011d3380380620011d3833981810160405260208110156200008057600080fd5b5051604080518082018252600681526553746174757360d01b60208281019190915282518084018452601081526f29b2ba103cb7bab91039ba30ba3ab99760811b91810191909152600080546001600160a01b03191633178082559351929391928592600192916001600160a01b03919091169082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3845162000130906001906020880190620001e7565b50835162000146906002906020870190620001e7565b506200015b836001600160e01b036200019616565b60038054911515600160a81b0260ff60a81b19931515600160a01b0260ff60a01b199093169290921792909216179055506200028992505050565b620001a96001600160e01b03620001d516565b620001b357600080fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633145b90565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200022a57805160ff19168380011785556200025a565b828001600101855582156200025a579182015b828111156200025a5782518255916020019190600101906200023d565b50620002689291506200026c565b5090565b620001e491905b8082111562000268576000815560010162000273565b610f3a80620002996000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638da5cb5b116100975780639182621a116100665780639182621a14610374578063c979b05a14610421578063f2fde38b14610447578063f9f451b81461046d576100f5565b80638da5cb5b1461028e5780638f06492d146102b25780638f32d59b146102ba57806390bfaf40146102c2576100f5565b806371790251116100d357806371790251146101bc57806376acf1b6146101d85780637d2211d6146101e057806388cdab9414610286576100f5565b8063164e68de146100fa5780635c622a0e14610122578063715018a6146101b4575b600080fd5b6101206004803603602081101561011057600080fd5b50356001600160a01b0316610475565b005b61013f6004803603602081101561013857600080fd5b5035610583565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610179578181015183820152602001610161565b50505050905090810190601f1680156101a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610120610624565b6101c461067f565b604080519115158252519081900360200190f35b61013f61068f565b610120600480360360208110156101f657600080fd5b81019060208101813564010000000081111561021157600080fd5b82018360208201111561022357600080fd5b8035906020019184600183028401116401000000008311171561024557600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061071a945050505050565b61013f610988565b6102966109e2565b604080516001600160a01b039092168252519081900360200190f35b6101c46109f2565b6101c4610a02565b6101c4600480360360608110156102d857600080fd5b8135916020810135918101906060810160408201356401000000008111156102ff57600080fd5b82018360208201111561031157600080fd5b8035906020019184600183028401116401000000008311171561033357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a13945050505050565b6101c46004803603604081101561038a57600080fd5b813591908101906040810160208201356401000000008111156103ac57600080fd5b8201836020820111156103be57600080fd5b803590602001918460018302840111640100000000831117156103e057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b58945050505050565b6101206004803603602081101561043757600080fd5b50356001600160a01b0316610baa565b6101206004803603602081101561045d57600080fd5b50356001600160a01b0316610bdd565b610296610bfa565b61047d610a02565b61048657600080fd5b600354604080516375d7e4bd60e01b815290516001600160a01b039092169160009183916375d7e4bd9160048082019260209290919082900301818787803b1580156104d157600080fd5b505af11580156104e5573d6000803e3d6000fd5b505050506040513d60208110156104fb57600080fd5b5051604080516370a0823160e01b8152306004820152905191925061057e9185916001600160a01b038516916370a0823191602480820192602092909190829003018186803b15801561054d57600080fd5b505afa158015610561573d6000803e3d6000fd5b505050506040513d602081101561057757600080fd5b5051610c09565b505050565b60008181526004602090815260409182902080548351601f60026000196101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156106185780601f106105ed57610100808354040283529160200191610618565b820191906000526020600020905b8154815290600101906020018083116105fb57829003601f168201915b50505050509050919050565b61062c610a02565b61063557600080fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600354600160a01b900460ff1681565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156107125780601f106106e757610100808354040283529160200191610712565b820191906000526020600020905b8154815290600101906020018083116106f557829003601f168201915b505050505081565b6003546040805163a759ee6f60e01b815290516001600160a01b0390921691600091839163a759ee6f9160048082019260209290919082900301818787803b15801561076557600080fd5b505af1158015610779573d6000803e3d6000fd5b505050506040513d602081101561078f57600080fd5b5051604080516305c62c2f60e01b815233600482015290519192506000916001600160a01b038416916305c62c2f916024808301926020929190829003018186803b1580156107dd57600080fd5b505afa1580156107f1573d6000803e3d6000fd5b505050506040513d602081101561080757600080fd5b50516040805163352c737360e21b81526004810183905230602482015290519192506001600160a01b0384169163d4b1cdcc91604480820192602092909190829003018186803b15801561085a57600080fd5b505afa15801561086e573d6000803e3d6000fd5b505050506040513d602081101561088457600080fd5b50516108c15760405162461bcd60e51b8152600401808060200182810382526022815260200180610ec36022913960400191505060405180910390fd5b600081815260046020908152604090912085516108e092870190610db5565b507fdc280875b120650ffe3edf5f724f07fd086361a32c2a387fe34b495f5679e77d81856040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561094757818101518382015260200161092f565b50505050905090810190601f1680156109745780820380516001836020036101000a031916815260200191505b50935050505060405180910390a150505050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107125780601f106106e757610100808354040283529160200191610712565b6000546001600160a01b03165b90565b600354600160a81b900460ff1681565b6000546001600160a01b0316331490565b6003546000906001600160a01b03163314610a5f5760405162461bcd60e51b8152600401808060200182810382526021815260200180610ee56021913960400191505060405180910390fd5b6003546001600160a01b03168063edda781586610a7a6109e2565b6005546040518463ffffffff1660e01b815260040180848152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050600060405180830381600087803b158015610ad357600080fd5b505af1158015610ae7573d6000803e3d6000fd5b505050600086815260046020526040902060068054610b19935060026000196101006001841615020190911604610e33565b506040805186815290517fc252650b912104c77e420095a00de9a62cf950c897f73a39629aee5df63f97759181900360200190a1506001949350505050565b6003546000906001600160a01b03163314610ba45760405162461bcd60e51b8152600401808060200182810382526021815260200180610ee56021913960400191505060405180910390fd5b92915050565b610bb2610a02565b610bbb57600080fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b610be5610a02565b610bee57600080fd5b610bf781610d47565b50565b6003546001600160a01b031681565b600354604080516375d7e4bd60e01b815290516000926001600160a01b0316916375d7e4bd91600480830192602092919082900301818787803b158015610c4f57600080fd5b505af1158015610c63573d6000803e3d6000fd5b505050506040513d6020811015610c7957600080fd5b50516040805163a9059cbb60e01b81526001600160a01b0386811660048301526024820186905291519293509083169163a9059cbb916044808201926020929091908290030181600087803b158015610cd157600080fd5b505af1158015610ce5573d6000803e3d6000fd5b505050506040513d6020811015610cfb57600080fd5b505161057e576040805162461bcd60e51b81526020600482015260166024820152752ab739bab1b1b2b9b9b33ab6103a3930b739b332b91760511b604482015290519081900360640190fd5b6001600160a01b038116610d5a57600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610df657805160ff1916838001178555610e23565b82800160010185558215610e23579182015b82811115610e23578251825591602001919060010190610e08565b50610e2f929150610ea8565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610e6c5780548555610e23565b82800160010185558215610e2357600052602060002091601f016020900482015b82811115610e23578254825591600101919060010190610e8d565b6109ef91905b80821115610e2f5760008155600101610eae56fe5468652045494e20686173206e6f74207365742074686973207265736f6c7665722e446964206e6f74206f726967696e6174652066726f6d20536e6f77666c616b652ea265627a7a723158202a263a2d22b63187a8f9e6509993e25518459cc735067bab80eac5a44b6a4a6f64736f6c634300050f003200000000000000000000000032c927d1d1df373c3fae1dc32338570e85f1d4e5
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80638da5cb5b116100975780639182621a116100665780639182621a14610374578063c979b05a14610421578063f2fde38b14610447578063f9f451b81461046d576100f5565b80638da5cb5b1461028e5780638f06492d146102b25780638f32d59b146102ba57806390bfaf40146102c2576100f5565b806371790251116100d357806371790251146101bc57806376acf1b6146101d85780637d2211d6146101e057806388cdab9414610286576100f5565b8063164e68de146100fa5780635c622a0e14610122578063715018a6146101b4575b600080fd5b6101206004803603602081101561011057600080fd5b50356001600160a01b0316610475565b005b61013f6004803603602081101561013857600080fd5b5035610583565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610179578181015183820152602001610161565b50505050905090810190601f1680156101a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610120610624565b6101c461067f565b604080519115158252519081900360200190f35b61013f61068f565b610120600480360360208110156101f657600080fd5b81019060208101813564010000000081111561021157600080fd5b82018360208201111561022357600080fd5b8035906020019184600183028401116401000000008311171561024557600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061071a945050505050565b61013f610988565b6102966109e2565b604080516001600160a01b039092168252519081900360200190f35b6101c46109f2565b6101c4610a02565b6101c4600480360360608110156102d857600080fd5b8135916020810135918101906060810160408201356401000000008111156102ff57600080fd5b82018360208201111561031157600080fd5b8035906020019184600183028401116401000000008311171561033357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a13945050505050565b6101c46004803603604081101561038a57600080fd5b813591908101906040810160208201356401000000008111156103ac57600080fd5b8201836020820111156103be57600080fd5b803590602001918460018302840111640100000000831117156103e057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b58945050505050565b6101206004803603602081101561043757600080fd5b50356001600160a01b0316610baa565b6101206004803603602081101561045d57600080fd5b50356001600160a01b0316610bdd565b610296610bfa565b61047d610a02565b61048657600080fd5b600354604080516375d7e4bd60e01b815290516001600160a01b039092169160009183916375d7e4bd9160048082019260209290919082900301818787803b1580156104d157600080fd5b505af11580156104e5573d6000803e3d6000fd5b505050506040513d60208110156104fb57600080fd5b5051604080516370a0823160e01b8152306004820152905191925061057e9185916001600160a01b038516916370a0823191602480820192602092909190829003018186803b15801561054d57600080fd5b505afa158015610561573d6000803e3d6000fd5b505050506040513d602081101561057757600080fd5b5051610c09565b505050565b60008181526004602090815260409182902080548351601f60026000196101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156106185780601f106105ed57610100808354040283529160200191610618565b820191906000526020600020905b8154815290600101906020018083116105fb57829003601f168201915b50505050509050919050565b61062c610a02565b61063557600080fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600354600160a01b900460ff1681565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156107125780601f106106e757610100808354040283529160200191610712565b820191906000526020600020905b8154815290600101906020018083116106f557829003601f168201915b505050505081565b6003546040805163a759ee6f60e01b815290516001600160a01b0390921691600091839163a759ee6f9160048082019260209290919082900301818787803b15801561076557600080fd5b505af1158015610779573d6000803e3d6000fd5b505050506040513d602081101561078f57600080fd5b5051604080516305c62c2f60e01b815233600482015290519192506000916001600160a01b038416916305c62c2f916024808301926020929190829003018186803b1580156107dd57600080fd5b505afa1580156107f1573d6000803e3d6000fd5b505050506040513d602081101561080757600080fd5b50516040805163352c737360e21b81526004810183905230602482015290519192506001600160a01b0384169163d4b1cdcc91604480820192602092909190829003018186803b15801561085a57600080fd5b505afa15801561086e573d6000803e3d6000fd5b505050506040513d602081101561088457600080fd5b50516108c15760405162461bcd60e51b8152600401808060200182810382526022815260200180610ec36022913960400191505060405180910390fd5b600081815260046020908152604090912085516108e092870190610db5565b507fdc280875b120650ffe3edf5f724f07fd086361a32c2a387fe34b495f5679e77d81856040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561094757818101518382015260200161092f565b50505050905090810190601f1680156109745780820380516001836020036101000a031916815260200191505b50935050505060405180910390a150505050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107125780601f106106e757610100808354040283529160200191610712565b6000546001600160a01b03165b90565b600354600160a81b900460ff1681565b6000546001600160a01b0316331490565b6003546000906001600160a01b03163314610a5f5760405162461bcd60e51b8152600401808060200182810382526021815260200180610ee56021913960400191505060405180910390fd5b6003546001600160a01b03168063edda781586610a7a6109e2565b6005546040518463ffffffff1660e01b815260040180848152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050600060405180830381600087803b158015610ad357600080fd5b505af1158015610ae7573d6000803e3d6000fd5b505050600086815260046020526040902060068054610b19935060026000196101006001841615020190911604610e33565b506040805186815290517fc252650b912104c77e420095a00de9a62cf950c897f73a39629aee5df63f97759181900360200190a1506001949350505050565b6003546000906001600160a01b03163314610ba45760405162461bcd60e51b8152600401808060200182810382526021815260200180610ee56021913960400191505060405180910390fd5b92915050565b610bb2610a02565b610bbb57600080fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b610be5610a02565b610bee57600080fd5b610bf781610d47565b50565b6003546001600160a01b031681565b600354604080516375d7e4bd60e01b815290516000926001600160a01b0316916375d7e4bd91600480830192602092919082900301818787803b158015610c4f57600080fd5b505af1158015610c63573d6000803e3d6000fd5b505050506040513d6020811015610c7957600080fd5b50516040805163a9059cbb60e01b81526001600160a01b0386811660048301526024820186905291519293509083169163a9059cbb916044808201926020929091908290030181600087803b158015610cd157600080fd5b505af1158015610ce5573d6000803e3d6000fd5b505050506040513d6020811015610cfb57600080fd5b505161057e576040805162461bcd60e51b81526020600482015260166024820152752ab739bab1b1b2b9b9b33ab6103a3930b739b332b91760511b604482015290519081900360640190fd5b6001600160a01b038116610d5a57600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610df657805160ff1916838001178555610e23565b82800160010185558215610e23579182015b82811115610e23578251825591602001919060010190610e08565b50610e2f929150610ea8565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610e6c5780548555610e23565b82800160010185558215610e2357600052602060002091601f016020900482015b82811115610e23578254825591600101919060010190610e8d565b6109ef91905b80821115610e2f5760008155600101610eae56fe5468652045494e20686173206e6f74207365742074686973207265736f6c7665722e446964206e6f74206f726967696e6174652066726f6d20536e6f77666c616b652ea265627a7a723158202a263a2d22b63187a8f9e6509993e25518459cc735067bab80eac5a44b6a4a6f64736f6c634300050f0032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000032c927d1d1df373c3fae1dc32338570e85f1d4e5
-----Decoded View---------------
Arg [0] : snowflakeAddress (address): 0x32c927D1d1dF373c3FAe1dc32338570e85F1d4e5
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000032c927d1d1df373c3fae1dc32338570e85f1d4e5
Deployed Bytecode Sourcemap
13172:1818:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13172:1818:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14612:287;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14612:287:0;-1:-1:-1;;;;;14612:287:0;;:::i;:::-;;13994:104;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13994:104:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;13994:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1398:140;;;:::i;2677:26::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;2594:34;;;:::i;14106:498::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14106:498:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;14106:498:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;14106:498:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;14106:498:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;14106:498:0;;-1:-1:-1;14106:498:0;;-1:-1:-1;;;;;14106:498:0:i;2560:27::-;;;:::i;696:78::-;;;:::i;:::-;;;;-1:-1:-1;;;;;696:78:0;;;;;;;;;;;;;;2710:25;;;:::i;1026:91::-;;;:::i;13544:351::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13544:351:0;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;13544:351:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;13544:351:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;13544:351:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;13544:351:0;;-1:-1:-1;13544:351:0;;-1:-1:-1;;;;;13544:351:0:i;13903:83::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13903:83:0;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;13903:83:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;13903:83:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;13903:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;13903:83:0;;-1:-1:-1;13903:83:0;;-1:-1:-1;;;;;13903:83:0:i;3455:128::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3455:128:0;-1:-1:-1;;;;;3455:128:0;;:::i;1712:109::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1712:109:0;-1:-1:-1;;;;;1712:109:0;;:::i;2637:31::-;;;:::i;14612:287::-;905:9;:7;:9::i;:::-;897:18;;;;;;14726:16;;14792:29;;;-1:-1:-1;;;14792:29:0;;;;-1:-1:-1;;;;;14726:16:0;;;;14676:28;;14726:16;;14792:27;;:29;;;;;;;;;;;;;;;14676:28;14726:16;14792:29;;;5:2:-1;;;;30:1;27;20:12;5:2;14792:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14792:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14792:29:0;14860:30;;;-1:-1:-1;;;14860:30:0;;14884:4;14860:30;;;;;;14792:29;;-1:-1:-1;14833:58:0;;14856:2;;-1:-1:-1;;;;;14860:15:0;;;;;:30;;;;;14792:29;;14860:30;;;;;;;;:15;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;14860:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14860:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14860:30:0;14833:22;:58::i;:::-;926:1;;14612:287;:::o;13994:104::-;14077:13;;;;:8;:13;;;;;;;;;14070:20;;;;;;-1:-1:-1;;14070:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14044:13;;14070:20;;;14077:13;14070:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13994:104;;;:::o;1398:140::-;905:9;:7;:9::i;:::-;897:18;;;;;;1497:1;1481:6;;1460:40;;-1:-1:-1;;;;;1481:6:0;;;;1460:40;;1497:1;;1460:40;1528:1;1511:19;;-1:-1:-1;;;;;;1511:19:0;;;1398:140::o;2677:26::-;;;-1:-1:-1;;;2677:26:0;;;;;:::o;2594:34::-;;;;;;;;;;;;;;-1:-1:-1;;2594:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14106:498::-;14215:16;;14314:35;;;-1:-1:-1;;;14314:35:0;;;;-1:-1:-1;;;;;14215:16:0;;;;14165:28;;14215:16;;14314:33;;:35;;;;;;;;;;;;;;;14165:28;14215:16;14314:35;;;5:2:-1;;;;30:1;27;20:12;5:2;14314:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14314:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14314:35:0;14374;;;-1:-1:-1;;;14374:35:0;;14398:10;14374:35;;;;;;14314;;-1:-1:-1;14363:8:0;;-1:-1:-1;;;;;14374:23:0;;;;;:35;;;;;14314;;14374;;;;;;;:23;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;14374:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14374:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14374:35:0;14428:50;;;-1:-1:-1;;;14428:50:0;;;;;;;;14472:4;14428:50;;;;;;14374:35;;-1:-1:-1;;;;;;14428:30:0;;;;;:50;;;;;14374:35;;14428:50;;;;;;;;:30;:50;;;5:2:-1;;;;30:1;27;20:12;5:2;14428:50:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14428:50:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14428:50:0;14420:97;;;;-1:-1:-1;;;14420:97:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14530:13;;;;:8;:13;;;;;;;;:22;;;;;;;;:::i;:::-;;14570:26;14584:3;14589:6;14570:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;14570:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14106:498;;;;:::o;2560:27::-;;;;;;;;;;;;;;;-1:-1:-1;;2560:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;696:78;733:7;760:6;-1:-1:-1;;;;;760:6:0;696:78;;:::o;2710:25::-;;;-1:-1:-1;;;2710:25:0;;;;;:::o;1026:91::-;1065:4;1103:6;-1:-1:-1;;;;;1103:6:0;1089:10;:20;;1026:91::o;13544:351::-;3259:16;;13630:4;;-1:-1:-1;;;;;3259:16:0;3245:10;:30;3237:76;;;;-1:-1:-1;;;3237:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13697:16;;-1:-1:-1;;;;;13697:16:0;;13725:38;13764:3;13769:7;:5;:7::i;:::-;13778:9;;13725:63;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13725:63:0;-1:-1:-1;;;;;13725:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13725:63:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;13801:13:0;;;;:8;:13;;;;;13817:11;13801:27;;;;-1:-1:-1;13801:27:0;-1:-1:-1;;13801:27:0;;;;;;;;;;;;:::i;:::-;-1:-1:-1;13846:17:0;;;;;;;;;;;;;;;;;-1:-1:-1;13883:4:0;;13544:351;-1:-1:-1;;;;13544:351:0:o;13903:83::-;3259:16;;13978:4;;-1:-1:-1;;;;;3259:16:0;3245:10;:30;3237:76;;;;-1:-1:-1;;;3237:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13903:83;;;;:::o;3455:128::-;905:9;:7;:9::i;:::-;897:18;;;;;;3539:16;:36;;-1:-1:-1;;;;;;3539:36:0;-1:-1:-1;;;;;3539:36:0;;;;;;;;;;3455:128::o;1712:109::-;905:9;:7;:9::i;:::-;897:18;;;;;;1785:28;1804:8;1785:18;:28::i;:::-;1712:109;:::o;2637:31::-;;;-1:-1:-1;;;;;2637:31:0;;:::o;4681:252::-;4815:16;;4796:56;;;-1:-1:-1;;;4796:56:0;;;;4758:20;;-1:-1:-1;;;;;4815:16:0;;4796:54;;:56;;;;;;;;;;;;;;4758:20;4815:16;4796:56;;;5:2:-1;;;;30:1;27;20:12;5:2;4796:56:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4796:56:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4796:56:0;4872:26;;;-1:-1:-1;;;4872:26:0;;-1:-1:-1;;;;;4872:26:0;;;;;;;;;;;;;;;4796:56;;-1:-1:-1;4872:14:0;;;;;;:26;;;;;4796:56;;4872:26;;;;;;;;-1:-1:-1;4872:14:0;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;4872:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4872:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4872:26:0;4864:61;;;;;-1:-1:-1;;;4864:61:0;;;;;;;;;;;;-1:-1:-1;;;4864:61:0;;;;;;;;;;;;;;1968:187;-1:-1:-1;;;;;2042:22:0;;2034:31;;;;;;2102:6;;;2081:38;;-1:-1:-1;;;;;2081:38:0;;;;2102:6;;;2081:38;;;2130:6;:17;;-1:-1:-1;;;;;;2130:17:0;-1:-1:-1;;;;;2130:17:0;;;;;;;;;;1968:187::o;13172:1818::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13172:1818:0;;;-1:-1:-1;13172:1818:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Swarm Source
bzzr://2a263a2d22b63187a8f9e6509993e25518459cc735067bab80eac5a44b6a4a6f
Net Worth in USD
Net Worth in ETH
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.