1838 lines
72 KiB
JSON
1838 lines
72 KiB
JSON
{
|
|
"contractName": "IToken",
|
|
"abi": [
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "from",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "to",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amount",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "transferFrom",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "spender",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amount",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "startTime",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "saltNonce",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "signature",
|
|
"type": "bytes"
|
|
}
|
|
],
|
|
"name": "signApprove",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
}
|
|
],
|
|
"metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"saltNonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"signApprove\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/logic/ExecuteRelay.sol\":\"IToken\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2\",\"dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"project:/contracts/core/HasSignature712.sol\":{\"keccak256\":\"0xcfa1b32a388ca7c5cd41676719aac8ab49abedb549f7a46904e5e4d7186a0ee9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://298ca85faceec294adfda8692785a5c5d01f045a5780fce480614dc88172ad81\",\"dweb:/ipfs/QmQe7He5SHxZzZm6ekLDMHGYdWCjLmyjoF9cdgbDvZVmYc\"]},\"project:/contracts/logic/ExecuteRelay.sol\":{\"keccak256\":\"0x70003174a37eb768b6ac6c604233093d39d5b540d5c34a3f53e06976d347cea0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e3132e268570846983b5162ca31fb3f81891a555d4bd8a6878165f8b637d2cd\",\"dweb:/ipfs/QmcoKwPUrfuFF5mKTBka5H2stwATnx33KexcNLZHA3kh45\"]},\"project:/contracts/utils/TimeChecker.sol\":{\"keccak256\":\"0xf8ee7429455aaab77928e8473db10bd19711785a6882b530ca2bff0fcd827935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47d15b16737402cca53bc604b3ae7330378f1a8cd4be9134aa598515907286be\",\"dweb:/ipfs/QmaQu5HH7BZbwS42pnQVCXmMLrdhdcxCwtu8jYUSuqMA56\"]}},\"version\":1}",
|
|
"bytecode": "0x",
|
|
"deployedBytecode": "0x",
|
|
"immutableReferences": {},
|
|
"generatedSources": [],
|
|
"deployedGeneratedSources": [],
|
|
"sourceMap": "",
|
|
"deployedSourceMap": "",
|
|
"source": "// SPDX-License-Identifier: MIT\r\npragma solidity 0.8.10;\r\n\r\nimport \"../core/HasSignature712.sol\";\r\nimport \"../utils/TimeChecker.sol\";\r\n\r\ninterface IToken {\r\n function transferFrom(\r\n address from,\r\n address to,\r\n uint256 amount\r\n ) external returns (bool);\r\n\r\n function signApprove(\r\n address spender,\r\n uint256 amount,\r\n uint256 startTime,\r\n uint256 saltNonce,\r\n bytes calldata signature\r\n ) external;\r\n}\r\n\r\ncontract ExecuteRelay is HasSignatureEx, TimeChecker {\r\n constructor() HasSignatureEx(\"ExecuteRelay\", \"1\") {}\r\n\r\n address public tokenAddress;\r\n\r\n event MethodExecuted(\r\n address indexed sender,\r\n address indexed target,\r\n bytes data,\r\n uint256 gasUsed,\r\n uint256 tokenAmount\r\n );\r\n\r\n function execute(\r\n address sender,\r\n address target,\r\n uint256 value,\r\n bytes calldata data,\r\n uint256 startTime,\r\n uint256 saltNonce,\r\n bytes calldata signature\r\n ) external payable signatureValid(signature) timeValid(startTime) {\r\n // bytes32 messageHash = getMessageHash(\r\n // target,\r\n // value,\r\n // data,\r\n // startTime,\r\n // saltNonce\r\n // );\r\n // uint256 gasStart = gasleft();\r\n // checkSigner712(sender, messageHash, signature);\r\n // uint256 gasPrice = tx.gasprice;\r\n // _call(target, value, data);\r\n // uint256 gasUsed = gasStart - gasleft();\r\n // uint256 tokenAmount = gasPrice * gasUsed; // TODO:: calc real token amount\r\n // IToken(tokenAddress).signApprove(\r\n // sender,\r\n // tokenAmount,\r\n // startTime,\r\n // saltNonce,\r\n // signature\r\n // );\r\n // IToken(tokenAddress).transferFrom(sender, address(this), tokenAmount);\r\n // _useSignature(signature);\r\n // emit MethodExecuted(sender, target, data, gasUsed, tokenAmount);\r\n }\r\n\r\n /**\r\n * @dev Execute an operation's call.\r\n *\r\n * Emits a {CallExecuted} event.\r\n */\r\n function _call(address target, uint256 value, bytes calldata data) private {\r\n (bool success, ) = target.call{value: value}(data);\r\n require(success, \"ExecuteRelay: underlying transaction reverted\");\r\n }\r\n\r\n function getMessageHash(\r\n address _target,\r\n uint256 _value,\r\n bytes calldata _data,\r\n uint256 _startTime,\r\n uint256 _saltNonce\r\n ) public pure returns (bytes32) {\r\n bytes memory encoded = abi.encodePacked(\r\n _target,\r\n _value,\r\n _data,\r\n _startTime,\r\n _saltNonce\r\n );\r\n return keccak256(encoded);\r\n }\r\n}\r\n",
|
|
"sourcePath": "D:\\res\\CEBG\\becrypto\\contracts\\logic\\ExecuteRelay.sol",
|
|
"ast": {
|
|
"absolutePath": "project:/contracts/logic/ExecuteRelay.sol",
|
|
"exportedSymbols": {
|
|
"Context": [
|
|
6470
|
|
],
|
|
"ECDSA": [
|
|
7139
|
|
],
|
|
"ExecuteRelay": [
|
|
10703
|
|
],
|
|
"HasSignatureEx": [
|
|
10312
|
|
],
|
|
"IToken": [
|
|
10596
|
|
],
|
|
"Math": [
|
|
8041
|
|
],
|
|
"Ownable": [
|
|
651
|
|
],
|
|
"SignedMath": [
|
|
8146
|
|
],
|
|
"Strings": [
|
|
6773
|
|
],
|
|
"TimeChecker": [
|
|
17510
|
|
]
|
|
},
|
|
"id": 10704,
|
|
"license": "MIT",
|
|
"nodeType": "SourceUnit",
|
|
"nodes": [
|
|
{
|
|
"id": 10569,
|
|
"literals": [
|
|
"solidity",
|
|
"0.8",
|
|
".10"
|
|
],
|
|
"nodeType": "PragmaDirective",
|
|
"src": "33:23:50"
|
|
},
|
|
{
|
|
"absolutePath": "project:/contracts/core/HasSignature712.sol",
|
|
"file": "../core/HasSignature712.sol",
|
|
"id": 10570,
|
|
"nameLocation": "-1:-1:-1",
|
|
"nodeType": "ImportDirective",
|
|
"scope": 10704,
|
|
"sourceUnit": 10313,
|
|
"src": "60:37:50",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "project:/contracts/utils/TimeChecker.sol",
|
|
"file": "../utils/TimeChecker.sol",
|
|
"id": 10571,
|
|
"nameLocation": "-1:-1:-1",
|
|
"nodeType": "ImportDirective",
|
|
"scope": 10704,
|
|
"sourceUnit": 17511,
|
|
"src": "99:34:50",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"abstract": false,
|
|
"baseContracts": [],
|
|
"canonicalName": "IToken",
|
|
"contractDependencies": [],
|
|
"contractKind": "interface",
|
|
"fullyImplemented": false,
|
|
"id": 10596,
|
|
"linearizedBaseContracts": [
|
|
10596
|
|
],
|
|
"name": "IToken",
|
|
"nameLocation": "147:6:50",
|
|
"nodeType": "ContractDefinition",
|
|
"nodes": [
|
|
{
|
|
"functionSelector": "23b872dd",
|
|
"id": 10582,
|
|
"implemented": false,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "transferFrom",
|
|
"nameLocation": "168:12:50",
|
|
"nodeType": "FunctionDefinition",
|
|
"parameters": {
|
|
"id": 10578,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 10573,
|
|
"mutability": "mutable",
|
|
"name": "from",
|
|
"nameLocation": "195:4:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10582,
|
|
"src": "187:12:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 10572,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "187:7:50",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 10575,
|
|
"mutability": "mutable",
|
|
"name": "to",
|
|
"nameLocation": "214:2:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10582,
|
|
"src": "206:10:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 10574,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "206:7:50",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 10577,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"nameLocation": "231:6:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10582,
|
|
"src": "223:14:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 10576,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "223:7:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "180:62:50"
|
|
},
|
|
"returnParameters": {
|
|
"id": 10581,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 10580,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nameLocation": "-1:-1:-1",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10582,
|
|
"src": "261:4:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 10579,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "261:4:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "260:6:50"
|
|
},
|
|
"scope": 10596,
|
|
"src": "159:108:50",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "external"
|
|
},
|
|
{
|
|
"functionSelector": "dae1631e",
|
|
"id": 10595,
|
|
"implemented": false,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "signApprove",
|
|
"nameLocation": "282:11:50",
|
|
"nodeType": "FunctionDefinition",
|
|
"parameters": {
|
|
"id": 10593,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 10584,
|
|
"mutability": "mutable",
|
|
"name": "spender",
|
|
"nameLocation": "308:7:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10595,
|
|
"src": "300:15:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 10583,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "300:7:50",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 10586,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"nameLocation": "330:6:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10595,
|
|
"src": "322:14:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 10585,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "322:7:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 10588,
|
|
"mutability": "mutable",
|
|
"name": "startTime",
|
|
"nameLocation": "351:9:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10595,
|
|
"src": "343:17:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 10587,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "343:7:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 10590,
|
|
"mutability": "mutable",
|
|
"name": "saltNonce",
|
|
"nameLocation": "375:9:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10595,
|
|
"src": "367:17:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 10589,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "367:7:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 10592,
|
|
"mutability": "mutable",
|
|
"name": "signature",
|
|
"nameLocation": "406:9:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10595,
|
|
"src": "391:24:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "calldata",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_calldata_ptr",
|
|
"typeString": "bytes"
|
|
},
|
|
"typeName": {
|
|
"id": 10591,
|
|
"name": "bytes",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "391:5:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_storage_ptr",
|
|
"typeString": "bytes"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "293:127:50"
|
|
},
|
|
"returnParameters": {
|
|
"id": 10594,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "429:0:50"
|
|
},
|
|
"scope": 10596,
|
|
"src": "273:157:50",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "external"
|
|
}
|
|
],
|
|
"scope": 10704,
|
|
"src": "137:296:50",
|
|
"usedErrors": []
|
|
},
|
|
{
|
|
"abstract": false,
|
|
"baseContracts": [
|
|
{
|
|
"baseName": {
|
|
"id": 10597,
|
|
"name": "HasSignatureEx",
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 10312,
|
|
"src": "462:14:50"
|
|
},
|
|
"id": 10598,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "462:14:50"
|
|
},
|
|
{
|
|
"baseName": {
|
|
"id": 10599,
|
|
"name": "TimeChecker",
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 17510,
|
|
"src": "478:11:50"
|
|
},
|
|
"id": 10600,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "478:11:50"
|
|
}
|
|
],
|
|
"canonicalName": "ExecuteRelay",
|
|
"contractDependencies": [],
|
|
"contractKind": "contract",
|
|
"fullyImplemented": true,
|
|
"id": 10703,
|
|
"linearizedBaseContracts": [
|
|
10703,
|
|
17510,
|
|
10312,
|
|
651,
|
|
6470
|
|
],
|
|
"name": "ExecuteRelay",
|
|
"nameLocation": "446:12:50",
|
|
"nodeType": "ContractDefinition",
|
|
"nodes": [
|
|
{
|
|
"body": {
|
|
"id": 10607,
|
|
"nodeType": "Block",
|
|
"src": "545:2:50",
|
|
"statements": []
|
|
},
|
|
"id": 10608,
|
|
"implemented": true,
|
|
"kind": "constructor",
|
|
"modifiers": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"hexValue": "4578656375746552656c6179",
|
|
"id": 10603,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "524:14:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_57615082dca7dd95fd3b96c0919b1d90008d781048808a231fb3294174c9e982",
|
|
"typeString": "literal_string \"ExecuteRelay\""
|
|
},
|
|
"value": "ExecuteRelay"
|
|
},
|
|
{
|
|
"hexValue": "31",
|
|
"id": 10604,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "540:3:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6",
|
|
"typeString": "literal_string \"1\""
|
|
},
|
|
"value": "1"
|
|
}
|
|
],
|
|
"id": 10605,
|
|
"kind": "baseConstructorSpecifier",
|
|
"modifierName": {
|
|
"id": 10602,
|
|
"name": "HasSignatureEx",
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 10312,
|
|
"src": "509:14:50"
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "509:35:50"
|
|
}
|
|
],
|
|
"name": "",
|
|
"nameLocation": "-1:-1:-1",
|
|
"nodeType": "FunctionDefinition",
|
|
"parameters": {
|
|
"id": 10601,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "506:2:50"
|
|
},
|
|
"returnParameters": {
|
|
"id": 10606,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "545:0:50"
|
|
},
|
|
"scope": 10703,
|
|
"src": "495:52:50",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"functionSelector": "9d76ea58",
|
|
"id": 10610,
|
|
"mutability": "mutable",
|
|
"name": "tokenAddress",
|
|
"nameLocation": "568:12:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10703,
|
|
"src": "553:27:50",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 10609,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "553:7:50",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"id": 10622,
|
|
"name": "MethodExecuted",
|
|
"nameLocation": "593:14:50",
|
|
"nodeType": "EventDefinition",
|
|
"parameters": {
|
|
"id": 10621,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 10612,
|
|
"indexed": true,
|
|
"mutability": "mutable",
|
|
"name": "sender",
|
|
"nameLocation": "630:6:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10622,
|
|
"src": "614:22:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 10611,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "614:7:50",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 10614,
|
|
"indexed": true,
|
|
"mutability": "mutable",
|
|
"name": "target",
|
|
"nameLocation": "659:6:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10622,
|
|
"src": "643:22:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 10613,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "643:7:50",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 10616,
|
|
"indexed": false,
|
|
"mutability": "mutable",
|
|
"name": "data",
|
|
"nameLocation": "678:4:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10622,
|
|
"src": "672:10:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes"
|
|
},
|
|
"typeName": {
|
|
"id": 10615,
|
|
"name": "bytes",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "672:5:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_storage_ptr",
|
|
"typeString": "bytes"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 10618,
|
|
"indexed": false,
|
|
"mutability": "mutable",
|
|
"name": "gasUsed",
|
|
"nameLocation": "697:7:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10622,
|
|
"src": "689:15:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 10617,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "689:7:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 10620,
|
|
"indexed": false,
|
|
"mutability": "mutable",
|
|
"name": "tokenAmount",
|
|
"nameLocation": "719:11:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10622,
|
|
"src": "711:19:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 10619,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "711:7:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "607:128:50"
|
|
},
|
|
"src": "587:149:50"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 10645,
|
|
"nodeType": "Block",
|
|
"src": "995:798:50",
|
|
"statements": []
|
|
},
|
|
"functionSelector": "a09b6707",
|
|
"id": 10646,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"id": 10639,
|
|
"name": "signature",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 10636,
|
|
"src": "963:9:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_calldata_ptr",
|
|
"typeString": "bytes calldata"
|
|
}
|
|
}
|
|
],
|
|
"id": 10640,
|
|
"kind": "modifierInvocation",
|
|
"modifierName": {
|
|
"id": 10638,
|
|
"name": "signatureValid",
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 10293,
|
|
"src": "948:14:50"
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "948:25:50"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"id": 10642,
|
|
"name": "startTime",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 10632,
|
|
"src": "984:9:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"id": 10643,
|
|
"kind": "modifierInvocation",
|
|
"modifierName": {
|
|
"id": 10641,
|
|
"name": "timeValid",
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 17480,
|
|
"src": "974:9:50"
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "974:20:50"
|
|
}
|
|
],
|
|
"name": "execute",
|
|
"nameLocation": "751:7:50",
|
|
"nodeType": "FunctionDefinition",
|
|
"parameters": {
|
|
"id": 10637,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 10624,
|
|
"mutability": "mutable",
|
|
"name": "sender",
|
|
"nameLocation": "773:6:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10646,
|
|
"src": "765:14:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 10623,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "765:7:50",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 10626,
|
|
"mutability": "mutable",
|
|
"name": "target",
|
|
"nameLocation": "794:6:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10646,
|
|
"src": "786:14:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 10625,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "786:7:50",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 10628,
|
|
"mutability": "mutable",
|
|
"name": "value",
|
|
"nameLocation": "815:5:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10646,
|
|
"src": "807:13:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 10627,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "807:7:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 10630,
|
|
"mutability": "mutable",
|
|
"name": "data",
|
|
"nameLocation": "842:4:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10646,
|
|
"src": "827:19:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "calldata",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_calldata_ptr",
|
|
"typeString": "bytes"
|
|
},
|
|
"typeName": {
|
|
"id": 10629,
|
|
"name": "bytes",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "827:5:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_storage_ptr",
|
|
"typeString": "bytes"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 10632,
|
|
"mutability": "mutable",
|
|
"name": "startTime",
|
|
"nameLocation": "861:9:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10646,
|
|
"src": "853:17:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 10631,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "853:7:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 10634,
|
|
"mutability": "mutable",
|
|
"name": "saltNonce",
|
|
"nameLocation": "885:9:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10646,
|
|
"src": "877:17:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 10633,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "877:7:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 10636,
|
|
"mutability": "mutable",
|
|
"name": "signature",
|
|
"nameLocation": "916:9:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10646,
|
|
"src": "901:24:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "calldata",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_calldata_ptr",
|
|
"typeString": "bytes"
|
|
},
|
|
"typeName": {
|
|
"id": 10635,
|
|
"name": "bytes",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "901:5:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_storage_ptr",
|
|
"typeString": "bytes"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "758:172:50"
|
|
},
|
|
"returnParameters": {
|
|
"id": 10644,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "995:0:50"
|
|
},
|
|
"scope": 10703,
|
|
"src": "742:1051:50",
|
|
"stateMutability": "payable",
|
|
"virtual": false,
|
|
"visibility": "external"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 10670,
|
|
"nodeType": "Block",
|
|
"src": "1970:135:50",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
10657,
|
|
null
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 10657,
|
|
"mutability": "mutable",
|
|
"name": "success",
|
|
"nameLocation": "1983:7:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10670,
|
|
"src": "1978:12:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
"typeName": {
|
|
"id": 10656,
|
|
"name": "bool",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1978:4:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
null
|
|
],
|
|
"id": 10664,
|
|
"initialValue": {
|
|
"arguments": [
|
|
{
|
|
"id": 10662,
|
|
"name": "data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 10653,
|
|
"src": "2022:4:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_calldata_ptr",
|
|
"typeString": "bytes calldata"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes_calldata_ptr",
|
|
"typeString": "bytes calldata"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes_calldata_ptr",
|
|
"typeString": "bytes calldata"
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 10658,
|
|
"name": "target",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 10649,
|
|
"src": "1996:6:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 10659,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "call",
|
|
"nodeType": "MemberAccess",
|
|
"src": "1996:11:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
|
|
"typeString": "function (bytes memory) payable returns (bool,bytes memory)"
|
|
}
|
|
},
|
|
"id": 10661,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"names": [
|
|
"value"
|
|
],
|
|
"nodeType": "FunctionCallOptions",
|
|
"options": [
|
|
{
|
|
"id": 10660,
|
|
"name": "value",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 10651,
|
|
"src": "2015:5:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"src": "1996:25:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value",
|
|
"typeString": "function (bytes memory) payable returns (bool,bytes memory)"
|
|
}
|
|
},
|
|
"id": 10663,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "1996:31:50",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
|
|
"typeString": "tuple(bool,bytes memory)"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "1977:50:50"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"id": 10666,
|
|
"name": "success",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 10657,
|
|
"src": "2042:7:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"hexValue": "4578656375746552656c61793a20756e6465726c79696e67207472616e73616374696f6e207265766572746564",
|
|
"id": 10667,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2051:47:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_e7343df179b0011dd92de2b6a43b7ae9de446773f7d576e3a20aa52132d6c15e",
|
|
"typeString": "literal_string \"ExecuteRelay: underlying transaction reverted\""
|
|
},
|
|
"value": "ExecuteRelay: underlying transaction reverted"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_e7343df179b0011dd92de2b6a43b7ae9de446773f7d576e3a20aa52132d6c15e",
|
|
"typeString": "literal_string \"ExecuteRelay: underlying transaction reverted\""
|
|
}
|
|
],
|
|
"id": 10665,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
4294967278,
|
|
4294967278
|
|
],
|
|
"referencedDeclaration": 4294967278,
|
|
"src": "2034:7:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 10668,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2034:65:50",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 10669,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2034:65:50"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 10647,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "1799:92:50",
|
|
"text": " @dev Execute an operation's call.\n Emits a {CallExecuted} event."
|
|
},
|
|
"id": 10671,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "_call",
|
|
"nameLocation": "1904:5:50",
|
|
"nodeType": "FunctionDefinition",
|
|
"parameters": {
|
|
"id": 10654,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 10649,
|
|
"mutability": "mutable",
|
|
"name": "target",
|
|
"nameLocation": "1918:6:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10671,
|
|
"src": "1910:14:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 10648,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1910:7:50",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 10651,
|
|
"mutability": "mutable",
|
|
"name": "value",
|
|
"nameLocation": "1934:5:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10671,
|
|
"src": "1926:13:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 10650,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1926:7:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 10653,
|
|
"mutability": "mutable",
|
|
"name": "data",
|
|
"nameLocation": "1956:4:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10671,
|
|
"src": "1941:19:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "calldata",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_calldata_ptr",
|
|
"typeString": "bytes"
|
|
},
|
|
"typeName": {
|
|
"id": 10652,
|
|
"name": "bytes",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1941:5:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_storage_ptr",
|
|
"typeString": "bytes"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "1909:52:50"
|
|
},
|
|
"returnParameters": {
|
|
"id": 10655,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "1970:0:50"
|
|
},
|
|
"scope": 10703,
|
|
"src": "1895:210:50",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 10701,
|
|
"nodeType": "Block",
|
|
"src": "2290:174:50",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
10687
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 10687,
|
|
"mutability": "mutable",
|
|
"name": "encoded",
|
|
"nameLocation": "2310:7:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10701,
|
|
"src": "2297:20:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes"
|
|
},
|
|
"typeName": {
|
|
"id": 10686,
|
|
"name": "bytes",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2297:5:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_storage_ptr",
|
|
"typeString": "bytes"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 10696,
|
|
"initialValue": {
|
|
"arguments": [
|
|
{
|
|
"id": 10690,
|
|
"name": "_target",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 10673,
|
|
"src": "2345:7:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"id": 10691,
|
|
"name": "_value",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 10675,
|
|
"src": "2361:6:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"id": 10692,
|
|
"name": "_data",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 10677,
|
|
"src": "2376:5:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_calldata_ptr",
|
|
"typeString": "bytes calldata"
|
|
}
|
|
},
|
|
{
|
|
"id": 10693,
|
|
"name": "_startTime",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 10679,
|
|
"src": "2390:10:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"id": 10694,
|
|
"name": "_saltNonce",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 10681,
|
|
"src": "2409:10:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_bytes_calldata_ptr",
|
|
"typeString": "bytes calldata"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 10688,
|
|
"name": "abi",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 4294967295,
|
|
"src": "2320:3:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_abi",
|
|
"typeString": "abi"
|
|
}
|
|
},
|
|
"id": 10689,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"memberName": "encodePacked",
|
|
"nodeType": "MemberAccess",
|
|
"src": "2320:16:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
|
|
"typeString": "function () pure returns (bytes memory)"
|
|
}
|
|
},
|
|
"id": 10695,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2320:106:50",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "2297:129:50"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"id": 10698,
|
|
"name": "encoded",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 10687,
|
|
"src": "2450:7:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
],
|
|
"id": 10697,
|
|
"name": "keccak256",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 4294967288,
|
|
"src": "2440:9:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
|
|
"typeString": "function (bytes memory) pure returns (bytes32)"
|
|
}
|
|
},
|
|
"id": 10699,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2440:18:50",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"functionReturnParameters": 10685,
|
|
"id": 10700,
|
|
"nodeType": "Return",
|
|
"src": "2433:25:50"
|
|
}
|
|
]
|
|
},
|
|
"functionSelector": "e42c6b6b",
|
|
"id": 10702,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "getMessageHash",
|
|
"nameLocation": "2120:14:50",
|
|
"nodeType": "FunctionDefinition",
|
|
"parameters": {
|
|
"id": 10682,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 10673,
|
|
"mutability": "mutable",
|
|
"name": "_target",
|
|
"nameLocation": "2149:7:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10702,
|
|
"src": "2141:15:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 10672,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2141:7:50",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 10675,
|
|
"mutability": "mutable",
|
|
"name": "_value",
|
|
"nameLocation": "2171:6:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10702,
|
|
"src": "2163:14:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 10674,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2163:7:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 10677,
|
|
"mutability": "mutable",
|
|
"name": "_data",
|
|
"nameLocation": "2199:5:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10702,
|
|
"src": "2184:20:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "calldata",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_calldata_ptr",
|
|
"typeString": "bytes"
|
|
},
|
|
"typeName": {
|
|
"id": 10676,
|
|
"name": "bytes",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2184:5:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_storage_ptr",
|
|
"typeString": "bytes"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 10679,
|
|
"mutability": "mutable",
|
|
"name": "_startTime",
|
|
"nameLocation": "2219:10:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10702,
|
|
"src": "2211:18:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 10678,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2211:7:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 10681,
|
|
"mutability": "mutable",
|
|
"name": "_saltNonce",
|
|
"nameLocation": "2244:10:50",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10702,
|
|
"src": "2236:18:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 10680,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2236:7:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "2134:125:50"
|
|
},
|
|
"returnParameters": {
|
|
"id": 10685,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 10684,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nameLocation": "-1:-1:-1",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 10702,
|
|
"src": "2281:7:50",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 10683,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2281:7:50",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "2280:9:50"
|
|
},
|
|
"scope": 10703,
|
|
"src": "2111:353:50",
|
|
"stateMutability": "pure",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
}
|
|
],
|
|
"scope": 10704,
|
|
"src": "437:2030:50",
|
|
"usedErrors": []
|
|
}
|
|
],
|
|
"src": "33:2436:50"
|
|
},
|
|
"compiler": {
|
|
"name": "solc",
|
|
"version": "0.8.10+commit.fc410830.Emscripten.clang"
|
|
},
|
|
"networks": {},
|
|
"schemaVersion": "3.4.14",
|
|
"updatedAt": "2023-07-12T06:52:15.486Z",
|
|
"devdoc": {
|
|
"kind": "dev",
|
|
"methods": {},
|
|
"version": 1
|
|
},
|
|
"userdoc": {
|
|
"kind": "user",
|
|
"methods": {},
|
|
"version": 1
|
|
}
|
|
} |