Transaction Hash:
Block:
21098776 at Nov-02-2024 08:30:11 AM +UTC
Transaction Fee:
0.000571953381542275 ETH
$2.17
Gas Used:
147,775 Gas / 3.870433981 Gwei
Emitted Events:
349 |
ERC721K.Transfer( from=0x2ac49e456e24d475b3c2e6b0fb3e18895a876982, to=[Sender] 0x37888523de532d1b018bc73ce5b02f461869e72b, tokenId=3549 )
|
350 |
ERC1967Proxy.0x7dc5c0699ac8dd5250cbe368a2fc3b4a2daadb120ad07f6cccea29f83482686e( 0x7dc5c0699ac8dd5250cbe368a2fc3b4a2daadb120ad07f6cccea29f83482686e, 795bc2bcc3cdef1545dee6cbda832f9c53310bd43af4c4422968d49b59a17317, 0000000000000000000ddd002ac49e456e24d475b3c2e6b0fb3e18895a876982, 0000000000f5f45175cce000d822801d63520a2672a6e92ce861dfafc29ea3e3, 000000000000000000000032c2ca0edb941926dec0e2bf2f146e9c833b10a514 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x2aC49E45...95a876982 | 0.006745420230648452 Eth | 0.075629270230648452 Eth | 0.06888385 | ||
0x37888523...61869e72B |
0.490469152381247611 Eth
Nonce: 106
|
0.420667198999705336 Eth
Nonce: 107
| 0.069801953381542275 | ||
0x95222290...5CC4BAfe5
Miner
| (beaverbuild) | 7.231356360153860021 Eth | 7.231356745493132221 Eth | 0.0000003853392722 | |
0xb2ecfE4E...e2410CEA5 | (Blur.io: Marketplace 3) | ||||
0xC2cA0Edb...33b10a514 | 10.89518435879772051 Eth | 10.89553050879772051 Eth | 0.00034615 | ||
0xd822801d...Fc29ea3e3 |
Execution Trace
ETH 0.06923
ERC1967Proxy.70bce2d6( )
ETH 0.06923
BlurExchangeV2.takeAskSingle( )
-
Null: 0x000...001.3045b4a2( )
-
Null: 0x000...001.5d108b41( )
Delegate.transfer( taker=0x37888523DE532D1B018BC73Ce5b02F461869e72B, orderType=0, transfers=, length=1 ) => ( successful=[true] )
-
ERC721K.safeTransferFrom( from=0x2aC49E456e24d475B3C2E6b0fb3E18895a876982, to=0x37888523DE532D1B018BC73Ce5b02F461869e72B, tokenId=3549 )
-
- ETH 0.00034615
0xc2ca0edb941926dec0e2bf2f146e9c833b10a514.CALL( )
- ETH 0.06888385
0x2ac49e456e24d475b3c2e6b0fb3e18895a876982.CALL( )
-
takeAskSingle[BlurExchangeV2 (ln:155)]
_takeAskSingle[BlurExchangeV2 (ln:164)]
Fees[BlurExchangeV2 (ln:232)]
_validateOrderAndListing[BlurExchangeV2 (ln:236)]
InvalidOrder[BlurExchangeV2 (ln:237)]
_initializeSingleExecution[BlurExchangeV2 (ln:240)]
_insertNonfungibleTransfer[BlurExchangeV2 (ln:544)]
_executeNonfungibleTransfers[BlurExchangeV2 (ln:253)]
TokenTransferFailed[BlurExchangeV2 (ln:255)]
_computeFees[BlurExchangeV2 (ln:263)]
InsufficientFunds[BlurExchangeV2 (ln:267)]
_transferETH[BlurExchangeV2 (ln:271)]
_transferETH[BlurExchangeV2 (ln:272)]
_transferETH[BlurExchangeV2 (ln:273)]
_transferETH[BlurExchangeV2 (ln:275)]
_emitExecutionEvent[BlurExchangeV2 (ln:277)]
_transferETH[BlurExchangeV2 (ln:279)]
_hashCalldata[BlurExchangeV2 (ln:162)]
File 1 of 4: ERC1967Proxy
File 2 of 4: ERC721K
File 3 of 4: BlurExchangeV2
File 4 of 4: Delegate
12345678910111213141516// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (proxy/ERC1967/ERC1967Proxy.sol)pragma solidity 0.8.17;import "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol";import "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol";/*** @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an* implementation address that can be changed. This address is stored in storage in the location specified by* https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the* implementation behind the proxy.*/contract ERC1967Proxy is Proxy, ERC1967Upgrade {/*** @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.** If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded
File 2 of 4: ERC721K
12345678910111213141516// 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.*/
File 3 of 4: BlurExchangeV2
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity 0.8.17;import { Ownable2StepUpgradeable } from "lib/openzeppelin-contracts-upgradeable/contracts/access/Ownable2StepUpgradeable.sol";import { UUPSUpgradeable } from "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol";import { Executor } from "./Executor.sol";import "./lib/Constants.sol";import {TakeAsk,TakeBid,TakeAskSingle,TakeBidSingle,Order,Exchange,Fees,FeeRate,AssetType,
File 4 of 4: Delegate
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity 0.8.17;import { ERC721 } from "lib/solmate/src/tokens/ERC721.sol";import { ERC1155 } from "lib/solmate/src/tokens/ERC1155.sol";import { ERC20 } from "lib/solmate/src/tokens/ERC20.sol";import "./lib/Constants.sol";import { AssetType, OrderType, Transfer } from "./lib/Structs.sol";contract Delegate {error Unauthorized();error InvalidLength();address private immutable _EXCHANGE;constructor(address exchange) {_EXCHANGE = exchange;}modifier onlyApproved() {if (msg.sender != _EXCHANGE) {