feat: force send

This commit is contained in:
Zitao Xiong
2024-12-24 20:55:11 +08:00
parent 98a6857832
commit 2094cb9e96
8 changed files with 170 additions and 66 deletions

View File

@@ -1,4 +1,4 @@
[tools]
foundry = "nightly-5902a6fa87600cf0cbe44e689c97479c16fd474e"
foundry = "nightly-f922a340dae8e347d573fc6a403694bcb7fea106"
pnpm = "9.8.0"
nodejs = "22.7.0"

View File

@@ -0,0 +1,100 @@
{
"transactions": [
{
"hash": "0x8de96fe658f1b01c0a7ab64b2dbd4488f06737aa06f42514df63d225d540537c",
"transactionType": "CALL",
"contractName": null,
"contractAddress": "0x181b6c4042b9c5c53194e007ae645415eaa0a50f",
"function": "executeCall(address,uint256,bytes)",
"arguments": [
"0x78072889Ee4D7Fe1A100C25296AABBEA32e92Bea",
"0",
"0x42842e0e000000000000000000000000181b6c4042b9c5c53194e007ae645415eaa0a50f000000000000000000000000fc795dd1faacf2f3758832bfcae1d090836ecfdd00000000000000000000000000000000000000000000000000000000000a23fe"
],
"transaction": {
"from": "0xf53f105e90b3e9ea928926a5a78e921d8168e213",
"to": "0x181b6c4042b9c5c53194e007ae645415eaa0a50f",
"value": "0x0",
"input": "0x9e5d4c4900000000000000000000000078072889ee4d7fe1a100c25296aabbea32e92bea00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000006442842e0e000000000000000000000000181b6c4042b9c5c53194e007ae645415eaa0a50f000000000000000000000000fc795dd1faacf2f3758832bfcae1d090836ecfdd00000000000000000000000000000000000000000000000000000000000a23fe00000000000000000000000000000000000000000000000000000000",
"nonce": "0x47",
"chainId": "0xa4b1"
},
"additionalContracts": [],
"isFixedGasLimit": false
}
],
"receipts": [
{
"status": "0x1",
"cumulativeGasUsed": "0x8d25d",
"logs": [
{
"address": "0x181b6c4042b9c5c53194e007ae645415eaa0a50f",
"topics": [
"0x47d99ad340f52da66535aff7e10da1ceb85a32bcbd9fa1c42314d194545e14d2",
"0x00000000000000000000000078072889ee4d7fe1a100c25296aabbea32e92bea",
"0x0000000000000000000000000000000000000000000000000000000000000000"
],
"data": "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006442842e0e000000000000000000000000181b6c4042b9c5c53194e007ae645415eaa0a50f000000000000000000000000fc795dd1faacf2f3758832bfcae1d090836ecfdd00000000000000000000000000000000000000000000000000000000000a23fe00000000000000000000000000000000000000000000000000000000",
"blockHash": "0x727462cad9fc8da74d3055c9dfa18efbd07fb6a60f5f9f5593501a70794ed656",
"blockNumber": "0x112c553d",
"transactionHash": "0x8de96fe658f1b01c0a7ab64b2dbd4488f06737aa06f42514df63d225d540537c",
"transactionIndex": "0x1",
"logIndex": "0x0",
"removed": false
},
{
"address": "0x78072889ee4d7fe1a100c25296aabbea32e92bea",
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"0x000000000000000000000000181b6c4042b9c5c53194e007ae645415eaa0a50f",
"0x000000000000000000000000fc795dd1faacf2f3758832bfcae1d090836ecfdd",
"0x00000000000000000000000000000000000000000000000000000000000a23fe"
],
"data": "0x",
"blockHash": "0x727462cad9fc8da74d3055c9dfa18efbd07fb6a60f5f9f5593501a70794ed656",
"blockNumber": "0x112c553d",
"transactionHash": "0x8de96fe658f1b01c0a7ab64b2dbd4488f06737aa06f42514df63d225d540537c",
"transactionIndex": "0x1",
"logIndex": "0x1",
"removed": false
},
{
"address": "0xfc795dd1faacf2f3758832bfcae1d090836ecfdd",
"topics": [
"0xa05d90f300156ad1b545bc5d8197024456f21d22a708f5af04dd293e3d605251",
"0x000000000000000000000000181b6c4042b9c5c53194e007ae645415eaa0a50f",
"0x000000000000000000000000181b6c4042b9c5c53194e007ae645415eaa0a50f",
"0x00000000000000000000000000000000000000000000000000000000000a23fe"
],
"data": "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000",
"blockHash": "0x727462cad9fc8da74d3055c9dfa18efbd07fb6a60f5f9f5593501a70794ed656",
"blockNumber": "0x112c553d",
"transactionHash": "0x8de96fe658f1b01c0a7ab64b2dbd4488f06737aa06f42514df63d225d540537c",
"transactionIndex": "0x1",
"logIndex": "0x2",
"removed": false
}
],
"logsBloom": "0x01000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000080028000000008000000000000000000000000000000000000000020100000000000000000800000000000000000000000010000000002000000000000000000000000002000000400000000000080000000000000000000000000000000000000200000000000000040001000000000000000000000000010002004081000800000000000000000000000100040000000000004020000200000000020000000002000000000000000000000000000020000000100000",
"type": "0x2",
"transactionHash": "0x8de96fe658f1b01c0a7ab64b2dbd4488f06737aa06f42514df63d225d540537c",
"transactionIndex": "0x1",
"blockHash": "0x727462cad9fc8da74d3055c9dfa18efbd07fb6a60f5f9f5593501a70794ed656",
"blockNumber": "0x112c553d",
"gasUsed": "0x8d25d",
"effectiveGasPrice": "0x989680",
"from": "0xf53f105e90b3e9ea928926a5a78e921d8168e213",
"to": "0x181b6c4042b9c5c53194e007ae645415eaa0a50f",
"contractAddress": null,
"gasUsedForL1": "0x689db",
"l1BlockNumber": "0x147a4c5"
}
],
"libraries": [],
"pending": [],
"returns": {},
"timestamp": 1735044839,
"chain": 42161,
"commit": "98a6857"
}

