Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 25 from a total of 66 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Execute Transact... | 21963687 | 285 days ago | IN | 0 ETH | 0.00008898 | ||||
| Confirm Transact... | 21963672 | 285 days ago | IN | 0 ETH | 0.00006941 | ||||
| Submit Transacti... | 21963657 | 285 days ago | IN | 0 ETH | 0.00019922 | ||||
| Execute Transact... | 21963623 | 285 days ago | IN | 0 ETH | 0.00008842 | ||||
| Confirm Transact... | 21963619 | 285 days ago | IN | 0 ETH | 0.00006839 | ||||
| Submit Transacti... | 21963595 | 285 days ago | IN | 0 ETH | 0.00020356 | ||||
| Execute Transact... | 19937354 | 568 days ago | IN | 0 ETH | 0.00077927 | ||||
| Confirm Transact... | 19937331 | 568 days ago | IN | 0 ETH | 0.00038571 | ||||
| Submit Transacti... | 19937288 | 568 days ago | IN | 0 ETH | 0.00097005 | ||||
| Execute Transact... | 19873356 | 577 days ago | IN | 0 ETH | 0.00046266 | ||||
| Confirm Transact... | 19873350 | 577 days ago | IN | 0 ETH | 0.00025238 | ||||
| Submit Transacti... | 19873306 | 577 days ago | IN | 0 ETH | 0.00057451 | ||||
| Execute Transact... | 19242581 | 665 days ago | IN | 0 ETH | 0.0027157 | ||||
| Confirm Transact... | 19242243 | 665 days ago | IN | 0 ETH | 0.00190886 | ||||
| Submit Transacti... | 19239210 | 666 days ago | IN | 0 ETH | 0.00420041 | ||||
| Execute Transact... | 19023706 | 696 days ago | IN | 0 ETH | 0.00185402 | ||||
| Execute Transact... | 19023699 | 696 days ago | IN | 0 ETH | 0.0030315 | ||||
| Confirm Transact... | 19019253 | 697 days ago | IN | 0 ETH | 0.0017155 | ||||
| Confirm Transact... | 19019243 | 697 days ago | IN | 0 ETH | 0.00185014 | ||||
| Submit Transacti... | 19017316 | 697 days ago | IN | 0 ETH | 0.00466201 | ||||
| Submit Transacti... | 19017281 | 697 days ago | IN | 0 ETH | 0.00472607 | ||||
| Execute Transact... | 18624852 | 752 days ago | IN | 0 ETH | 0.00695884 | ||||
| Confirm Transact... | 18624851 | 752 days ago | IN | 0 ETH | 0.00172625 | ||||
| Submit Transacti... | 18624646 | 752 days ago | IN | 0 ETH | 0.01015836 | ||||
| Execute Transact... | 18258843 | 803 days ago | IN | 0 ETH | 0.00168204 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Multisig
Compiler Version
v0.8.19+commit.7dd6d404
Optimization Enabled:
Yes with 9999 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;
import "../libs/MemberSet.sol";
import "./Multisigable.sol";
// LightLink 2023
contract Multisig is Multisigable {
using MemberSet for MemberSet.Record;
struct Transaction {
bool executed;
address target;
bytes data;
uint256 value;
uint256 numConfirmations;
}
// variables
MemberSet.Record internal members;
// mapping from tx index => owner => bool
mapping(uint256 => mapping(address => bool)) public isConfirmed;
Transaction[] public transactions;
event SubmitTransaction(uint256 indexed txIndex, address indexed account, uint256 value, bytes data);
event ConfirmTransaction(uint256 indexed txIndex, address indexed owner);
event RevokeConfirmation(uint256 indexed txIndex, address indexed owner);
event ExecuteTransaction(uint256 indexed txIndex, address indexed owner);
constructor() {
__Multisigable_init(address(this));
members.add(0xdE2552948aacb82dCa7a04AffbcB1B8e3C97D590);
members.add(0x26623571D709862776a0E061617634e6474393F2);
}
/** Modifier */
// verified
modifier requireOwner() {
require(members.contains(msg.sender), "Owner required");
_;
}
// verified
modifier requireTxExists(uint256 _txIndex) {
require(_txIndex < transactions.length, "Nonexistent tx");
_;
}
modifier requireTxNotExecuted(uint256 _txIndex) {
require(!transactions[_txIndex].executed, "Tx already executed");
_;
}
/* View */
// verified
function isOwner(address _account) public view returns (bool) {
return members.contains(_account);
}
// verified
function getMembers() public view returns (address[] memory) {
uint256 size = members.size();
address[] memory records = new address[](size);
for (uint256 i = 0; i < size; i++) {
records[i] = members.at(i);
}
return records;
}
// verified
function getMemberByIndex(uint256 _index) public view returns (address) {
return members.at(_index);
}
// verified
function getTransactionCount() public view returns (uint256) {
return transactions.length;
}
// verified
function getTransaction(uint256 _idx) public view returns (Transaction memory, bytes4 funcSelector) {
bytes memory data = transactions[_idx].data;
assembly {
funcSelector := mload(add(data, 32))
}
return (transactions[_idx], funcSelector);
}
// verified
function getSelector(string calldata _func) public pure returns (bytes4) {
return bytes4(keccak256(bytes(_func)));
}
/* Admins */
// verified
function addMember(address _account) public virtual requireMultisig {
members.add(_account);
}
// verified
function removeMember(address _account) public virtual requireMultisig {
require(members.size() > 1, "Cannot remove last member");
members.remove(_account);
}
// verified
function submitTransaction(address _target, uint256 _value, bytes calldata _data) public requireOwner {
_beforeAddTransaction(_data);
uint256 txIndex = transactions.length;
transactions.push(Transaction({ executed: false, target: _target, data: _data, value: _value, numConfirmations: 0 }));
confirmTransaction(txIndex);
emit SubmitTransaction(txIndex, msg.sender, _value, _data);
}
// verified
function confirmTransaction(uint256 _txIndex) public requireOwner requireTxExists(_txIndex) requireTxNotExecuted(_txIndex) {
Transaction storage transaction = transactions[_txIndex];
require(!isConfirmed[_txIndex][msg.sender], "Already confirmed");
transaction.numConfirmations += 1;
isConfirmed[_txIndex][msg.sender] = true;
emit ConfirmTransaction(_txIndex, msg.sender);
}
// verified
function executeTransaction(uint256 _txIndex) public requireOwner requireTxExists(_txIndex) requireTxNotExecuted(_txIndex) {
Transaction storage transaction = transactions[_txIndex];
uint256 numConfirmationsRequired = members.size() / 2 + 1;
require(transaction.numConfirmations >= numConfirmationsRequired, "Confirmations required");
transaction.executed = true;
(bool success, ) = transaction.target.call{ value: transaction.value }(transaction.data);
require(success, "Tx failed");
emit ExecuteTransaction(_txIndex, msg.sender);
}
// verified
function revokeConfirmation(uint256 _txIndex) public requireOwner requireTxExists(_txIndex) requireTxNotExecuted(_txIndex) {
Transaction storage transaction = transactions[_txIndex];
require(isConfirmed[_txIndex][msg.sender], "Confirmation required");
transaction.numConfirmations -= 1;
isConfirmed[_txIndex][msg.sender] = false;
emit RevokeConfirmation(_txIndex, msg.sender);
}
/* Internal */
// verified
function _beforeAddTransaction(bytes calldata _data) internal pure virtual {
// bytes4 funcSelector = bytes4(_data[:4]);
}
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;
// LightLink 2023
library MemberSet {
struct Record {
address[] values;
mapping(address => uint256) indexes; // value to index
}
function add(Record storage _record, address _value) internal {
if (contains(_record, _value)) return; // exist
_record.values.push(_value);
_record.indexes[_value] = _record.values.length;
}
function remove(Record storage _record, address _value) internal {
uint256 valueIndex = _record.indexes[_value];
if (valueIndex == 0) return; // removed non-exist value
uint256 toDeleteIndex = valueIndex - 1; // dealing with out of bounds
uint256 lastIndex = _record.values.length - 1;
if (lastIndex != toDeleteIndex) {
address lastvalue = _record.values[lastIndex];
_record.values[toDeleteIndex] = lastvalue;
_record.indexes[lastvalue] = valueIndex; // Replace lastvalue's index to valueIndex
}
_record.values.pop();
_record.indexes[_value] = 0; // set to 0
}
function contains(Record storage _record, address _value) internal view returns (bool) {
return _record.indexes[_value] != 0;
}
function size(Record storage _record) internal view returns (uint256) {
return _record.values.length;
}
function at(Record storage _record, uint256 _index) internal view returns (address) {
return _record.values[_index];
}
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;
// LightLink 2023
abstract contract Multisigable {
address public multisig;
/** Modifier */
// verified
modifier requireMultisig() {
require(msg.sender == multisig, "Multisig required");
_;
}
function modifyMultisig(address _multisig) public requireMultisig {
require(_multisig != address(0), "Multisig address cannot be zero");
multisig = _multisig;
}
function __Multisigable_init(address _multisig) internal {
require(_multisig != address(0), "Multisig address cannot be zero");
multisig = _multisig;
}
}{
"optimizer": {
"enabled": true,
"runs": 9999
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"txIndex","type":"uint256"},{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"ConfirmTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"txIndex","type":"uint256"},{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"ExecuteTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"txIndex","type":"uint256"},{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"RevokeConfirmation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"txIndex","type":"uint256"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"SubmitTransaction","type":"event"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"addMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_txIndex","type":"uint256"}],"name":"confirmTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_txIndex","type":"uint256"}],"name":"executeTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"getMemberByIndex","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMembers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_func","type":"string"}],"name":"getSelector","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"getTransaction","outputs":[{"components":[{"internalType":"bool","name":"executed","type":"bool"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"numConfirmations","type":"uint256"}],"internalType":"struct Multisig.Transaction","name":"","type":"tuple"},{"internalType":"bytes4","name":"funcSelector","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTransactionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"isConfirmed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_multisig","type":"address"}],"name":"modifyMultisig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"multisig","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"removeMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_txIndex","type":"uint256"}],"name":"revokeConfirmation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"submitTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"transactions","outputs":[{"internalType":"bool","name":"executed","type":"bool"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"numConfirmations","type":"uint256"}],"stateMutability":"view","type":"function"}]Contract Creation Code
60806040523480156200001157600080fd5b506200001d3062000065565b6200003e600173de2552948aacb82dca7a04affbcb1b8e3c97d590620000e2565b6200005f60017326623571d709862776a0e061617634e6474393f2620000e2565b6200014b565b6001600160a01b038116620000c05760405162461bcd60e51b815260206004820152601f60248201527f4d756c746973696720616464726573732063616e6e6f74206265207a65726f00604482015260640160405180910390fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526001830160205260409020541562000107575050565b8154600181810184556000848152602080822090930180546001600160a01b039095166001600160a01b031990951685179055845493815293019052604090912055565b611c84806200015b6000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806380f59a6511610097578063c01a8c8411610066578063c01a8c841461029d578063c6427474146102b0578063ca6d56dc146102c3578063ee22610b146102d657600080fd5b806380f59a65146102235780639ace38c2146102515780639eab525314610275578063bce73b451461028a57600080fd5b806333ea3dc8116100d357806333ea3dc8146101665780634783c35b146101875780636ad00461146101cc57806380a003ff146101df57600080fd5b80630b1ca49a1461010557806320ea8d861461011a5780632e7700f01461012d5780632f54bf6e14610143575b600080fd5b610118610113366004611563565b6102e9565b005b610118610128366004611585565b6103b4565b6004546040519081526020015b60405180910390f35b610156610151366004611563565b6105ee565b604051901515815260200161013a565b610179610174366004611585565b61061d565b60405161013a929190611602565b6000546101a79073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161013a565b6101186101da366004611563565b610837565b6101f26101ed3660046116d8565b610948565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200161013a565b61015661023136600461171a565b600360209081526000928352604080842090915290825290205460ff1681565b61026461025f366004611585565b61096a565b60405161013a959493929190611746565b61027d610a4e565b60405161013a9190611791565b6101a7610298366004611585565b610b0a565b6101186102ab366004611585565b610b17565b6101186102be3660046117eb565b610d55565b6101186102d1366004611563565b610f51565b6101186102e4366004611585565b610fc3565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103555760405162461bcd60e51b815260206004820152601160248201527f4d756c746973696720726571756972656400000000000000000000000000000060448201526064015b60405180910390fd5b60018054116103a65760405162461bcd60e51b815260206004820152601960248201527f43616e6e6f742072656d6f7665206c617374206d656d62657200000000000000604482015260640161034c565b6103b16001826112ae565b50565b336000908152600260205260409020546104105760405162461bcd60e51b815260206004820152600e60248201527f4f776e6572207265717569726564000000000000000000000000000000000000604482015260640161034c565b600454819081106104635760405162461bcd60e51b815260206004820152600e60248201527f4e6f6e6578697374656e74207478000000000000000000000000000000000000604482015260640161034c565b816004818154811061047757610477611845565b600091825260209091206004909102015460ff16156104d85760405162461bcd60e51b815260206004820152601360248201527f547820616c726561647920657865637574656400000000000000000000000000604482015260640161034c565b6000600484815481106104ed576104ed611845565b600091825260208083208784526003825260408085203386529092529220546004909102909101915060ff166105655760405162461bcd60e51b815260206004820152601560248201527f436f6e6669726d6174696f6e2072657175697265640000000000000000000000604482015260640161034c565b600181600301600082825461057a91906118a3565b9091555050600084815260036020908152604080832033808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551909186917f7f8ce8e4f5a5b480ff78c18404639350996fd63efc83ace55b1d6a3e12158e249190a350505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602052604081205415155b92915050565b6106676040518060a00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160008152602001600081525090565b6000806004848154811061067d5761067d611845565b90600052602060002090600402016001018054610699906118b6565b80601f01602080910402602001604051908101604052809291908181526020018280546106c5906118b6565b80156107125780601f106106e757610100808354040283529160200191610712565b820191906000526020600020905b8154815290600101906020018083116106f557829003601f168201915b50505050509050602081015191506004848154811061073357610733611845565b60009182526020918290206040805160a0810182526004909302909101805460ff81161515845273ffffffffffffffffffffffffffffffffffffffff6101009091041693830193909352600183018054869392859290840191610795906118b6565b80601f01602080910402602001604051908101604052809291908181526020018280546107c1906118b6565b801561080e5780601f106107e35761010080835404028352916020019161080e565b820191906000526020600020905b8154815290600101906020018083116107f157829003601f168201915b505050505081526020016002820154815260200160038201548152505091509250925050915091565b60005473ffffffffffffffffffffffffffffffffffffffff16331461089e5760405162461bcd60e51b815260206004820152601160248201527f4d756c7469736967207265717569726564000000000000000000000000000000604482015260640161034c565b73ffffffffffffffffffffffffffffffffffffffff81166109015760405162461bcd60e51b815260206004820152601f60248201527f4d756c746973696720616464726573732063616e6e6f74206265207a65726f00604482015260640161034c565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000828260405161095a929190611909565b6040518091039020905092915050565b6004818154811061097a57600080fd5b60009182526020909120600490910201805460018201805460ff8316945061010090920473ffffffffffffffffffffffffffffffffffffffff1692916109bf906118b6565b80601f01602080910402602001604051908101604052809291908181526020018280546109eb906118b6565b8015610a385780601f10610a0d57610100808354040283529160200191610a38565b820191906000526020600020905b815481529060010190602001808311610a1b57829003601f168201915b5050505050908060020154908060030154905085565b60606000610a5b60015490565b905060008167ffffffffffffffff811115610a7857610a78611919565b604051908082528060200260200182016040528015610aa1578160200160208202803683370190505b50905060005b82811015610b0357610aba600182611460565b828281518110610acc57610acc611845565b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015280610afb81611948565b915050610aa7565b5092915050565b6000610617600183611460565b33600090815260026020526040902054610b735760405162461bcd60e51b815260206004820152600e60248201527f4f776e6572207265717569726564000000000000000000000000000000000000604482015260640161034c565b60045481908110610bc65760405162461bcd60e51b815260206004820152600e60248201527f4e6f6e6578697374656e74207478000000000000000000000000000000000000604482015260640161034c565b8160048181548110610bda57610bda611845565b600091825260209091206004909102015460ff1615610c3b5760405162461bcd60e51b815260206004820152601360248201527f547820616c726561647920657865637574656400000000000000000000000000604482015260640161034c565b600060048481548110610c5057610c50611845565b600091825260208083208784526003825260408085203386529092529220546004909102909101915060ff1615610cc95760405162461bcd60e51b815260206004820152601160248201527f416c726561647920636f6e6669726d6564000000000000000000000000000000604482015260640161034c565b6001816003016000828254610cde9190611980565b9091555050600084815260036020908152604080832033808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905551909186917fcb0f87c749501e9cd0f274dc3a2c62b91b6a4f2909001c6c13663072b739d3d69190a350505050565b33600090815260026020526040902054610db15760405162461bcd60e51b815260206004820152600e60248201527f4f776e6572207265717569726564000000000000000000000000000000000000604482015260640161034c565b6000600480549050905060046040518060a001604052806000151581526020018773ffffffffffffffffffffffffffffffffffffffff16815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250938552505050602080830189905260409283018290528454600180820187559583529181902084516004909302018054918501517fffffffffffffffffffffff0000000000000000000000000000000000000000009092169215157fffffffffffffffffffffff0000000000000000000000000000000000000000ff169290921761010073ffffffffffffffffffffffffffffffffffffffff90921691909102178155908201519192909190820190610ed890826119e2565b5060608201518160020155608082015181600301555050610ef881610b17565b3373ffffffffffffffffffffffffffffffffffffffff16817ec2937519b07b47ea25f52e915dd99023f9b3e1aaeef041ddecbac3e9400bbe868686604051610f4293929190611afc565b60405180910390a35050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610fb85760405162461bcd60e51b815260206004820152601160248201527f4d756c7469736967207265717569726564000000000000000000000000000000604482015260640161034c565b6103b16001826114a0565b3360009081526002602052604090205461101f5760405162461bcd60e51b815260206004820152600e60248201527f4f776e6572207265717569726564000000000000000000000000000000000000604482015260640161034c565b600454819081106110725760405162461bcd60e51b815260206004820152600e60248201527f4e6f6e6578697374656e74207478000000000000000000000000000000000000604482015260640161034c565b816004818154811061108657611086611845565b600091825260209091206004909102015460ff16156110e75760405162461bcd60e51b815260206004820152601360248201527f547820616c726561647920657865637574656400000000000000000000000000604482015260640161034c565b6000600484815481106110fc576110fc611845565b906000526020600020906004020190506000600261111960015490565b6111239190611b50565b61112e906001611980565b905080826003015410156111845760405162461bcd60e51b815260206004820152601660248201527f436f6e6669726d6174696f6e7320726571756972656400000000000000000000604482015260640161034c565b815460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009091168117808455600284015460405160009361010090930473ffffffffffffffffffffffffffffffffffffffff16926111e69190870190611b8b565b60006040518083038185875af1925050503d8060008114611223576040519150601f19603f3d011682016040523d82523d6000602084013e611228565b606091505b50509050806112795760405162461bcd60e51b815260206004820152600960248201527f5478206661696c65640000000000000000000000000000000000000000000000604482015260640161034c565b604051339087907fff0d827e815551ef359e2272c2751de1c593cdff65e6e59efab752e10e9ef6d290600090a3505050505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600183016020526040812054908190036112e357505050565b60006112f06001836118a3565b8454909150600090611304906001906118a3565b90508181146113c257600085600001828154811061132457611324611845565b600091825260209091200154865473ffffffffffffffffffffffffffffffffffffffff9091169150819087908590811061136057611360611845565b600091825260208083209190910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff94851617905592909116815260018701909152604090208390555b84548590806113d3576113d3611c1f565b6000828152602080822083017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590920190925573ffffffffffffffffffffffffffffffffffffffff9590951681526001959095019093525050604082209190915550565b600082600001828154811061147757611477611845565b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff169392505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600183016020526040902054156114d1575050565b81546001818101845560008481526020808220909301805473ffffffffffffffffffffffffffffffffffffffff9095167fffffffffffffffffffffffff000000000000000000000000000000000000000090951685179055845493815293019052604090912055565b803573ffffffffffffffffffffffffffffffffffffffff8116811461155e57600080fd5b919050565b60006020828403121561157557600080fd5b61157e8261153a565b9392505050565b60006020828403121561159757600080fd5b5035919050565b6000815180845260005b818110156115c4576020818501810151868301820152016115a8565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6040815282511515604082015273ffffffffffffffffffffffffffffffffffffffff60208401511660608201526000604084015160a0608084015261164a60e084018261159e565b606086015160a085015260809095015160c084015250507fffffffff000000000000000000000000000000000000000000000000000000009190911660209091015290565b60008083601f8401126116a157600080fd5b50813567ffffffffffffffff8111156116b957600080fd5b6020830191508360208285010111156116d157600080fd5b9250929050565b600080602083850312156116eb57600080fd5b823567ffffffffffffffff81111561170257600080fd5b61170e8582860161168f565b90969095509350505050565b6000806040838503121561172d57600080fd5b8235915061173d6020840161153a565b90509250929050565b851515815273ffffffffffffffffffffffffffffffffffffffff8516602082015260a06040820152600061177d60a083018661159e565b606083019490945250608001529392505050565b6020808252825182820181905260009190848201906040850190845b818110156117df57835173ffffffffffffffffffffffffffffffffffffffff16835292840192918401916001016117ad565b50909695505050505050565b6000806000806060858703121561180157600080fd5b61180a8561153a565b935060208501359250604085013567ffffffffffffffff81111561182d57600080fd5b6118398782880161168f565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561061757610617611874565b600181811c908216806118ca57607f821691505b602082108103611903577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8183823760009101908152919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361197957611979611874565b5060010190565b8082018082111561061757610617611874565b601f8211156119dd57600081815260208120601f850160051c810160208610156119ba5750805b601f850160051c820191505b818110156119d9578281556001016119c6565b5050505b505050565b815167ffffffffffffffff8111156119fc576119fc611919565b611a1081611a0a84546118b6565b84611993565b602080601f831160018114611a635760008415611a2d5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556119d9565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015611ab057888601518255948401946001909101908401611a91565b5085821015611aec57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b83815260406020820152816040820152818360608301376000818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b600082611b86577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000808354611b99816118b6565b60018281168015611bb15760018114611be457611c13565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084168752821515830287019450611c13565b8760005260208060002060005b85811015611c0a5781548a820152908401908201611bf1565b50505082870194505b50929695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220fa01a7a59e11d8a7e947688d1cb4705a743a62130f19bfb2d5fc44197d7e77e564736f6c63430008130033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101005760003560e01c806380f59a6511610097578063c01a8c8411610066578063c01a8c841461029d578063c6427474146102b0578063ca6d56dc146102c3578063ee22610b146102d657600080fd5b806380f59a65146102235780639ace38c2146102515780639eab525314610275578063bce73b451461028a57600080fd5b806333ea3dc8116100d357806333ea3dc8146101665780634783c35b146101875780636ad00461146101cc57806380a003ff146101df57600080fd5b80630b1ca49a1461010557806320ea8d861461011a5780632e7700f01461012d5780632f54bf6e14610143575b600080fd5b610118610113366004611563565b6102e9565b005b610118610128366004611585565b6103b4565b6004546040519081526020015b60405180910390f35b610156610151366004611563565b6105ee565b604051901515815260200161013a565b610179610174366004611585565b61061d565b60405161013a929190611602565b6000546101a79073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161013a565b6101186101da366004611563565b610837565b6101f26101ed3660046116d8565b610948565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200161013a565b61015661023136600461171a565b600360209081526000928352604080842090915290825290205460ff1681565b61026461025f366004611585565b61096a565b60405161013a959493929190611746565b61027d610a4e565b60405161013a9190611791565b6101a7610298366004611585565b610b0a565b6101186102ab366004611585565b610b17565b6101186102be3660046117eb565b610d55565b6101186102d1366004611563565b610f51565b6101186102e4366004611585565b610fc3565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103555760405162461bcd60e51b815260206004820152601160248201527f4d756c746973696720726571756972656400000000000000000000000000000060448201526064015b60405180910390fd5b60018054116103a65760405162461bcd60e51b815260206004820152601960248201527f43616e6e6f742072656d6f7665206c617374206d656d62657200000000000000604482015260640161034c565b6103b16001826112ae565b50565b336000908152600260205260409020546104105760405162461bcd60e51b815260206004820152600e60248201527f4f776e6572207265717569726564000000000000000000000000000000000000604482015260640161034c565b600454819081106104635760405162461bcd60e51b815260206004820152600e60248201527f4e6f6e6578697374656e74207478000000000000000000000000000000000000604482015260640161034c565b816004818154811061047757610477611845565b600091825260209091206004909102015460ff16156104d85760405162461bcd60e51b815260206004820152601360248201527f547820616c726561647920657865637574656400000000000000000000000000604482015260640161034c565b6000600484815481106104ed576104ed611845565b600091825260208083208784526003825260408085203386529092529220546004909102909101915060ff166105655760405162461bcd60e51b815260206004820152601560248201527f436f6e6669726d6174696f6e2072657175697265640000000000000000000000604482015260640161034c565b600181600301600082825461057a91906118a3565b9091555050600084815260036020908152604080832033808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551909186917f7f8ce8e4f5a5b480ff78c18404639350996fd63efc83ace55b1d6a3e12158e249190a350505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602052604081205415155b92915050565b6106676040518060a00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160008152602001600081525090565b6000806004848154811061067d5761067d611845565b90600052602060002090600402016001018054610699906118b6565b80601f01602080910402602001604051908101604052809291908181526020018280546106c5906118b6565b80156107125780601f106106e757610100808354040283529160200191610712565b820191906000526020600020905b8154815290600101906020018083116106f557829003601f168201915b50505050509050602081015191506004848154811061073357610733611845565b60009182526020918290206040805160a0810182526004909302909101805460ff81161515845273ffffffffffffffffffffffffffffffffffffffff6101009091041693830193909352600183018054869392859290840191610795906118b6565b80601f01602080910402602001604051908101604052809291908181526020018280546107c1906118b6565b801561080e5780601f106107e35761010080835404028352916020019161080e565b820191906000526020600020905b8154815290600101906020018083116107f157829003601f168201915b505050505081526020016002820154815260200160038201548152505091509250925050915091565b60005473ffffffffffffffffffffffffffffffffffffffff16331461089e5760405162461bcd60e51b815260206004820152601160248201527f4d756c7469736967207265717569726564000000000000000000000000000000604482015260640161034c565b73ffffffffffffffffffffffffffffffffffffffff81166109015760405162461bcd60e51b815260206004820152601f60248201527f4d756c746973696720616464726573732063616e6e6f74206265207a65726f00604482015260640161034c565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000828260405161095a929190611909565b6040518091039020905092915050565b6004818154811061097a57600080fd5b60009182526020909120600490910201805460018201805460ff8316945061010090920473ffffffffffffffffffffffffffffffffffffffff1692916109bf906118b6565b80601f01602080910402602001604051908101604052809291908181526020018280546109eb906118b6565b8015610a385780601f10610a0d57610100808354040283529160200191610a38565b820191906000526020600020905b815481529060010190602001808311610a1b57829003601f168201915b5050505050908060020154908060030154905085565b60606000610a5b60015490565b905060008167ffffffffffffffff811115610a7857610a78611919565b604051908082528060200260200182016040528015610aa1578160200160208202803683370190505b50905060005b82811015610b0357610aba600182611460565b828281518110610acc57610acc611845565b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015280610afb81611948565b915050610aa7565b5092915050565b6000610617600183611460565b33600090815260026020526040902054610b735760405162461bcd60e51b815260206004820152600e60248201527f4f776e6572207265717569726564000000000000000000000000000000000000604482015260640161034c565b60045481908110610bc65760405162461bcd60e51b815260206004820152600e60248201527f4e6f6e6578697374656e74207478000000000000000000000000000000000000604482015260640161034c565b8160048181548110610bda57610bda611845565b600091825260209091206004909102015460ff1615610c3b5760405162461bcd60e51b815260206004820152601360248201527f547820616c726561647920657865637574656400000000000000000000000000604482015260640161034c565b600060048481548110610c5057610c50611845565b600091825260208083208784526003825260408085203386529092529220546004909102909101915060ff1615610cc95760405162461bcd60e51b815260206004820152601160248201527f416c726561647920636f6e6669726d6564000000000000000000000000000000604482015260640161034c565b6001816003016000828254610cde9190611980565b9091555050600084815260036020908152604080832033808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905551909186917fcb0f87c749501e9cd0f274dc3a2c62b91b6a4f2909001c6c13663072b739d3d69190a350505050565b33600090815260026020526040902054610db15760405162461bcd60e51b815260206004820152600e60248201527f4f776e6572207265717569726564000000000000000000000000000000000000604482015260640161034c565b6000600480549050905060046040518060a001604052806000151581526020018773ffffffffffffffffffffffffffffffffffffffff16815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250938552505050602080830189905260409283018290528454600180820187559583529181902084516004909302018054918501517fffffffffffffffffffffff0000000000000000000000000000000000000000009092169215157fffffffffffffffffffffff0000000000000000000000000000000000000000ff169290921761010073ffffffffffffffffffffffffffffffffffffffff90921691909102178155908201519192909190820190610ed890826119e2565b5060608201518160020155608082015181600301555050610ef881610b17565b3373ffffffffffffffffffffffffffffffffffffffff16817ec2937519b07b47ea25f52e915dd99023f9b3e1aaeef041ddecbac3e9400bbe868686604051610f4293929190611afc565b60405180910390a35050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610fb85760405162461bcd60e51b815260206004820152601160248201527f4d756c7469736967207265717569726564000000000000000000000000000000604482015260640161034c565b6103b16001826114a0565b3360009081526002602052604090205461101f5760405162461bcd60e51b815260206004820152600e60248201527f4f776e6572207265717569726564000000000000000000000000000000000000604482015260640161034c565b600454819081106110725760405162461bcd60e51b815260206004820152600e60248201527f4e6f6e6578697374656e74207478000000000000000000000000000000000000604482015260640161034c565b816004818154811061108657611086611845565b600091825260209091206004909102015460ff16156110e75760405162461bcd60e51b815260206004820152601360248201527f547820616c726561647920657865637574656400000000000000000000000000604482015260640161034c565b6000600484815481106110fc576110fc611845565b906000526020600020906004020190506000600261111960015490565b6111239190611b50565b61112e906001611980565b905080826003015410156111845760405162461bcd60e51b815260206004820152601660248201527f436f6e6669726d6174696f6e7320726571756972656400000000000000000000604482015260640161034c565b815460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009091168117808455600284015460405160009361010090930473ffffffffffffffffffffffffffffffffffffffff16926111e69190870190611b8b565b60006040518083038185875af1925050503d8060008114611223576040519150601f19603f3d011682016040523d82523d6000602084013e611228565b606091505b50509050806112795760405162461bcd60e51b815260206004820152600960248201527f5478206661696c65640000000000000000000000000000000000000000000000604482015260640161034c565b604051339087907fff0d827e815551ef359e2272c2751de1c593cdff65e6e59efab752e10e9ef6d290600090a3505050505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600183016020526040812054908190036112e357505050565b60006112f06001836118a3565b8454909150600090611304906001906118a3565b90508181146113c257600085600001828154811061132457611324611845565b600091825260209091200154865473ffffffffffffffffffffffffffffffffffffffff9091169150819087908590811061136057611360611845565b600091825260208083209190910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff94851617905592909116815260018701909152604090208390555b84548590806113d3576113d3611c1f565b6000828152602080822083017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590920190925573ffffffffffffffffffffffffffffffffffffffff9590951681526001959095019093525050604082209190915550565b600082600001828154811061147757611477611845565b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff169392505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600183016020526040902054156114d1575050565b81546001818101845560008481526020808220909301805473ffffffffffffffffffffffffffffffffffffffff9095167fffffffffffffffffffffffff000000000000000000000000000000000000000090951685179055845493815293019052604090912055565b803573ffffffffffffffffffffffffffffffffffffffff8116811461155e57600080fd5b919050565b60006020828403121561157557600080fd5b61157e8261153a565b9392505050565b60006020828403121561159757600080fd5b5035919050565b6000815180845260005b818110156115c4576020818501810151868301820152016115a8565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6040815282511515604082015273ffffffffffffffffffffffffffffffffffffffff60208401511660608201526000604084015160a0608084015261164a60e084018261159e565b606086015160a085015260809095015160c084015250507fffffffff000000000000000000000000000000000000000000000000000000009190911660209091015290565b60008083601f8401126116a157600080fd5b50813567ffffffffffffffff8111156116b957600080fd5b6020830191508360208285010111156116d157600080fd5b9250929050565b600080602083850312156116eb57600080fd5b823567ffffffffffffffff81111561170257600080fd5b61170e8582860161168f565b90969095509350505050565b6000806040838503121561172d57600080fd5b8235915061173d6020840161153a565b90509250929050565b851515815273ffffffffffffffffffffffffffffffffffffffff8516602082015260a06040820152600061177d60a083018661159e565b606083019490945250608001529392505050565b6020808252825182820181905260009190848201906040850190845b818110156117df57835173ffffffffffffffffffffffffffffffffffffffff16835292840192918401916001016117ad565b50909695505050505050565b6000806000806060858703121561180157600080fd5b61180a8561153a565b935060208501359250604085013567ffffffffffffffff81111561182d57600080fd5b6118398782880161168f565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561061757610617611874565b600181811c908216806118ca57607f821691505b602082108103611903577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b8183823760009101908152919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361197957611979611874565b5060010190565b8082018082111561061757610617611874565b601f8211156119dd57600081815260208120601f850160051c810160208610156119ba5750805b601f850160051c820191505b818110156119d9578281556001016119c6565b5050505b505050565b815167ffffffffffffffff8111156119fc576119fc611919565b611a1081611a0a84546118b6565b84611993565b602080601f831160018114611a635760008415611a2d5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556119d9565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015611ab057888601518255948401946001909101908401611a91565b5085821015611aec57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b83815260406020820152816040820152818360608301376000818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b600082611b86577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000808354611b99816118b6565b60018281168015611bb15760018114611be457611c13565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084168752821515830287019450611c13565b8760005260208060002060005b85811015611c0a5781548a820152908401908201611bf1565b50505082870194505b50929695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220fa01a7a59e11d8a7e947688d1cb4705a743a62130f19bfb2d5fc44197d7e77e564736f6c63430008130033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.