Source Code
Latest 25 from a total of 1,813 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer All Tra... | 40761863 | 14 hrs ago | IN | 0 ETH | 0.00000298 | ||||
| Transfer All Tra... | 40714470 | 40 hrs ago | IN | 0 ETH | 0.00000105 | ||||
| Transfer All Tra... | 40330679 | 10 days ago | IN | 0 ETH | 0.00000149 | ||||
| Transfer All Tra... | 40330601 | 10 days ago | IN | 0 ETH | 0.00000147 | ||||
| Transfer All Tra... | 40240202 | 12 days ago | IN | 0 ETH | 0.00000031 | ||||
| Transfer All Tra... | 40240176 | 12 days ago | IN | 0 ETH | 0.00000028 | ||||
| Transfer All Tra... | 40240145 | 12 days ago | IN | 0 ETH | 0.00000027 | ||||
| Transfer All Tra... | 40240109 | 12 days ago | IN | 0 ETH | 0.00000487 | ||||
| Transfer All Tra... | 40240061 | 12 days ago | IN | 0 ETH | 0.00000027 | ||||
| Transfer All Tra... | 40109776 | 15 days ago | IN | 0 ETH | 0.00000149 | ||||
| Transfer All Tra... | 40109754 | 15 days ago | IN | 0 ETH | 0.00000015 | ||||
| Transfer All Tra... | 40109732 | 15 days ago | IN | 0 ETH | 0.00000103 | ||||
| Transfer All Tra... | 40109666 | 15 days ago | IN | 0 ETH | 0.00000112 | ||||
| Transfer All Tra... | 40109627 | 15 days ago | IN | 0 ETH | 0.00000159 | ||||
| Transfer All Tra... | 40109599 | 15 days ago | IN | 0 ETH | 0.00000155 | ||||
| Transfer All Tra... | 40109563 | 15 days ago | IN | 0 ETH | 0.00000157 | ||||
| Transfer All Tra... | 39509531 | 29 days ago | IN | 0 ETH | 0.00000286 | ||||
| Transfer All Tra... | 39509504 | 29 days ago | IN | 0 ETH | 0.00000502 | ||||
| Transfer All Tra... | 39509477 | 29 days ago | IN | 0 ETH | 0.00000393 | ||||
| Transfer All Tra... | 39509459 | 29 days ago | IN | 0 ETH | 0.00000371 | ||||
| Transfer All Tra... | 39117967 | 38 days ago | IN | 0 ETH | 0.00000164 | ||||
| Transfer All Tra... | 39117786 | 38 days ago | IN | 0 ETH | 0.0000008 | ||||
| Transfer All Tra... | 39001877 | 41 days ago | IN | 0 ETH | 0.00000079 | ||||
| Transfer All Tra... | 38998761 | 41 days ago | IN | 0 ETH | 0.00000072 | ||||
| Transfer All Tra... | 38996173 | 41 days ago | IN | 0 ETH | 0.00000058 |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
BulkTraitTransfer
Compiler Version
v0.8.22+commit.4fc1097e
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.22;
interface IChonksMain {
function ownerOf(uint256 tokenId) external view returns (address);
function tokenIdToTBAAccountAddress(uint256 tokenId) external view returns (address);
}
interface IChonkTraits {
function transferFrom(address from, address to, uint256 tokenId) external;
function walletOfOwner(address owner) external view returns (uint256[] memory);
}
/**
* @title BulkTraitTransfer
* @notice A utility contract to transfer all traits from one Chonk to another
*/
contract BulkTraitTransfer {
IChonksMain public immutable chonksMain = IChonksMain(0x07152bfde079b5319e5308C43fB1Dbc9C76cb4F9);
IChonkTraits public immutable traitsContract;
/// Error
error NotChonkOwner();
/// Constructor
constructor(address _traitsContract) {
traitsContract = IChonkTraits(_traitsContract);
}
/**
* @notice Transfers all traits from the source Chonk to the destination Chonk
* @param _sourceChonkId The ID of the source Chonk
* @param _destinationChonkId The ID of the destination Chonk
*/
function transferAllTraits(uint256 _sourceChonkId, uint256 _destinationChonkId) external {
(address sourceTBA, address destinationTBA) = _getTBAs(_sourceChonkId, _destinationChonkId);
uint256[] memory traitIds = traitsContract.walletOfOwner(sourceTBA);
for (uint256 i; i < traitIds.length; ++i)
traitsContract.transferFrom(sourceTBA, destinationTBA, traitIds[i]);
}
/**
* @notice Transfers specific traits from the source Chonk to the destination Chonk
* @param _sourceChonkId The ID of the source Chonk
* @param _destinationChonkId The ID of the destination Chonk
* @param _traitIds Array of trait IDs to transfer
*/
function transferSelectedTraits(
uint256 _sourceChonkId,
uint256 _destinationChonkId,
uint256[] calldata _traitIds
) external {
(address sourceTBA, address destinationTBA) = _getTBAs(_sourceChonkId, _destinationChonkId);
for (uint256 i; i < _traitIds.length; ++i)
traitsContract.transferFrom(sourceTBA, destinationTBA, _traitIds[i]);
}
/// Internal
function _getTBAs(
uint256 _sourceChonkId,
uint256 _destinationChonkId
) internal view returns (address sourceTBA, address destinationTBA) {
if (chonksMain.ownerOf(_sourceChonkId) != msg.sender) revert NotChonkOwner();
sourceTBA = chonksMain.tokenIdToTBAAccountAddress(_sourceChonkId);
destinationTBA = chonksMain.tokenIdToTBAAccountAddress(_destinationChonkId);
}
}{
"remappings": [
"ds-test/=lib/forge-std/lib/ds-test/src/",
"forge-std/=lib/forge-std/src/",
"@openzeppelin/=lib/openzeppelin-contracts/",
"solady/=lib/solady/src/",
"openzeppelin-contracts/=lib/openzeppelin-contracts/",
"scripty/=lib/scripty/"
],
"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
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_traitsContract","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"NotChonkOwner","type":"error"},{"inputs":[],"name":"chonksMain","outputs":[{"internalType":"contract IChonksMain","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"traitsContract","outputs":[{"internalType":"contract IChonkTraits","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sourceChonkId","type":"uint256"},{"internalType":"uint256","name":"_destinationChonkId","type":"uint256"}],"name":"transferAllTraits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sourceChonkId","type":"uint256"},{"internalType":"uint256","name":"_destinationChonkId","type":"uint256"},{"internalType":"uint256[]","name":"_traitIds","type":"uint256[]"}],"name":"transferSelectedTraits","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60c06040527307152bfde079b5319e5308c43fb1dbc9c76cb4f960805234801561002857600080fd5b506040516107dd3803806107dd83398101604081905261004791610058565b6001600160a01b031660a052610088565b60006020828403121561006a57600080fd5b81516001600160a01b038116811461008157600080fd5b9392505050565b60805160a0516107086100d56000396000818160990152818161011701528181610196015261027a0152600081816056015281816103630152818161040b015261049701526107086000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063ba7270f314610051578063c093afdb14610094578063d2cf5199146100bb578063ed92e00a146100d0575b600080fd5b6100787f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b6100787f000000000000000000000000000000000000000000000000000000000000000081565b6100ce6100c9366004610513565b6100e3565b005b6100ce6100de366004610535565b61025c565b6000806100f0848461033e565b60405162438b6360e81b81526001600160a01b0380841660048301529294509092506000917f0000000000000000000000000000000000000000000000000000000000000000169063438b630090602401600060405180830381865afa15801561015e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261018691908101906105ce565b905060005b8151811015610254577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd85858585815181106101d7576101d761068c565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561023157600080fd5b505af1158015610245573d6000803e3d6000fd5b5050505080600101905061018b565b505050505050565b600080610269868661033e565b9150915060005b83811015610335577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166323b872dd84848888868181106102bb576102bb61068c565b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015250602090910201356044820152606401600060405180830381600087803b15801561031257600080fd5b505af1158015610326573d6000803e3d6000fd5b50505050806001019050610270565b50505050505050565b6040516331a9108f60e11b815260048101839052600090819033906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa1580156103aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ce91906106a2565b6001600160a01b0316146103f55760405163abc45a5d60e01b815260040160405180910390fd5b604051639c05d68d60e01b8152600481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690639c05d68d90602401602060405180830381865afa15801561045a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047e91906106a2565b604051639c05d68d60e01b8152600481018590529092507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690639c05d68d90602401602060405180830381865afa1580156104e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050a91906106a2565b90509250929050565b6000806040838503121561052657600080fd5b50508035926020909101359150565b6000806000806060858703121561054b57600080fd5b8435935060208501359250604085013567ffffffffffffffff8082111561057157600080fd5b818701915087601f83011261058557600080fd5b81358181111561059457600080fd5b8860208260051b85010111156105a957600080fd5b95989497505060200194505050565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156105e157600080fd5b825167ffffffffffffffff808211156105f957600080fd5b818501915085601f83011261060d57600080fd5b81518181111561061f5761061f6105b8565b8060051b604051601f19603f83011681018181108582111715610644576106446105b8565b60405291825284820192508381018501918883111561066257600080fd5b938501935b8285101561068057845184529385019392850192610667565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156106b457600080fd5b81516001600160a01b03811681146106cb57600080fd5b939250505056fea2646970667358221220679d16b3fb77676ccb87580533958a1136132c3997065192435f0c99f2acf76264736f6c6343000816003300000000000000000000000074d8725a65c21251a83f6647aa23140bd80504b1
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061004c5760003560e01c8063ba7270f314610051578063c093afdb14610094578063d2cf5199146100bb578063ed92e00a146100d0575b600080fd5b6100787f00000000000000000000000007152bfde079b5319e5308c43fb1dbc9c76cb4f981565b6040516001600160a01b03909116815260200160405180910390f35b6100787f00000000000000000000000074d8725a65c21251a83f6647aa23140bd80504b181565b6100ce6100c9366004610513565b6100e3565b005b6100ce6100de366004610535565b61025c565b6000806100f0848461033e565b60405162438b6360e81b81526001600160a01b0380841660048301529294509092506000917f00000000000000000000000074d8725a65c21251a83f6647aa23140bd80504b1169063438b630090602401600060405180830381865afa15801561015e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261018691908101906105ce565b905060005b8151811015610254577f00000000000000000000000074d8725a65c21251a83f6647aa23140bd80504b16001600160a01b03166323b872dd85858585815181106101d7576101d761068c565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561023157600080fd5b505af1158015610245573d6000803e3d6000fd5b5050505080600101905061018b565b505050505050565b600080610269868661033e565b9150915060005b83811015610335577f00000000000000000000000074d8725a65c21251a83f6647aa23140bd80504b16001600160a01b03166323b872dd84848888868181106102bb576102bb61068c565b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015250602090910201356044820152606401600060405180830381600087803b15801561031257600080fd5b505af1158015610326573d6000803e3d6000fd5b50505050806001019050610270565b50505050505050565b6040516331a9108f60e11b815260048101839052600090819033906001600160a01b037f00000000000000000000000007152bfde079b5319e5308c43fb1dbc9c76cb4f91690636352211e90602401602060405180830381865afa1580156103aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ce91906106a2565b6001600160a01b0316146103f55760405163abc45a5d60e01b815260040160405180910390fd5b604051639c05d68d60e01b8152600481018590527f00000000000000000000000007152bfde079b5319e5308c43fb1dbc9c76cb4f96001600160a01b031690639c05d68d90602401602060405180830381865afa15801561045a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047e91906106a2565b604051639c05d68d60e01b8152600481018590529092507f00000000000000000000000007152bfde079b5319e5308c43fb1dbc9c76cb4f96001600160a01b031690639c05d68d90602401602060405180830381865afa1580156104e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050a91906106a2565b90509250929050565b6000806040838503121561052657600080fd5b50508035926020909101359150565b6000806000806060858703121561054b57600080fd5b8435935060208501359250604085013567ffffffffffffffff8082111561057157600080fd5b818701915087601f83011261058557600080fd5b81358181111561059457600080fd5b8860208260051b85010111156105a957600080fd5b95989497505060200194505050565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156105e157600080fd5b825167ffffffffffffffff808211156105f957600080fd5b818501915085601f83011261060d57600080fd5b81518181111561061f5761061f6105b8565b8060051b604051601f19603f83011681018181108582111715610644576106446105b8565b60405291825284820192508381018501918883111561066257600080fd5b938501935b8285101561068057845184529385019392850192610667565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156106b457600080fd5b81516001600160a01b03811681146106cb57600080fd5b939250505056fea2646970667358221220679d16b3fb77676ccb87580533958a1136132c3997065192435f0c99f2acf76264736f6c63430008160033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000074d8725a65c21251a83f6647aa23140bd80504b1
-----Decoded View---------------
Arg [0] : _traitsContract (address): 0x74D8725A65C21251A83f6647aa23140Bd80504b1
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000074d8725a65c21251a83f6647aa23140bd80504b1
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 35 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.