View File

@@ -1,23 +1,22 @@
{
"transactions": [
{
"hash": "0xae6df4f5a0891570b3abf81f1f194431610d5f786ffc28be90fa9f2263d3ecb3",
"hash": "0x8de96fe658f1b01c0a7ab64b2dbd4488f06737aa06f42514df63d225d540537c",
"transactionType": "CALL",
"contractName": null,
"contractAddress": "0x1ce4a27fa620783daaa03cf6472d9c32121ec7f6",
"contractAddress": "0x181b6c4042b9c5c53194e007ae645415eaa0a50f",
"function": "executeCall(address,uint256,bytes)",
"arguments": [
"0x47A91457a3a1f700097199Fd63c039c4784384aB",
"0x78072889Ee4D7Fe1A100C25296AABBEA32e92Bea",
"0",
"0x23b872dd0000000000000000000000001ce4a27fa620783daaa03cf6472d9c32121ec7f60000000000000000000000003260e5d0a58f2e8c592adea06ba0100cb09f26ea0000000000000000000000000000000000000000000000000000000005f6288a"
"0x42842e0e000000000000000000000000181b6c4042b9c5c53194e007ae645415eaa0a50f000000000000000000000000fc795dd1faacf2f3758832bfcae1d090836ecfdd00000000000000000000000000000000000000000000000000000000000a23fe"
],
"transaction": {
"from": "0xf53f105e90b3e9ea928926a5a78e921d8168e213",
"to": "0x1ce4a27fa620783daaa03cf6472d9c32121ec7f6",
"gas": "0x5fcda",
"to": "0x181b6c4042b9c5c53194e007ae645415eaa0a50f",
"value": "0x0",
"input": "0x9e5d4c4900000000000000000000000047a91457a3a1f700097199fd63c039c4784384ab00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000006423b872dd0000000000000000000000001ce4a27fa620783daaa03cf6472d9c32121ec7f60000000000000000000000003260e5d0a58f2e8c592adea06ba0100cb09f26ea0000000000000000000000000000000000000000000000000000000005f6288a00000000000000000000000000000000000000000000000000000000",
"nonce": "0x30",
"input": "0x9e5d4c4900000000000000000000000078072889ee4d7fe1a100c25296aabbea32e92bea00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000006442842e0e000000000000000000000000181b6c4042b9c5c53194e007ae645415eaa0a50f000000000000000000000000fc795dd1faacf2f3758832bfcae1d090836ecfdd00000000000000000000000000000000000000000000000000000000000a23fe00000000000000000000000000000000000000000000000000000000",
"nonce": "0x47",
"chainId": "0xa4b1"
},
"additionalContracts": [],
@@ -27,75 +26,75 @@
"receipts": [
{
"status": "0x1",
"cumulativeGasUsed": "0x8f36f",
"cumulativeGasUsed": "0x8d25d",
"logs": [
{
"address": "0x1ce4a27fa620783daaa03cf6472d9c32121ec7f6",
"address": "0x181b6c4042b9c5c53194e007ae645415eaa0a50f",
"topics": [
"0x47d99ad340f52da66535aff7e10da1ceb85a32bcbd9fa1c42314d194545e14d2",
"0x00000000000000000000000047a91457a3a1f700097199fd63c039c4784384ab",
"0x00000000000000000000000078072889ee4d7fe1a100c25296aabbea32e92bea",
"0x0000000000000000000000000000000000000000000000000000000000000000"
],
"data": "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006423b872dd0000000000000000000000001ce4a27fa620783daaa03cf6472d9c32121ec7f60000000000000000000000003260e5d0a58f2e8c592adea06ba0100cb09f26ea0000000000000000000000000000000000000000000000000000000005f6288a00000000000000000000000000000000000000000000000000000000",
"blockHash": "0x35e532172a5193801662c5326702f6751db5927d64618f1bac48e13405e9ca83",
"blockNumber": "0xf57c5a5",
"transactionHash": "0xae6df4f5a0891570b3abf81f1f194431610d5f786ffc28be90fa9f2263d3ecb3",
"transactionIndex": "0x2",
"logIndex": "0xa",
"data": "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006442842e0e000000000000000000000000181b6c4042b9c5c53194e007ae645415eaa0a50f000000000000000000000000fc795dd1faacf2f3758832bfcae1d090836ecfdd00000000000000000000000000000000000000000000000000000000000a23fe00000000000000000000000000000000000000000000000000000000",
"blockHash": "0x727462cad9fc8da74d3055c9dfa18efbd07fb6a60f5f9f5593501a70794ed656",
"blockNumber": "0x112c553d",
"transactionHash": "0x8de96fe658f1b01c0a7ab64b2dbd4488f06737aa06f42514df63d225d540537c",
"transactionIndex": "0x1",
"logIndex": "0x0",
"removed": false
},
{
"address": "0x47a91457a3a1f700097199fd63c039c4784384ab",
"topics": [
"0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925",
"0x0000000000000000000000001ce4a27fa620783daaa03cf6472d9c32121ec7f6",
"0x0000000000000000000000000000000000000000000000000000000000000000",
"0x0000000000000000000000000000000000000000000000000000000005f6288a"
],
"data": "0x",
"blockHash": "0x35e532172a5193801662c5326702f6751db5927d64618f1bac48e13405e9ca83",
"blockNumber": "0xf57c5a5",
"transactionHash": "0xae6df4f5a0891570b3abf81f1f194431610d5f786ffc28be90fa9f2263d3ecb3",
"transactionIndex": "0x2",
"logIndex": "0xb",
"removed": false
},
{
"address": "0x47a91457a3a1f700097199fd63c039c4784384ab",
"address": "0x78072889ee4d7fe1a100c25296aabbea32e92bea",
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"0x0000000000000000000000001ce4a27fa620783daaa03cf6472d9c32121ec7f6",
"0x0000000000000000000000003260e5d0a58f2e8c592adea06ba0100cb09f26ea",
"0x0000000000000000000000000000000000000000000000000000000005f6288a"
"0x000000000000000000000000181b6c4042b9c5c53194e007ae645415eaa0a50f",
"0x000000000000000000000000fc795dd1faacf2f3758832bfcae1d090836ecfdd",
"0x00000000000000000000000000000000000000000000000000000000000a23fe"
],
"data": "0x",
"blockHash": "0x35e532172a5193801662c5326702f6751db5927d64618f1bac48e13405e9ca83",
"blockNumber": "0xf57c5a5",
"transactionHash": "0xae6df4f5a0891570b3abf81f1f194431610d5f786ffc28be90fa9f2263d3ecb3",
"transactionIndex": "0x2",
"logIndex": "0xc",
"blockHash": "0x727462cad9fc8da74d3055c9dfa18efbd07fb6a60f5f9f5593501a70794ed656",
"blockNumber": "0x112c553d",
"transactionHash": "0x8de96fe658f1b01c0a7ab64b2dbd4488f06737aa06f42514df63d225d540537c",
"transactionIndex": "0x1",
"logIndex": "0x1",
"removed": false
},
{
"address": "0xfc795dd1faacf2f3758832bfcae1d090836ecfdd",
"topics": [
"0xa05d90f300156ad1b545bc5d8197024456f21d22a708f5af04dd293e3d605251",
"0x000000000000000000000000181b6c4042b9c5c53194e007ae645415eaa0a50f",
"0x000000000000000000000000181b6c4042b9c5c53194e007ae645415eaa0a50f",
"0x00000000000000000000000000000000000000000000000000000000000a23fe"
],
"data": "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000",
"blockHash": "0x727462cad9fc8da74d3055c9dfa18efbd07fb6a60f5f9f5593501a70794ed656",
"blockNumber": "0x112c553d",
"transactionHash": "0x8de96fe658f1b01c0a7ab64b2dbd4488f06737aa06f42514df63d225d540537c",
"transactionIndex": "0x1",
"logIndex": "0x2",
"removed": false
}
],
"logsBloom": "0x0100000000000400000000000000000000000000000000000000000000000000000000008000000400000000000002000000000000000000000000200020000000000000000020000000000a020000000000000000020000080000202000000000000000020000000000000000000800000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000020000000000000000000000000000000040000000000000000000200000000000000002000010000000000200000000000000000000001000000000000020000010008000000000000002000000000000000000000000000000000000000000",
"logsBloom": "0x01000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000080028000000008000000000000000000000000000000000000000020100000000000000000800000000000000000000000010000000002000000000000000000000000002000000400000000000080000000000000000000000000000000000000200000000000000040001000000000000000000000000010002004081000800000000000000000000000100040000000000004020000200000000020000000002000000000000000000000000000020000000100000",
"type": "0x2",
"transactionHash": "0xae6df4f5a0891570b3abf81f1f194431610d5f786ffc28be90fa9f2263d3ecb3",
"transactionIndex": "0x2",
"blockHash": "0x35e532172a5193801662c5326702f6751db5927d64618f1bac48e13405e9ca83",
"blockNumber": "0xf57c5a5",
"gasUsed": "0x3e904",
"transactionHash": "0x8de96fe658f1b01c0a7ab64b2dbd4488f06737aa06f42514df63d225d540537c",
"transactionIndex": "0x1",
"blockHash": "0x727462cad9fc8da74d3055c9dfa18efbd07fb6a60f5f9f5593501a70794ed656",
"blockNumber": "0x112c553d",
"gasUsed": "0x8d25d",
"effectiveGasPrice": "0x989680",
"from": "0xf53f105e90b3e9ea928926a5a78e921d8168e213",
"to": "0x1ce4a27fa620783daaa03cf6472d9c32121ec7f6",
"to": "0x181b6c4042b9c5c53194e007ae645415eaa0a50f",
"contractAddress": null,
"gasUsedForL1": "0x25830",
"l1BlockNumber": "0x13dded4"
"gasUsedForL1": "0x689db",
"l1BlockNumber": "0x147a4c5"
}
],
"libraries": [],
"pending": [],
"returns": {},
"timestamp": 1727319626,
"timestamp": 1735044839,
"chain": 42161,
"commit": "3387e0c"
"commit": "98a6857"
}

View File

@@ -2,16 +2,17 @@
src = "src"
out = "out"
libs = ["lib"]
solc = "0.8.20"
solc = "0.8.28"
fs_permissions = [{ access = "read", path = "./"}, { access = "readwrite", path = "./config"}]
evm_version = "cancun"
optimizer = true
optimizer_runs = 200
evm_version = "prague"
# optimizer = true
# optimizer_runs = 200
# See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options
fallback_oz = true
is_system = false # Note: NonceHolder and the ContractDeployer system contracts can only be called with a special isSystem flag as true
mode = "3"
# fallback_oz = true
# is_system = false # Note: NonceHolder and the ContractDeployer system contracts can only be called with a special isSystem flag as true
# mode = "3"
[fmt]
line_length = 120

View File

@@ -9,7 +9,8 @@ import { GiftedAccount } from "../src/GiftedAccount.sol";
contract Reclaim is Script {
function run() public {
reclaim(934, 0x0000000080d04343D60D06e1a36aAF46c9242805, 1457, 0xF99E6913b949D6e3da3E217D0F5E09b7f7B7d2B1);
// reclaim(934, 0x0000000080d04343D60D06e1a36aAF46c9242805, 1457, 0xF99E6913b949D6e3da3E217D0F5E09b7f7B7d2B1);
reclaim(430, 0x78072889Ee4D7Fe1A100C25296AABBEA32e92Bea, 664574, 0xfC795Dd1FaaCF2F3758832BfCae1d090836ecFDD);
}
function reclaim(uint256 giftBoxID, address artworkAddress, uint256 artworkID, address recipient) internal {
@@ -17,10 +18,13 @@ contract Reclaim is Script {
GiftedAccount tokenAccount =
GiftedAccount(payable(GiftedBox(getAddressFromConfig("GiftedBox")).tokenAccountAddress(giftBoxID)));
vm.expectRevert();
tokenAccount.executeCall(
artworkAddress,
0,
abi.encodeWithSelector(IERC721.transferFrom.selector, address(tokenAccount), recipient, artworkID)
// abi.encodeWithSelector(bytes4(keccak256("transferERC721(address,uint256,address,address,uint256)")), address(tokenAccount), recipient, artworkID, address(tokenAccount), block.timestamp + 1 days)
abi.encodeWithSelector(bytes4(keccak256("safeTransferFrom(address,address,uint256)")), address(tokenAccount), recipient, artworkID)
// abi.encodeWithSelector(IERC721.safeTransferFrom.selector, address(tokenAccount), recipient, artworkID)
);
vm.stopBroadcast();
}

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;
pragma solidity ^0.8.20;
import "@openzeppelin/contracts/token/ERC721/IERC721.sol";
import "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: BUSL-1.1
pragma solidity 0.8.20;
pragma solidity ^0.8.20;
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import "@openzeppelin/contracts/utils/Pausable.sol";

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: BUSL-1.1
pragma solidity 0.8.20;
pragma solidity ^0.8.20;
interface IVault {
function transferIn(address asset, address from, uint256 amount) external payable;