Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Factory Stat... | 20633465 | 168 days ago | IN | 0 ETH | 0.00004816 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
UsersDeTrustMultisigRegistry
Compiler Version
v0.8.26+commit.8a97fa7a
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT // Users DeTrust Registry for UBD Network pragma solidity 0.8.26; import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; import "./interfaces/IUsersDeTrustRegistry.sol"; /** * @dev This is deTrust registry for created deTrusts Multisigs. */ contract UsersDeTrustMultisigRegistry is IUsersDeTrustRegistry, Ownable { struct TrustInfo { string name; } mapping(address => address[]) public trustOfCreators; mapping(address => address[]) public trustOfInheritors; mapping(address => bool) public isDeTrustFactory; mapping(address => TrustInfo) public trustInfo; constructor() Ownable(msg.sender) { } /** * @dev Register new trust. Must be called only from authorized factory contracts * @param _trust addreess of creating trust * @param _inheritors addersses array. Creator must pass as first(0) element */ function registerTrust( address _trust, address[] memory _inheritors, string memory _name ) external returns (bool _ok) { require(isDeTrustFactory[msg.sender], "NonAuthorized factory"); trustOfCreators[_inheritors[0]].push(_trust); for (uint256 i = 0; i < _inheritors.length; ++ i) { trustOfInheritors[_inheritors[i]].push(_trust); } trustInfo[_trust] = TrustInfo(_name); _ok = true; } ///////////////////////// /// Admin functions /// ///////////////////////// /** * @dev Enable/disable factory contracts * @param _factory addreess of factory * @param _enabled subj */ function setFactoryState(address _factory, bool _enabled) external onlyOwner { isDeTrustFactory[_factory] = _enabled; } ////////////////////////////////////////////////////// /** * @dev Returns deTrusts addresses array off given creator * @param _creator address of DeTrus owner. */ function getCreatorTrusts(address _creator) external view returns(address[] memory trusts) { trusts = trustOfCreators[_creator]; } /** * @dev Returns deTrusts addresses array off given inheritor * @param _inheritor address of inheritor. */ function getInheritorTrusts(address _inheritor) external view returns(address[] memory trusts) { //bytes32 _inheritorHash = keccak256(abi.encode(_inheritor)); trusts = trustOfInheritors[_inheritor]; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol) pragma solidity ^0.8.20; import {Context} from "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * The initial owner is set to the address provided by the deployer. This can * later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; /** * @dev The caller account is not authorized to perform an operation. */ error OwnableUnauthorizedAccount(address account); /** * @dev The owner is not a valid owner account. (eg. `address(0)`) */ error OwnableInvalidOwner(address owner); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the address provided by the deployer as the initial owner. */ constructor(address initialOwner) { if (initialOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(initialOwner); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { if (owner() != _msgSender()) { revert OwnableUnauthorizedAccount(_msgSender()); } } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { if (newOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // UBD Network pragma solidity 0.8.26; /** * @dev Interface of the DeTrustMultisigModelRegistry. */ interface IUsersDeTrustRegistry { /** * @dev Returns `true` if after trust registered or revert with reason */ function registerTrust( address _trust, address[] memory _inheritors, string memory _name ) external returns (bool _ok); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol) pragma solidity ^0.8.20; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } function _contextSuffixLength() internal view virtual returns (uint256) { return 0; } }
{ "remappings": [ "@Uopenzeppelin/=lib/openzeppelin-contracts-upgradeable.git/", "@openzeppelin/=lib/openzeppelin-contracts/", "@uniswap/=lib/", "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable.git/contracts/", "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", "ds-test/=lib/openzeppelin-contracts-upgradeable.git/lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts-upgradeable.git/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts-upgradeable.git/=lib/openzeppelin-contracts-upgradeable.git/", "openzeppelin-contracts/=lib/openzeppelin-contracts/" ], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "paris", "viaIR": false, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"_creator","type":"address"}],"name":"getCreatorTrusts","outputs":[{"internalType":"address[]","name":"trusts","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_inheritor","type":"address"}],"name":"getInheritorTrusts","outputs":[{"internalType":"address[]","name":"trusts","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDeTrustFactory","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_trust","type":"address"},{"internalType":"address[]","name":"_inheritors","type":"address[]"},{"internalType":"string","name":"_name","type":"string"}],"name":"registerTrust","outputs":[{"internalType":"bool","name":"_ok","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_factory","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setFactoryState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"trustInfo","outputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"trustOfCreators","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"trustOfInheritors","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6080604052348015600f57600080fd5b503380603557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b603c816041565b506091565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610aa2806100a06000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80638f8f2c6b116100715780638f8f2c6b1461014c57806399397d771461015f578063aa5cbc9314610172578063e32f212314610192578063f2fde38b146101a5578063f99014d8146101b857600080fd5b806316cddef2146100ae5780631fe621df146100d75780633bdfc17a146100ec578063715018a61461011f5780638da5cb5b14610127575b600080fd5b6100c16100bc366004610644565b6101cb565b6040516100ce9190610666565b60405180910390f35b6100ea6100e53660046106b2565b610241565b005b61010f6100fa366004610644565b60036020526000908152604090205460ff1681565b60405190151581526020016100ce565b6100ea610274565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016100ce565b61013461015a3660046106ee565b610288565b6100c161016d366004610644565b6102c0565b610185610180366004610644565b610334565b6040516100ce9190610718565b61010f6101a036600461081d565b6103d2565b6100ea6101b3366004610644565b610551565b6101346101c63660046106ee565b61058f565b6001600160a01b03811660009081526002602090815260409182902080548351818402810184019094528084526060939283018282801561023557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610217575b50505050509050919050565b6102496105ab565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b61027c6105ab565b61028660006105d8565b565b600260205281600052604060002081815481106102a457600080fd5b6000918252602090912001546001600160a01b03169150829050565b6001600160a01b038116600090815260016020908152604091829020805483518184028101840190945280845260609392830182828015610235576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116102175750505050509050919050565b60046020526000908152604090208054819061034f9061090e565b80601f016020809104026020016040519081016040528092919081815260200182805461037b9061090e565b80156103c85780601f1061039d576101008083540402835291602001916103c8565b820191906000526020600020905b8154815290600101906020018083116103ab57829003601f168201915b5050505050905081565b3360009081526003602052604081205460ff1661042e5760405162461bcd60e51b81526020600482015260156024820152744e6f6e417574686f72697a656420666163746f727960581b60448201526064015b60405180910390fd5b600160008460008151811061044557610445610948565b6020908102919091018101516001600160a01b0390811683528282019390935260409091016000908120805460018101825590825291812090910180546001600160a01b031916928716929092179091555b835181101561050f57600260008583815181106104b6576104b6610948565b6020908102919091018101516001600160a01b03908116835282820193909352604090910160009081208054600180820183559183529290912090910180546001600160a01b0319169288169290921790915501610497565b5060408051602080820183528482526001600160a01b03871660009081526004909152919091208151819061054490826109ad565b5060019695505050505050565b6105596105ab565b6001600160a01b03811661058357604051631e4fbdf760e01b815260006004820152602401610425565b61058c816105d8565b50565b600160205281600052604060002081815481106102a457600080fd5b6000546001600160a01b031633146102865760405163118cdaa760e01b8152336004820152602401610425565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461063f57600080fd5b919050565b60006020828403121561065657600080fd5b61065f82610628565b9392505050565b602080825282518282018190526000918401906040840190835b818110156106a75783516001600160a01b0316835260209384019390920191600101610680565b509095945050505050565b600080604083850312156106c557600080fd5b6106ce83610628565b9150602083013580151581146106e357600080fd5b809150509250929050565b6000806040838503121561070157600080fd5b61070a83610628565b946020939093013593505050565b602081526000825180602084015260005b818110156107465760208186018101516040868401015201610729565b506000604082850101526040601f19601f83011684010191505092915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156107a5576107a5610766565b604052919050565b600082601f8301126107be57600080fd5b813567ffffffffffffffff8111156107d8576107d8610766565b6107eb601f8201601f191660200161077c565b81815284602083860101111561080057600080fd5b816020850160208301376000918101602001919091529392505050565b60008060006060848603121561083257600080fd5b61083b84610628565b9250602084013567ffffffffffffffff81111561085757600080fd5b8401601f8101861361086857600080fd5b803567ffffffffffffffff81111561088257610882610766565b8060051b6108926020820161077c565b918252602081840181019290810190898411156108ae57600080fd5b6020850194505b838510156108d7576108c685610628565b8252602094850194909101906108b5565b95505050506040850135905067ffffffffffffffff8111156108f857600080fd5b610904868287016107ad565b9150509250925092565b600181811c9082168061092257607f821691505b60208210810361094257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b601f8211156109a857806000526020600020601f840160051c810160208510156109855750805b601f840160051c820191505b818110156109a55760008155600101610991565b50505b505050565b815167ffffffffffffffff8111156109c7576109c7610766565b6109db816109d5845461090e565b8461095e565b6020601f821160018114610a0f57600083156109f75750848201515b600019600385901b1c1916600184901b1784556109a5565b600084815260208120601f198516915b82811015610a3f5787850151825560209485019460019092019101610a1f565b5084821015610a5d5786840151600019600387901b60f8161c191681555b50505050600190811b0190555056fea26469706673582212204bb2960205832b4380de92db9f9e91887be67e7a1ca115af002d1536789a4f5b64736f6c634300081a0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80638f8f2c6b116100715780638f8f2c6b1461014c57806399397d771461015f578063aa5cbc9314610172578063e32f212314610192578063f2fde38b146101a5578063f99014d8146101b857600080fd5b806316cddef2146100ae5780631fe621df146100d75780633bdfc17a146100ec578063715018a61461011f5780638da5cb5b14610127575b600080fd5b6100c16100bc366004610644565b6101cb565b6040516100ce9190610666565b60405180910390f35b6100ea6100e53660046106b2565b610241565b005b61010f6100fa366004610644565b60036020526000908152604090205460ff1681565b60405190151581526020016100ce565b6100ea610274565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016100ce565b61013461015a3660046106ee565b610288565b6100c161016d366004610644565b6102c0565b610185610180366004610644565b610334565b6040516100ce9190610718565b61010f6101a036600461081d565b6103d2565b6100ea6101b3366004610644565b610551565b6101346101c63660046106ee565b61058f565b6001600160a01b03811660009081526002602090815260409182902080548351818402810184019094528084526060939283018282801561023557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610217575b50505050509050919050565b6102496105ab565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b61027c6105ab565b61028660006105d8565b565b600260205281600052604060002081815481106102a457600080fd5b6000918252602090912001546001600160a01b03169150829050565b6001600160a01b038116600090815260016020908152604091829020805483518184028101840190945280845260609392830182828015610235576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116102175750505050509050919050565b60046020526000908152604090208054819061034f9061090e565b80601f016020809104026020016040519081016040528092919081815260200182805461037b9061090e565b80156103c85780601f1061039d576101008083540402835291602001916103c8565b820191906000526020600020905b8154815290600101906020018083116103ab57829003601f168201915b5050505050905081565b3360009081526003602052604081205460ff1661042e5760405162461bcd60e51b81526020600482015260156024820152744e6f6e417574686f72697a656420666163746f727960581b60448201526064015b60405180910390fd5b600160008460008151811061044557610445610948565b6020908102919091018101516001600160a01b0390811683528282019390935260409091016000908120805460018101825590825291812090910180546001600160a01b031916928716929092179091555b835181101561050f57600260008583815181106104b6576104b6610948565b6020908102919091018101516001600160a01b03908116835282820193909352604090910160009081208054600180820183559183529290912090910180546001600160a01b0319169288169290921790915501610497565b5060408051602080820183528482526001600160a01b03871660009081526004909152919091208151819061054490826109ad565b5060019695505050505050565b6105596105ab565b6001600160a01b03811661058357604051631e4fbdf760e01b815260006004820152602401610425565b61058c816105d8565b50565b600160205281600052604060002081815481106102a457600080fd5b6000546001600160a01b031633146102865760405163118cdaa760e01b8152336004820152602401610425565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461063f57600080fd5b919050565b60006020828403121561065657600080fd5b61065f82610628565b9392505050565b602080825282518282018190526000918401906040840190835b818110156106a75783516001600160a01b0316835260209384019390920191600101610680565b509095945050505050565b600080604083850312156106c557600080fd5b6106ce83610628565b9150602083013580151581146106e357600080fd5b809150509250929050565b6000806040838503121561070157600080fd5b61070a83610628565b946020939093013593505050565b602081526000825180602084015260005b818110156107465760208186018101516040868401015201610729565b506000604082850101526040601f19601f83011684010191505092915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156107a5576107a5610766565b604052919050565b600082601f8301126107be57600080fd5b813567ffffffffffffffff8111156107d8576107d8610766565b6107eb601f8201601f191660200161077c565b81815284602083860101111561080057600080fd5b816020850160208301376000918101602001919091529392505050565b60008060006060848603121561083257600080fd5b61083b84610628565b9250602084013567ffffffffffffffff81111561085757600080fd5b8401601f8101861361086857600080fd5b803567ffffffffffffffff81111561088257610882610766565b8060051b6108926020820161077c565b918252602081840181019290810190898411156108ae57600080fd5b6020850194505b838510156108d7576108c685610628565b8252602094850194909101906108b5565b95505050506040850135905067ffffffffffffffff8111156108f857600080fd5b610904868287016107ad565b9150509250925092565b600181811c9082168061092257607f821691505b60208210810361094257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b601f8211156109a857806000526020600020601f840160051c810160208510156109855750805b601f840160051c820191505b818110156109a55760008155600101610991565b50505b505050565b815167ffffffffffffffff8111156109c7576109c7610766565b6109db816109d5845461090e565b8461095e565b6020601f821160018114610a0f57600083156109f75750848201515b600019600385901b1c1916600184901b1784556109a5565b600084815260208120601f198516915b82811015610a3f5787850151825560209485019460019092019101610a1f565b5084821015610a5d5786840151600019600387901b60f8161c191681555b50505050600190811b0190555056fea26469706673582212204bb2960205832b4380de92db9f9e91887be67e7a1ca115af002d1536789a4f5b64736f6c634300081a0033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.