Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Latest 25 internal transactions (View All)
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Erc20AssetFactory
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
pragma solidity ^0.8.17; import './Erc20Asset.sol'; import 'contracts/lib/factories/ContractData.sol'; import 'contracts/interfaces/position_trading/IPositionsController.sol'; import 'contracts/position_trading/assets/AssetFactoryBase.sol'; import 'contracts/interfaces/assets/typed/IErc20Asset.sol'; import 'contracts/interfaces/assets/typed/IErc20AssetFactory.sol'; contract Erc20AssetFactory is AssetFactoryBase, IErc20AssetFactory { constructor(address positionsController_) AssetFactoryBase(positionsController_) {} function setAsset( uint256 positionId, uint256 assetCode, address contractAddress ) external { _setAsset(positionId, assetCode, createAsset(contractAddress)); } function createAsset(address contractAddress) internal returns (ContractData memory) { ContractData memory data; data.factory = address(this); data.contractAddr = address( new Erc20Asset(address(positionsController), this, contractAddress) ); return data; } function _clone(address asset, address owner) internal override returns (IAsset) { return new Erc20Asset( owner, this, IErc20Asset(asset).getContractAddress() ); } }
pragma solidity ^0.8.17; import 'contracts/position_trading/assets/AssetBase.sol'; import 'contracts/position_trading/PositionSnapshot.sol'; import 'contracts/interfaces/position_trading/IPositionAlgorithm.sol'; import 'contracts/interfaces/assets/typed/IErc20Asset.sol'; interface IERC20 { function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); } contract Erc20Asset is AssetBase, IErc20Asset { address contractAddress; constructor( address owner_, IAssetCloneFactory factory_, address contractAddress_ ) AssetBase(owner_, factory_) { contractAddress = contractAddress_; } function count() external view override returns (uint256) { return IERC20(contractAddress).balanceOf(address(this)); } function getContractAddress() external view override returns (address) { return contractAddress; } function withdrawInternal(address recipient, uint256 amount) internal virtual override { IERC20(contractAddress).transfer(recipient, amount); } function transferToAsset(uint256 amount, uint256[] calldata data) external { listener().beforeAssetTransfer( address(this), msg.sender, address(this), amount, data ); uint256 lastCount = this.count(); IERC20(contractAddress).transferFrom(msg.sender, address(this), amount); listener().afterAssetTransfer( address(this), msg.sender, address(this), this.count() - lastCount, data ); } function clone(address owner) external override returns (IAsset) { return factory.clone(address(this), owner); } function assetTypeId() external pure override returns (uint256) { return 2; } }
pragma solidity ^0.8.17; /// @dev data is generated by factory of contract struct ContractData { address factory; // factory address contractAddr; // contract }
pragma solidity ^0.8.17; import 'contracts/lib/factories/ContractData.sol'; import 'contracts/fee/IFeeSettings.sol'; interface IPositionsController { /// @dev returns fee settings function getFeeSettings() external view returns(IFeeSettings); /// @dev returns the position owner function ownerOf(uint256 positionId) external view returns (address); /// @dev changes position owner function transferPositionOwnership(uint256 positionId, address newOwner) external; /// @dev returns the position of the asset to its address function getAssetPositionId(address assetAddress) external view returns (uint256); /// @dev returns an asset by its code in position 1 or 2 function getAsset(uint256 positionId, uint256 assetCode) external view returns (ContractData memory); /// @dev creates a position function createPosition() external; /// @dev sets an asset to position /// @param positionId position ID /// @param assetCode asset code 1 - owner asset 2 - output asset /// @param data asset contract data function setAsset( uint256 positionId, uint256 assetCode, ContractData calldata data ) external; /// @dev sets the position algorithm function setAlgorithm(uint256 positionId, ContractData calldata data) external; /// @dev returns the position algorithm function getAlgorithm(uint256 positionId) external view returns (ContractData memory data); /// @dev disables position editing function disableEdit(uint256 positionId) external; /// @dev returns position from the account's list of positions function positionOfOwnerByIndex(address account, uint256 index) external view returns (uint256); /// @dev returns the number of positions the account owns function ownedPositionsCount(address account) external view returns (uint256); }
pragma solidity ^0.8.17; import 'contracts/lib/factories/ContractData.sol'; import 'contracts/interfaces/position_trading/IPositionsController.sol'; import 'contracts/interfaces/assets/IAssetCloneFactory.sol'; abstract contract AssetFactoryBase is IAssetCloneFactory { IPositionsController public positionsController; constructor(address positionsController_) { positionsController = IPositionsController(positionsController_); } modifier onlyPositionOwner(uint256 positionId) { require(positionsController.ownerOf(positionId) == msg.sender); _; } function _setAsset( uint256 positionId, uint256 assetCode, ContractData memory contractData ) internal onlyPositionOwner(positionId) { positionsController.setAsset(positionId, assetCode, contractData); } function clone(address asset, address owner) external override returns (IAsset) { require(msg.sender == asset, 'only for assets'); return _clone(asset, owner); } function _clone(address asset, address owner) internal virtual returns (IAsset); }
pragma solidity ^0.8.17; interface IErc20Asset { function getContractAddress() external returns (address); }
pragma solidity ^0.8.17; interface IErc20AssetFactory { function setAsset( uint256 positionId, uint256 assetCode, address contractAddress ) external; }
pragma solidity ^0.8.17; import 'contracts/interfaces/assets/IAsset.sol'; import 'contracts/interfaces/assets/IAssetListener.sol'; import 'contracts/lib/ownable/OwnableSimple.sol'; import 'contracts/interfaces/assets/IAssetCloneFactory.sol'; /// @dev an asset always has an owner algorithm, asset event listener abstract contract AssetBase is IAsset, OwnableSimple { IAssetCloneFactory public factory; bool internal _isNotifyListener; constructor(address owner_, IAssetCloneFactory factory_) OwnableSimple(owner_) { _owner = address(owner_); factory = factory_; } function listener() internal view returns (IAssetListener) { return IAssetListener(_owner); } function withdraw(address recipient, uint256 amount) external virtual override onlyOwner { uint256[] memory data; if (_isNotifyListener) listener().beforeAssetTransfer( address(this), address(this), recipient, amount, data ); withdrawInternal(recipient, amount); if (_isNotifyListener) listener().afterAssetTransfer( address(this), address(this), recipient, amount, data ); } function withdrawInternal(address recipient, uint256 amount) internal virtual; function isNotifyListener() external view returns (bool) { return _isNotifyListener; } function setNotifyListener(bool value) external onlyOwner { _isNotifyListener = value; } }
pragma solidity ^0.8.17; // todo cut out struct PositionSnapshot { uint256 owner; uint256 output; uint256 slippage; }
pragma solidity ^0.8.17; import 'contracts/interfaces/assets/IAssetListener.sol'; interface IPositionAlgorithm is IAssetListener { /// @dev if true, the algorithm locks position editing function isPositionLocked(uint256 positionId) external view returns (bool); /// @dev transfers ownership of the asset to the specified address function transferAssetOwnerShipTo(address asset, address newOwner) external; }
pragma solidity ^0.8.17; import 'contracts/interfaces/IOwnable.sol'; /// @dev asset abstraction /// the owner of the asset is always the algorithm-observer of the asset interface IAsset is IOwnable { /// @dev asset amount function count() external view returns (uint256); /// @dev withdrawal of a certain amount of asset to a certain address function withdraw(address recipient, uint256 amount) external; /// @dev creates a copy of the current asset, with 0 balance and the specified owner function clone(address owner) external returns (IAsset); /// @dev returns the asset type code (also used to check asset interface support) function assetTypeId() external returns (uint256); /// @dev if true, then notifies its observer (owner) function isNotifyListener() external returns (bool); /// @dev enables or disables the observer notification mechanism function setNotifyListener(bool value) external; }
pragma solidity ^0.8.17; import 'contracts/position_trading/PositionSnapshot.sol'; interface IAssetListener { function beforeAssetTransfer( address asset, address from, address to, uint256 amount, uint256[] memory data ) external; function afterAssetTransfer( address asset, address from, address to, uint256 amount, uint256[] memory data ) external; }
pragma solidity ^0.8.17; import 'contracts/interfaces/IOwnable.sol'; /// @dev owanble, optimized, for dynamically generated contracts contract OwnableSimple is IOwnable { address internal _owner; constructor(address owner_) { _owner = owner_; } modifier onlyOwner() { require(_owner == msg.sender, 'caller is not the owner'); _; } function owner() external virtual override returns (address) { return _owner; } function transferOwnership(address newOwner) external override onlyOwner { _owner = newOwner; } }
pragma solidity ^0.8.17; import 'contracts/interfaces/assets/IAsset.sol'; interface IAssetCloneFactory { /// @dev makes a copy of the asset (the amount of the asset will be 0) function clone(address asset, address owner) external returns (IAsset); }
pragma solidity ^0.8.17; interface IOwnable { function owner() external returns (address); function transferOwnership(address newOwner) external; }
pragma solidity ^0.8.17; interface IFeeSettings { function feeAddress() external returns (address); // address to pay fee function feePercent() external returns (uint256); // fee in 1/decimals for deviding values function feeDecimals() external view returns(uint256); // fee decimals function feeEth() external returns (uint256); // fee value for not dividing deal points }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"positionsController_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"clone","outputs":[{"internalType":"contract IAsset","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"positionsController","outputs":[{"internalType":"contract IPositionsController","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"positionId","type":"uint256"},{"internalType":"uint256","name":"assetCode","type":"uint256"},{"internalType":"address","name":"contractAddress","type":"address"}],"name":"setAsset","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051610f9d380380610f9d83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b610f0a806100936000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632cf0d82814610046578063df46332a14610075578063e4a4e4861461008a575b600080fd5b600054610059906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b610088610083366004610393565b61009d565b005b6100596100983660046103cc565b6100b5565b6100b083836100ab84610116565b6101b1565b505050565b6000336001600160a01b038416146101055760405162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920666f722061737365747360881b604482015260640160405180910390fd5b61010f83836102b6565b9392505050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152308082526000546040516001600160a01b03909116919085906101609061036e565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103906000f08015801561019c573d6000803e3d6000fd5b506001600160a01b0316602082015292915050565b6000546040516331a9108f60e11b815260048101859052849133916001600160a01b0390911690636352211e90602401602060405180830381865afa1580156101fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102229190610405565b6001600160a01b03161461023557600080fd5b600054604051633be9df4d60e01b8152600481018690526024810185905283516001600160a01b03908116604483015260208501518116606483015290911690633be9df4d90608401600060405180830381600087803b15801561029857600080fd5b505af11580156102ac573d6000803e3d6000fd5b5050505050505050565b60008130846001600160a01b03166332a2c5d06040518163ffffffff1660e01b81526004016020604051808303816000875af11580156102fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031e9190610405565b60405161032a9061036e565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103906000f080158015610366573d6000803e3d6000fd5b509392505050565b610ab28061042383390190565b6001600160a01b038116811461039057600080fd5b50565b6000806000606084860312156103a857600080fd5b833592506020840135915060408401356103c18161037b565b809150509250925092565b600080604083850312156103df57600080fd5b82356103ea8161037b565b915060208301356103fa8161037b565b809150509250929050565b60006020828403121561041757600080fd5b815161010f8161037b56fe608060405234801561001057600080fd5b50604051610ab2380380610ab283398101604081905261002f91610089565b600080546001600160a01b039485166001600160a01b0319918216179091556001805493851693821693909317909255600280549190931691161790556100d6565b6001600160a01b038116811461008657600080fd5b50565b60008060006060848603121561009e57600080fd5b83516100a981610071565b60208501519093506100ba81610071565b60408501519092506100cb81610071565b809150509250925092565b6109cd806100e56000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80638da5cb5b116100715780638da5cb5b1461011d5780639d8ae9c41461012e578063c3c782d51461014b578063c45a01551461015e578063f2fde38b14610171578063f3fef3a31461018457600080fd5b806306661abd146100ae5780630b4e99c3146100c957806332a2c5d0146100d057806333f8854c146100f55780638124b78e1461010a575b600080fd5b6100b6610197565b6040519081526020015b60405180910390f35b60026100b6565b6002546001600160a01b03165b6040516001600160a01b0390911681526020016100c0565b610108610103366004610702565b610209565b005b6100dd610118366004610799565b61043b565b6000546001600160a01b03166100dd565b600154600160a01b900460ff1660405190151581526020016100c0565b6101086101593660046107cb565b6104b8565b6001546100dd906001600160a01b031681565b61010861017f366004610799565b610509565b6101086101923660046107e8565b610555565b6002546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156101e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102049190610814565b905090565b600054604051635a7258d160e11b81526001600160a01b039091169063b4e4b1a2906102439030903390829089908990899060040161082d565b600060405180830381600087803b15801561025d57600080fd5b505af1158015610271573d6000803e3d6000fd5b505050506000306001600160a01b03166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d99190610814565b6002546040516323b872dd60e01b8152336004820152306024820152604481018790529192506001600160a01b0316906323b872dd906064016020604051808303816000875af1158015610331573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103559190610891565b506000546001600160a01b03166001600160a01b0316634268660a30333085306001600160a01b03166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d69190610814565b6103e091906108ae565b88886040518763ffffffff1660e01b81526004016104039695949392919061082d565b600060405180830381600087803b15801561041d57600080fd5b505af1158015610431573d6000803e3d6000fd5b5050505050505050565b600154604051637252724360e11b81523060048201526001600160a01b038381166024830152600092169063e4a4e486906044016020604051808303816000875af115801561048e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b291906108cf565b92915050565b6000546001600160a01b031633146104eb5760405162461bcd60e51b81526004016104e2906108ec565b60405180910390fd5b60018054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146105335760405162461bcd60e51b81526004016104e2906108ec565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461057f5760405162461bcd60e51b81526004016104e2906108ec565b600154606090600160a01b900460ff16156105ff57600054604051635a7258d160e11b81526001600160a01b039091169063b4e4b1a2906105cc9030908190889088908890600401610923565b600060405180830381600087803b1580156105e657600080fd5b505af11580156105fa573d6000803e3d6000fd5b505050505b610609838361068b565b600154600160a01b900460ff161561068657600054604051632134330560e11b81526001600160a01b0390911690634268660a906106539030908190889088908890600401610923565b600060405180830381600087803b15801561066d57600080fd5b505af1158015610681573d6000803e3d6000fd5b505050505b505050565b60025460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af11580156106de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106869190610891565b60008060006040848603121561071757600080fd5b83359250602084013567ffffffffffffffff8082111561073657600080fd5b818601915086601f83011261074a57600080fd5b81358181111561075957600080fd5b8760208260051b850101111561076e57600080fd5b6020830194508093505050509250925092565b6001600160a01b038116811461079657600080fd5b50565b6000602082840312156107ab57600080fd5b81356107b681610781565b9392505050565b801515811461079657600080fd5b6000602082840312156107dd57600080fd5b81356107b6816107bd565b600080604083850312156107fb57600080fd5b823561080681610781565b946020939093013593505050565b60006020828403121561082657600080fd5b5051919050565b6001600160a01b0387811682528681166020830152851660408201526060810184905260a060808201819052810182905260006001600160fb1b0383111561087457600080fd5b8260051b808560c08501379190910160c001979650505050505050565b6000602082840312156108a357600080fd5b81516107b6816107bd565b818103818111156104b257634e487b7160e01b600052601160045260246000fd5b6000602082840312156108e157600080fd5b81516107b681610781565b60208082526017908201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604082015260600190565b6001600160a01b03868116825285811660208084019190915290851660408301526060820184905260a06080830181905283519083018190526000918481019160c085019190845b818110156109875784518452938201939282019260010161096b565b50919a995050505050505050505056fea2646970667358221220eb54ac4856b27039439a3d1eb96ebd6dd415fd1ef2d42ec93e5e83bb2682e19864736f6c63430008110033a26469706673582212206bc42a89fa978846dac42c7151062656a5472cc3b578b2678c0807b1b68e50bb64736f6c63430008110033000000000000000000000000272671cb3b18507e1850381e1624606b9de0bf9e
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100415760003560e01c80632cf0d82814610046578063df46332a14610075578063e4a4e4861461008a575b600080fd5b600054610059906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b610088610083366004610393565b61009d565b005b6100596100983660046103cc565b6100b5565b6100b083836100ab84610116565b6101b1565b505050565b6000336001600160a01b038416146101055760405162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920666f722061737365747360881b604482015260640160405180910390fd5b61010f83836102b6565b9392505050565b60408051808201909152600080825260208201526040805180820190915260008082526020820152308082526000546040516001600160a01b03909116919085906101609061036e565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103906000f08015801561019c573d6000803e3d6000fd5b506001600160a01b0316602082015292915050565b6000546040516331a9108f60e11b815260048101859052849133916001600160a01b0390911690636352211e90602401602060405180830381865afa1580156101fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102229190610405565b6001600160a01b03161461023557600080fd5b600054604051633be9df4d60e01b8152600481018690526024810185905283516001600160a01b03908116604483015260208501518116606483015290911690633be9df4d90608401600060405180830381600087803b15801561029857600080fd5b505af11580156102ac573d6000803e3d6000fd5b5050505050505050565b60008130846001600160a01b03166332a2c5d06040518163ffffffff1660e01b81526004016020604051808303816000875af11580156102fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031e9190610405565b60405161032a9061036e565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103906000f080158015610366573d6000803e3d6000fd5b509392505050565b610ab28061042383390190565b6001600160a01b038116811461039057600080fd5b50565b6000806000606084860312156103a857600080fd5b833592506020840135915060408401356103c18161037b565b809150509250925092565b600080604083850312156103df57600080fd5b82356103ea8161037b565b915060208301356103fa8161037b565b809150509250929050565b60006020828403121561041757600080fd5b815161010f8161037b56fe608060405234801561001057600080fd5b50604051610ab2380380610ab283398101604081905261002f91610089565b600080546001600160a01b039485166001600160a01b0319918216179091556001805493851693821693909317909255600280549190931691161790556100d6565b6001600160a01b038116811461008657600080fd5b50565b60008060006060848603121561009e57600080fd5b83516100a981610071565b60208501519093506100ba81610071565b60408501519092506100cb81610071565b809150509250925092565b6109cd806100e56000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80638da5cb5b116100715780638da5cb5b1461011d5780639d8ae9c41461012e578063c3c782d51461014b578063c45a01551461015e578063f2fde38b14610171578063f3fef3a31461018457600080fd5b806306661abd146100ae5780630b4e99c3146100c957806332a2c5d0146100d057806333f8854c146100f55780638124b78e1461010a575b600080fd5b6100b6610197565b6040519081526020015b60405180910390f35b60026100b6565b6002546001600160a01b03165b6040516001600160a01b0390911681526020016100c0565b610108610103366004610702565b610209565b005b6100dd610118366004610799565b61043b565b6000546001600160a01b03166100dd565b600154600160a01b900460ff1660405190151581526020016100c0565b6101086101593660046107cb565b6104b8565b6001546100dd906001600160a01b031681565b61010861017f366004610799565b610509565b6101086101923660046107e8565b610555565b6002546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156101e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102049190610814565b905090565b600054604051635a7258d160e11b81526001600160a01b039091169063b4e4b1a2906102439030903390829089908990899060040161082d565b600060405180830381600087803b15801561025d57600080fd5b505af1158015610271573d6000803e3d6000fd5b505050506000306001600160a01b03166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d99190610814565b6002546040516323b872dd60e01b8152336004820152306024820152604481018790529192506001600160a01b0316906323b872dd906064016020604051808303816000875af1158015610331573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103559190610891565b506000546001600160a01b03166001600160a01b0316634268660a30333085306001600160a01b03166306661abd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d69190610814565b6103e091906108ae565b88886040518763ffffffff1660e01b81526004016104039695949392919061082d565b600060405180830381600087803b15801561041d57600080fd5b505af1158015610431573d6000803e3d6000fd5b5050505050505050565b600154604051637252724360e11b81523060048201526001600160a01b038381166024830152600092169063e4a4e486906044016020604051808303816000875af115801561048e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b291906108cf565b92915050565b6000546001600160a01b031633146104eb5760405162461bcd60e51b81526004016104e2906108ec565b60405180910390fd5b60018054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146105335760405162461bcd60e51b81526004016104e2906108ec565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461057f5760405162461bcd60e51b81526004016104e2906108ec565b600154606090600160a01b900460ff16156105ff57600054604051635a7258d160e11b81526001600160a01b039091169063b4e4b1a2906105cc9030908190889088908890600401610923565b600060405180830381600087803b1580156105e657600080fd5b505af11580156105fa573d6000803e3d6000fd5b505050505b610609838361068b565b600154600160a01b900460ff161561068657600054604051632134330560e11b81526001600160a01b0390911690634268660a906106539030908190889088908890600401610923565b600060405180830381600087803b15801561066d57600080fd5b505af1158015610681573d6000803e3d6000fd5b505050505b505050565b60025460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af11580156106de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106869190610891565b60008060006040848603121561071757600080fd5b83359250602084013567ffffffffffffffff8082111561073657600080fd5b818601915086601f83011261074a57600080fd5b81358181111561075957600080fd5b8760208260051b850101111561076e57600080fd5b6020830194508093505050509250925092565b6001600160a01b038116811461079657600080fd5b50565b6000602082840312156107ab57600080fd5b81356107b681610781565b9392505050565b801515811461079657600080fd5b6000602082840312156107dd57600080fd5b81356107b6816107bd565b600080604083850312156107fb57600080fd5b823561080681610781565b946020939093013593505050565b60006020828403121561082657600080fd5b5051919050565b6001600160a01b0387811682528681166020830152851660408201526060810184905260a060808201819052810182905260006001600160fb1b0383111561087457600080fd5b8260051b808560c08501379190910160c001979650505050505050565b6000602082840312156108a357600080fd5b81516107b6816107bd565b818103818111156104b257634e487b7160e01b600052601160045260246000fd5b6000602082840312156108e157600080fd5b81516107b681610781565b60208082526017908201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604082015260600190565b6001600160a01b03868116825285811660208084019190915290851660408301526060820184905260a06080830181905283519083018190526000918481019160c085019190845b818110156109875784518452938201939282019260010161096b565b50919a995050505050505050505056fea2646970667358221220eb54ac4856b27039439a3d1eb96ebd6dd415fd1ef2d42ec93e5e83bb2682e19864736f6c63430008110033a26469706673582212206bc42a89fa978846dac42c7151062656a5472cc3b578b2678c0807b1b68e50bb64736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000272671cb3b18507e1850381e1624606b9de0bf9e
-----Decoded View---------------
Arg [0] : positionsController_ (address): 0x272671CB3b18507E1850381e1624606b9de0Bf9e
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000272671cb3b18507e1850381e1624606b9de0bf9e
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
BSC | 100.00% | $682.31 | 0.9758 | $665.81 |
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.